Bonjour le forum,
Il me semble bien que lorsque l'on inclut des boucles For+Next dans une autre, il faut faire attention à inverser la l'ordre des Next par rapport au for
Ma macro suivante respecte cette règle mais je ne comprends pas pourquoi les deux lignes de calcul à la fin (voir dans le code, j'ai indiqué où ça merde) sont considérées comme inexistantes par le programme. J'ai montré ça à un collègue mais on est sec tous les deux.
Sub CopieBesoins()
'************* Déclaration des variables
Dim Jour As String
NB_jour = 6
NB_heures = 15
NB_spécialites = 6
NB_col = 14 'nombre de colonnes de présentation dans les onglets des Jours
NB_col2 = 6 'nombre de colonnes de présentation dans l'onglet demandeTel
'************* copie des besoins par jour, par heure puis par spécialité
'par jour
For n = 1 To NB_jour
If n = 1 Then Jour = "Lundi"
If n = 2 Then Jour = "Mardi"
If n = 3 Then Jour = "Mercredi"
If n = 4 Then Jour = "Jeudi"
If n = 5 Then Jour = "Vendredi"
If n = 6 Then Jour = "Samedi"
If n = 7 Then Jour = "Dimanche"
Sheets(Jour).Select
'par heure
For i = 1 To NB_heures
'par spécialité
For j = 1 To NB_specialites '<--- de là, ça saute à ....
Cells(2 * j - 1, NB_col + 4 * (i - 1) + 1).Select
Cells(2 * j - 1, NB_col + 4 * (i - 1) + 1).Value = Sheets("DemandeTel").Cells(j + 1, i + NB_col2 + NB_heures * (n - 1)).Value
Next j
Next i '<---- lààààààààààààààà!!!
Next n
End Sub
Merci d'avance à celui qui comprend le fin mot de l'histoire.
Jérémy
Il me semble bien que lorsque l'on inclut des boucles For+Next dans une autre, il faut faire attention à inverser la l'ordre des Next par rapport au for
Ma macro suivante respecte cette règle mais je ne comprends pas pourquoi les deux lignes de calcul à la fin (voir dans le code, j'ai indiqué où ça merde) sont considérées comme inexistantes par le programme. J'ai montré ça à un collègue mais on est sec tous les deux.
Sub CopieBesoins()
'************* Déclaration des variables
Dim Jour As String
NB_jour = 6
NB_heures = 15
NB_spécialites = 6
NB_col = 14 'nombre de colonnes de présentation dans les onglets des Jours
NB_col2 = 6 'nombre de colonnes de présentation dans l'onglet demandeTel
'************* copie des besoins par jour, par heure puis par spécialité
'par jour
For n = 1 To NB_jour
If n = 1 Then Jour = "Lundi"
If n = 2 Then Jour = "Mardi"
If n = 3 Then Jour = "Mercredi"
If n = 4 Then Jour = "Jeudi"
If n = 5 Then Jour = "Vendredi"
If n = 6 Then Jour = "Samedi"
If n = 7 Then Jour = "Dimanche"
Sheets(Jour).Select
'par heure
For i = 1 To NB_heures
'par spécialité
For j = 1 To NB_specialites '<--- de là, ça saute à ....
Cells(2 * j - 1, NB_col + 4 * (i - 1) + 1).Select
Cells(2 * j - 1, NB_col + 4 * (i - 1) + 1).Value = Sheets("DemandeTel").Cells(j + 1, i + NB_col2 + NB_heures * (n - 1)).Value
Next j
Next i '<---- lààààààààààààààà!!!
Next n
End Sub
Merci d'avance à celui qui comprend le fin mot de l'histoire.
Jérémy