Détection erreur VBA
Résolu
Kikavely
-
Kikavely -
Kikavely -
Bonjour,
je travail avec trois onglets sur un fichier excel. le premier onglet(Feuil 1) contien des informations matricul et nom colone A et B respectivement.
le Troiseme onglet (Feuil3) contient rien qu'une partie des matricules copiez collez dépuis l'onglet 1(Feuil1)
Le deuxieme onglet je veux afficher les résultats, c'est a dire une macro qui l'orsqu'elle parcoure longlet 3 elle parcoure en meme temps l'onglet 1 et si lors du parcoure des deux onglet 1 et 3 le numero matricule est identique alors elle vas afficher dans la feuil2 le nom qui est dans la colone B de la feuil1 et donc le matricul en colone A correspond au matricule sélectionez dans la feuil3
voici mon bout de code et mon fichier joint
Sub tes()
Dim sed As Integer
Dim chr As Integer
Dim alka As Integer
Dim i As Long
Dim j As Long
Dim k As Long
'limite = Range("A65536").End(xlUp).Row
Mide = Worksheets("Feuil3").Cells(Rows.Count, 1).End(xlDown).Row
Ngouan = Worksheets("Feuil2").Cells(Rows.Count, 1).End(xlDown).Row
' variable pour la première boucle
sed = 1
' variable pour la deuxième boucle
chr = 1
alka = 2
'For i = sed To Ngouan
'call = cells(i,1).Value
For j = chr To Mide
If (Cells(j, 1).Value = Sheets("Feuil1").Cells(Rows.Count, 1).Value) Then
For k = sed To Ngouan
Sheets("Feuil2").Cells(k, 1).Value = Sheets("Feuil1").Cells(Rows.Count, 1).ofset(0, 1)
Next k
End If
Next j
'Next i
End Sub
quand je le compile il n'ya pas d'érreur mais il prend trops de temps a compilé et n'affiche aucun résultat.
je travail avec trois onglets sur un fichier excel. le premier onglet(Feuil 1) contien des informations matricul et nom colone A et B respectivement.
le Troiseme onglet (Feuil3) contient rien qu'une partie des matricules copiez collez dépuis l'onglet 1(Feuil1)
Le deuxieme onglet je veux afficher les résultats, c'est a dire une macro qui l'orsqu'elle parcoure longlet 3 elle parcoure en meme temps l'onglet 1 et si lors du parcoure des deux onglet 1 et 3 le numero matricule est identique alors elle vas afficher dans la feuil2 le nom qui est dans la colone B de la feuil1 et donc le matricul en colone A correspond au matricule sélectionez dans la feuil3
voici mon bout de code et mon fichier joint
Sub tes()
Dim sed As Integer
Dim chr As Integer
Dim alka As Integer
Dim i As Long
Dim j As Long
Dim k As Long
'limite = Range("A65536").End(xlUp).Row
Mide = Worksheets("Feuil3").Cells(Rows.Count, 1).End(xlDown).Row
Ngouan = Worksheets("Feuil2").Cells(Rows.Count, 1).End(xlDown).Row
' variable pour la première boucle
sed = 1
' variable pour la deuxième boucle
chr = 1
alka = 2
'For i = sed To Ngouan
'call = cells(i,1).Value
For j = chr To Mide
If (Cells(j, 1).Value = Sheets("Feuil1").Cells(Rows.Count, 1).Value) Then
For k = sed To Ngouan
Sheets("Feuil2").Cells(k, 1).Value = Sheets("Feuil1").Cells(Rows.Count, 1).ofset(0, 1)
Next k
End If
Next j
'Next i
End Sub
quand je le compile il n'ya pas d'érreur mais il prend trops de temps a compilé et n'affiche aucun résultat.
A voir également:
- Détection erreur VBA
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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
G_33
de plus dans vos boucles votre feuille3 n'apparait nulle part pour afficher le résultat
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