Passage à la ligne suivante dans une boucle
Doom07
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
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 !
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 !
A voir également:
- Passage à la ligne suivante dans une boucle
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Passage qwerty azerty - Guide
- Mètre en ligne - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
1 réponse
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
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
tu dis que y=y+1