N
nobilis
Guest
Bonjour,
J'ai créé une macro excel qui me permettait de reprendre les informations (nom du sujet, journaliste et technicien) d'un tableau principal pour les placer dans deux tableaux (JT et JT+). Donc, le nom du sujet (reportage) était associé à un journaliste et à un technicien.
J'ai testé la macro plusieurs fois et tout semblait très bien fonctionner. Mais maintenant, j'ai l'erreur suivante qui apparaît : 'erreur d'exécution '9' l'indice n'appartient pas à la sélection. --> erreur à la ligne : 'If Cells(i + 1, x) <> '' Or Cells(i + 2, x) <> '' Then tabCol(y) = x: y = y + 1' (voir programme ci-dessous)
Pq est-ce que ça ne fonctionne plus alors que tout fonctionait très bien ?
Merci pour votre aide
------------
Dim tabCol(50), x, y As Integer
'Réinitialisation du tableau
For x = 0 To 50
tabCol(x) = 0
Next
y = 0 'Première cellule du tableau
j = 650 'Première ligne du tableau JT
For i = 8 To 400 Step 8
'Remplissage du tabCol avec les n° de colonnes remplies
For x = 3 To 26
If Cells(i + 1, x) <> '' Or Cells(i + 2, x) <> '' Then tabCol(y) = x: y = y + 1
Next x
If Cells(i + 7, 3).Value = 'JT' Or Cells(i + 7, 4).Value = 'JT' Or Cells(i + 7, 5).Value = 'JT' Or Cells(i + 7, 6).Value = 'JT' Or Cells(i + 7, 7).Value = 'JT' Or Cells(i + 7, 8).Value = 'JT' Or Cells(i + 7, 9).Value = 'JT' Or Cells(i + 7, 10).Value = 'JT' Or Cells(i + 7, 11).Value = 'JT' Or Cells(i + 7, 12).Value = 'JT' Or Cells(i + 7, 13).Value = 'JT' Or Cells(i + 7, 14).Value = 'JT' Or Cells(i + 7, 15).Value = 'JT' Or Cells(i + 7, 16).Value = 'JT' Or Cells(i + 7, 17).Value = 'JT' Or Cells(i + 7, 18).Value = 'JT' Or Cells(i + 7, 19).Value = 'JT' Or Cells(i + 7, 20).Value = 'JT' Or Cells(i + 7, 21).Value = 'JT' Or Cells(i + 7, 22).Value = 'JT' Or Cells(i + 7, 23).Value = 'JT' Or Cells(i + 7, 24).Value = 'JT' Or Cells(i + 7, 25).Value = 'JT' Or Cells(i + 7, 26).Value = 'JT' Then
Cells(j, 1).Value = 'Sujet ' & j - 649
Cells(j, 3).Value = Cells(i + 1, 1).Value & ' - Journaliste : ' & Cells(i + 1, tabCol((i - 8) / 8)).Value & ' , Technicien : ' & Cells(i + 2, tabCol((i - 8) / 8)).Value
Else: j = j - 1
End If
j = j + 1 'Passer à la ligne suivante du tableau JT
Next
J'ai créé une macro excel qui me permettait de reprendre les informations (nom du sujet, journaliste et technicien) d'un tableau principal pour les placer dans deux tableaux (JT et JT+). Donc, le nom du sujet (reportage) était associé à un journaliste et à un technicien.
J'ai testé la macro plusieurs fois et tout semblait très bien fonctionner. Mais maintenant, j'ai l'erreur suivante qui apparaît : 'erreur d'exécution '9' l'indice n'appartient pas à la sélection. --> erreur à la ligne : 'If Cells(i + 1, x) <> '' Or Cells(i + 2, x) <> '' Then tabCol(y) = x: y = y + 1' (voir programme ci-dessous)
Pq est-ce que ça ne fonctionne plus alors que tout fonctionait très bien ?
Merci pour votre aide
------------
Dim tabCol(50), x, y As Integer
'Réinitialisation du tableau
For x = 0 To 50
tabCol(x) = 0
Next
y = 0 'Première cellule du tableau
j = 650 'Première ligne du tableau JT
For i = 8 To 400 Step 8
'Remplissage du tabCol avec les n° de colonnes remplies
For x = 3 To 26
If Cells(i + 1, x) <> '' Or Cells(i + 2, x) <> '' Then tabCol(y) = x: y = y + 1
Next x
If Cells(i + 7, 3).Value = 'JT' Or Cells(i + 7, 4).Value = 'JT' Or Cells(i + 7, 5).Value = 'JT' Or Cells(i + 7, 6).Value = 'JT' Or Cells(i + 7, 7).Value = 'JT' Or Cells(i + 7, 8).Value = 'JT' Or Cells(i + 7, 9).Value = 'JT' Or Cells(i + 7, 10).Value = 'JT' Or Cells(i + 7, 11).Value = 'JT' Or Cells(i + 7, 12).Value = 'JT' Or Cells(i + 7, 13).Value = 'JT' Or Cells(i + 7, 14).Value = 'JT' Or Cells(i + 7, 15).Value = 'JT' Or Cells(i + 7, 16).Value = 'JT' Or Cells(i + 7, 17).Value = 'JT' Or Cells(i + 7, 18).Value = 'JT' Or Cells(i + 7, 19).Value = 'JT' Or Cells(i + 7, 20).Value = 'JT' Or Cells(i + 7, 21).Value = 'JT' Or Cells(i + 7, 22).Value = 'JT' Or Cells(i + 7, 23).Value = 'JT' Or Cells(i + 7, 24).Value = 'JT' Or Cells(i + 7, 25).Value = 'JT' Or Cells(i + 7, 26).Value = 'JT' Then
Cells(j, 1).Value = 'Sujet ' & j - 649
Cells(j, 3).Value = Cells(i + 1, 1).Value & ' - Journaliste : ' & Cells(i + 1, tabCol((i - 8) / 8)).Value & ' , Technicien : ' & Cells(i + 2, tabCol((i - 8) / 8)).Value
Else: j = j - 1
End If
j = j + 1 'Passer à la ligne suivante du tableau JT
Next