Passage à la ligne suivante dans une boucle

Fermé
Doom07 Messages postés 9 Date d'inscription mardi 9 juillet 2013 Statut Membre Dernière intervention 22 novembre 2013 - 11 juil. 2013 à 11:41
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 11 juil. 2013 à 15:18
Bonjour tout le monde.

J'ai un petit souci sur une macro que j'ai créé et qui permet d'importer des données d'un autre classeur. Voici mon code :

x = Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value
y = 15

For x = 1 To 52

If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 2).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 4).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+1, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 6).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+2, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 8).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+3, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 10).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+4, 4).Value
End If

Next x

En gros, x représente le numéro de la semaine où je me situe.
J'ai donc créé une boucle permettant de dire que si mon numéro de semaine est égal au nombre que je désire (1 par exemple), alors il m'affiche dans la cellule 6, 2 (B6) de mon classeur actuel la valeur d'une cellule située dans un autre classeur en 15, 4 (D15).
Et même chose pour les autres lignes. Si x = 1 par exemple, alors la cellule 6, 4 (D6) de mon classeur ouvert est égale à la valeur de la cellule 16, 4 (D16) située dans mon autre classeur en. De ce côté-là, pas de problème, il m'affiche correctement la valeur.

Mais le souci que j'ai, est que lorsque mon x passe à 2, je voudrais que ma variable "y" continue de compter. Et non pas qu'elle reprenne à la ligne 15. Sinon, je vais avoir les mêmes valeurs pour toutes les semaines. Je pense qu'il faudrait simplement une boucle permettant d'incrémenter la valeur de y mais je n'arrive pas à l'écrire.

Je ne sais pas si c'est clair et que vous allez comprendre ma demande, mais j'ai essayé de résumer au plus simple. Ça fait 2 jours que je bosse dessus et je n'ai rien trouvé dans les forums qui puisse m'aider. J'en appelle donc à vos connaissances en VBA. J'espère que vous allez pouvoir me dépanner parce que sinon je suis franchement bloqué. Merci d'avance en tout cas !

1 réponse

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
11 juil. 2013 à 15:17
coucou,

recopies cecode et ca marchera :


x = Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value
y = 15

For x = 1 To 52

If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 2).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 4).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+1, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 6).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+2, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 8).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+3, 4).Value
End If
If Workbooks(FichDest).Sheets(OngDest).Cells(2, 1).Value = x Then
Workbooks(FichDest).Sheets(OngDest).Cells(6, 10).Value = Workbooks(FichSour2).Sheets(OngSour2).Cells(y+4, 4).Value
End If
y=y+1
Next x
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
11 juil. 2013 à 15:18
avant le next x
tu dis que y=y+1
0