VBA - Erreur d'ecécution '9'

  • Initiateur de la discussion Initiateur de la discussion nobilis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonjour

Tout d'abord petit rappel : Il s'agit d'un forum de partage de connaissance et personne n'a signé de contrat avec obligation de résultat dans l'heure qui suit . :angry:

Bon ceci étant dit, pour ton prob tu es s&ucirc;r que ta valeur y n'arrive pas à 51 par hasard ??
 
Bonjour nobilis,

A la louche, je dirais que c'est le 'y' du 'tabCol(y)' qui déborde de ce qui lui est autorisé.

Il lui faut, si c'est ça, un 'Redim tabCol(y)' avec une nouvelle valeur de 'y'.
Ou alors, un 'Dim tabCol(51)' au début.
Essaie déjà avec 51 (tiens, c'est une bonne valeur 51. Arf !)


Abel.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
897
Réponses
2
Affichages
519
Réponses
15
Affichages
760
Réponses
4
Affichages
721
Réponses
8
Affichages
774
Retour