VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

adumaine

XLDnaute Nouveau
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
adumaine
 

camarchepas

XLDnaute Barbatruc
Re : VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

Bonjour ,

Sans le fichier , pas certain,

Mais cela ne correspondrait pas à une info vide dans la colonne A de cette ligne 16 je crois :

Ici l'équation qui donne la dernière ligne , en fait la premiere ligne vide de la colonne A

'recherche dernière line de l'extract MAJ_ZQSC
IZQSCfin = Worksheets("MAJ_ZQSC").Range("A2").End(xlDown).Row
 

JBARBE

XLDnaute Barbatruc
Re : VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

Bonjour à tous,

Peut-être ceci :
'recherche dernière line de l'extract SUIVI_FAI_A350-1000
ISuivifin = Worksheets("SUIVI_FAI_A350-1000").Range("A3").End(xlUp).Row

et

'recherche dernière line de l'extract MAJ_ZQSC
IZQSCfin = Worksheets("MAJ_ZQSC").Range("A2").End(xlUp).Row


bonne journée
 

adumaine

XLDnaute Nouveau
Re : VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

Merci à tous les 2 pour vos retours très rapide.

camarchepas ==> La colonne A des 2 feuilles est tjrs renseigné.
JBARBE => Je test est reviens vers vous.

Merci
Anthonyd
 

camarchepas

XLDnaute Barbatruc
Re : VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

et la modification devrait plutot être :

ISuivifin = Worksheets("SUIVI_FAI_A350-1000").Range("A" & rows.count).End(xlUp).Row

et

'recherche dernière line de l'extract MAJ_ZQSC
IZQSCfin = Worksheets("MAJ_ZQSC").Range("A" & rows.count).End(xlUp).Row
 

adumaine

XLDnaute Nouveau
Re : VBA - Boucle avec for - Elle s’arrête à la ligne 15...... pourquoi?

Ca fonctionne !!
Merci pour votre aide!!


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


Bonne journée
Anthonyd