Détection erreur VBA
Résolu/Fermé
A voir également:
- Détection erreur VBA
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 3005 france tv - Forum TV & Vidéo
3 réponses
Bonsoir
Il me semble que vous aviez déjà posté cette demande il y a quelque jours.
Et vous y avoir répondu.
sauf erreur de ma part.
Sinon montrez un fichier plus simple et plus compréhensible pour vous aider.
Cordialement
Il me semble que vous aviez déjà posté cette demande il y a quelque jours.
Et vous y avoir répondu.
sauf erreur de ma part.
Sinon montrez un fichier plus simple et plus compréhensible pour vous aider.
Cordialement
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 oct. 2012 à 17:40
4 oct. 2012 à 17:40
Bonjour
Si tu veux la rapidité , essaies ce code
maquette:
https://www.cjoint.com/?3JerOfHg7Ms
Si tu veux la rapidité , essaies ce code
Option Explicit Option Base 1 Sub comparer_matricule() Dim Derlig As Long, Dico As Object, Lig As Long, Mat, Nom As String Dim T_sh3(), T_out(), cptr As Long Dim start As Single start = Timer Application.ScreenUpdating = False With Sheets(1) Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row Set Dico = CreateObject("scripting.dictionary") For Lig = 1 To Derlig Mat = .Cells(Lig, "A") Nom = .Cells(Lig, "B") If Not Dico.exists(Mat) Then Dico.Add Mat, Nom Next End With With Sheets(3) Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row T_sh3 = Application.Transpose(.Range("A1:A" & Derlig).Value) End With cptr = 1 ReDim T_out(2, cptr) For Lig = 1 To Derlig If Dico.exists(T_sh3(Lig)) Then ReDim Preserve T_out(2, cptr) T_out(1, cptr) = T_sh3(Lig) T_out(2, cptr) = Dico.Item(T_sh3(Lig)) cptr = cptr + 1 End If Next With Sheets(2) .Range("A1:B10000").Clear .Range("A1").Resize(cptr - 1, 2) = Application.Transpose(T_out) .Range("A1:B" & cptr - 1).Borders.Weight = xlThin .Select End With Application.ScreenUpdating = True MsgBox "durée : " & Timer - start & " secondes" End Sub
maquette:
https://www.cjoint.com/?3JerOfHg7Ms
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 oct. 2012 à 17:49
4 oct. 2012 à 17:49
Essai avec 8100 lignes en feuil1 et 2700 en lignes en feuill3
durée: <=0,9 seconde (proc: 3Ghz, RAM: 512 Mo)
durée: <=0,9 seconde (proc: 3Ghz, RAM: 512 Mo)
4 oct. 2012 à 17:33