VBA excel erreur d'exécution '9'

Fermé
nobilis - 18 mars 2005 à 15:25
 Nobilis - 19 mars 2005 à 09:38
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
A voir également:

2 réponses

Utilisateur anonyme
18 mars 2005 à 21:09
Bonjour,

La première boucle effectue 50 passages,
la deuxième boucle effectue 23 passages, dans le cas ou
la condition du if est vrai, il y aura 50 * 23 fois que l'instruction
y = y + 1

et tabcol(y) depasse la plage ! y n'est jamais remis a zéro ?

Lupin
2
Merci Lupin, je corrige
0