Vba excel ça amméliorera grandement la rapidité de mon code ?

Salut-les-khey
2021-08-20 23:21:05

Sub Supprimer_indesirables()
Application.ScreenUpdating = False
'Création de la collection liste noir
Dim listNoir As Collection
Set listNoir = New Collection
Dim FSO As New FileSystemObject
Dim fichiertxt As Object
Set fichiertxt = FSO.OpenTextFile("monfichier.txt")
While Not fichiertxt.AtEndOfStream
listNoir.Add (fichiertxt.ReadLine)
Wend

'Création du tableau mémoire
Dim tb() As Variant
Dim h_tb As Double: Dim l_tb As Byte
Dim i As Double
h_tb = Range("a1").End(xlDown).Row
l_tb = Range("a1").End(xlToRight).Column
ReDim tb(1 To h_tb)
For i = 1 To h_tb
tb(i) = Range("a" & i).Value
Next

'Process
Dim j As Double: Dim k As Double
For j = UBound(tb, 1) To LBound(tb, 1) Step -1
For k = 1 To listNoir.Count
If tb(j) Like "*" & listNoir(k) & "*" Then
Range("a" & j & ":" & "h" & j).Select
Selection.Delete Shift:=xlUp
End If
Next
Next
End Sub

Si je passe en full mémoire et que je note le numéro de toute les ligne qui ne coresspondent pas au match pour ensuite les déversé dans une feuille de calcul plutot que de les supprimer à la volé ?

Salut-les-khey
2021-08-20 23:24:41

Bon je vais tester je verrai bien

Rupo
2021-08-24 07:08:25

Combine l'utilisation des formules et macros.

Slowmode
2021-08-26 18:16:43

Utilise pas les collections c'est de la merde, ou au pire les dico
mets tous sur des feuilles

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.