VBA - Boucle avec for - Elle s’arrête à la ligne 15...... po
Bonjour à tous,
Je viens vers vous car j'ai un problème avec une boucle de recherche. (elle s’arrête à la ligne 15... )
Le but est de comparer 3 éléments de 2 feuilles excell.
Une fois les 3 conditions ok => Copier certaines cellules du fichier 1 dans le fichier B
Le code:
ub Bouton2_Clic()
'variables lignes correspondantes
Dim ISuividebut As Integer
Dim ISuivifin As Integer
Dim IZQSCdebut As Integer
Dim IZQSCfin As Integer
'Sheets("SUIVI_FAI_A350-1000").Unprotect
'Activation feuille SUIVI_FAI_A350-1000
Worksheets("SUIVI_FAI_A350-1000").Activate
'recherche dernière line de l'extract SUIVI_FAI_A350-1000
ISuivifin = Worksheets("SUIVI_FAI_A350-1000").Range("A3").End(xlDown).Row
'Activation feuille MAJ_ZQSC
Worksheets("MAJ_ZQSC").Activate
'recherche dernière line de l'extract MAJ_ZQSC
IZQSCfin = Worksheets("MAJ_ZQSC").Range("A2").End(xlDown).Row
'boucle de recherche
For ISuividebut = 3 To ISuivifin
For IZQSCdebut = 2 To IZQSCfin
'Recherche du PN suivi dans ZQSC
If Worksheets("SUIVI_FAI_A350-1000").Range("A" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("A" & IZQSCdebut) Then
'Recherche de l'indice suivi dans ZQSC
ElseIf Worksheets("SUIVI_FAI_A350-1000").Range("C" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("G" & IZQSCdebut) Then
'Recherche DU FOURNISSEUR suivi dans ZQSC
ElseIf Worksheets("SUIVI_FAI_A350-1000").Range("M" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("D" & IZQSCdebut) Then
'Si vrai ecriture des infos
Worksheets("SUIVI_FAI_A350-1000").Range("N" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("B" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("E" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("H" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("O" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("F" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("F" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("I" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("G" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("J" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("L" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("K" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("AI" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("M" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("D" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("R" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("P" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("S" & IZQSCdebut).Value
Exit For
'Next IZQSCdebut
'End If
'Else
'Next IZQSCdebut
'End If
'Else
'Next
End If
Next IZQSCdebut
Next
End Sub
En espérant que vous puissiez m'aider..
Je reste disponible pour toutes vos interrogations
Cordialement
Anthonyd
Bonjour,
proposition de correction à tester
sub Bouton2_Clic()
'variables lignes correspondantes
Dim ISuividebut As Integer
Dim ISuivifin As Integer
Dim IZQSCdebut As Integer
Dim IZQSCfin As Integer
'Sheets("SUIVI_FAI_A350-1000").Unprotect
'Activation feuille SUIVI_FAI_A350-1000
Worksheets("SUIVI_FAI_A350-1000").Activate
'recherche dernière line de l'extract SUIVI_FAI_A350-1000
ISuivifin = Worksheets("SUIVI_FAI_A350-1000").Range("A3").End(xlDown).Row
'Activation feuille MAJ_ZQSC
Worksheets("MAJ_ZQSC").Activate
'recherche dernière line de l'extract MAJ_ZQSC
IZQSCfin = Worksheets("MAJ_ZQSC").Range("A2").End(xlDown).Row
'boucle de recherche
For ISuividebut = 3 To ISuivifin
For IZQSCdebut = 2 To IZQSCfin
'Recherche du PN suivi dans ZQSC
If Worksheets("SUIVI_FAI_A350-1000").Range("A" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("A" & IZQSCdebut) Then
'Recherche de l'indice suivi dans ZQSC
if Worksheets("SUIVI_FAI_A350-1000").Range("C" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("G" & IZQSCdebut) Then
'Recherche DU FOURNISSEUR suivi dans ZQSC
If Worksheets("SUIVI_FAI_A350-1000").Range("M" & ISuividebut) = Worksheets("MAJ_ZQSC").Range("D" & IZQSCdebut) Then
'Si vrai ecriture des infos
Worksheets("SUIVI_FAI_A350-1000").Range("N" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("B" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("E" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("H" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("O" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("F" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("F" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("I" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("G" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("J" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("L" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("K" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("AI" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("M" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("D" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("R" & IZQSCdebut).Value
Worksheets("SUIVI_FAI_A350-1000").Range("P" & ISuividebut).Value = Worksheets("MAJ_ZQSC").Range("S" & IZQSCdebut).Value
exit for
end if
end if
endif
Next IZQSCdebut
Next ISuividebut
End Subça fonctionne parfaitement !!!
Merci beaucoup, ça fait 2 jours que je suis dessus..
Qu'avez vous changé?
Merci beaucoup
Anthony D
bonjour,
j'ai remplacé les elseif par des if et j'ai remis de l'ordre dans les end if et les next