Erreur d'execution 9, l'indice n'appartient pas à la sélection [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
-
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
-
Bonjour,

j'ai un petit problème de code,
Bon en gros je voudrais coller les valeurs de certaines cellules de tous les onglets (89) du classeur "Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls" vers un autre classeur que j'ai nommé "BDD" sur l'onglet nommé BDD également.

voila le code que j ai écrit:

Sub Macro()

Dim i As Integer
Dim k As Integer
Dim ws As Worksheet

For i = 2 To 90
For j = 3 To 91
'
Workbooks("BDD").Sheets("BDD").Range("A" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("C12")

Workbooks("BDD").Sheets("BDD").Range("C" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("C61")

Workbooks("BDD").Sheets("BDD").Range("F" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("V43")

Workbooks("BDD").Sheets("BDD").Range("G" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("F43")

Workbooks("BDD").Sheets("BDD").Range("H" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("B27")

Workbooks("BDD").Sheets("BDD").Range("I" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("C27")

Workbooks("BDD").Sheets("BDD").Range("J" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("E48")

Workbooks("BDD").Sheets("BDD").Range("K" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("C55")

Workbooks("BDD").Sheets("BDD").Range("M" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("F54")

Workbooks("BDD").Sheets("BDD").Range("N" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("F86")

Workbooks("BDD").Sheets("BDD").Range("O" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("E89")

Workbooks("BDD").Sheets("BDD").Range("P" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("F93")

Workbooks("BDD").Sheets("BDD").Range("Q" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil").Range("E90")

Next j
Next

End Sub


et lorsque je le lance le message: erreur d'execution 9, l'indice n'appartient pas à la sélection s'affiche
je n'ai malheureusement pas trouvé de solution c'est pourquoi votre aide me serait très précieuse.

Merci d'avance



7 réponses

Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
correction du code

Sub Macro()

Dim i As Integer
Dim k As Integer

For i = 2 To 90
For j = 3 To 91
'
Workbooks("BDD").Sheets("BDD").Range("A" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C12")

Workbooks("BDD").Sheets("BDD").Range("C" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C61")

Workbooks("BDD").Sheets("BDD").Range("F" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("V43")

Workbooks("BDD").Sheets("BDD").Range("G" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F43")

Workbooks("BDD").Sheets("BDD").Range("H" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("B27")

Workbooks("BDD").Sheets("BDD").Range("I" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C27")

Workbooks("BDD").Sheets("BDD").Range("J" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E48")

Workbooks("BDD").Sheets("BDD").Range("K" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C55")

Workbooks("BDD").Sheets("BDD").Range("M" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F54")

Workbooks("BDD").Sheets("BDD").Range("N" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F86")

Workbooks("BDD").Sheets("BDD").Range("O" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E89")

Workbooks("BDD").Sheets("BDD").Range("P" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F93")

Workbooks("BDD").Sheets("BDD").Range("Q" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E90")

Next j
Next i


End Sub
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Bonjour,

Si tu veux que la boucle j balaye les onglets de "copie de masterfile", il faut que cette variable entre dans le réferencement des onglets de ce classeur.

Workbooks("BDD").Sheets("BDD").Range("A" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C12")

A+.
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
Bonjour,
j'ai déjà procédé à ce changement, cependant, l'erreur ne vient pas de là
merci
Messages postés
16260
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 octobre 2020
3 051
Bonjour

sur quelle ligne se produit le bug?
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
Bonjour,

je n ai pas d'indication sur la ligne, il y a juste le message d'erreur qui s'affiche avec aucune option de débogage qui me permettrait d'identifier la ligne
Messages postés
16260
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 octobre 2020
3 051
tu vas dans l'éditeur VBE (alt+F11) et tu lances la macro par F5. la macro s'arr^te sur le bug et surligne en jaune...
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
oui je sais bien que normalement on a un sur lignage mais là j'ai beau essayé d'avoir une aide, rien ne s'affiche et je n'ai juste que le message d'erreur
Messages postés
4237
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 262
Bonjour,

essayez déjà de remplacer
Workbooks("BDD")
par
Workbooks("BDD.xls")


Cordialement.
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
Bonjour, j'avais déjà fait la modification, malheureusement, l' erreur ne vient pas de là
merci en tout cas
Bonjour
j'ai essayé ce code chez moi et ça fonctionne et sans message d'erreur
dites moi si c'est ce que vous cherchiez à faire
Sub Macro()
Dim i As Integer
Dim k As Integer
Dim ws As Worksheet
 i = 2
For j = 3 To 91

'
Workbooks("BDD.xls").Sheets("BDD").Range("A" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C12")
Workbooks("BDD.xls").Sheets("BDD").Range("C" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C61")
Workbooks("BDD.xls").Sheets("BDD").Range("F" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("V43")
Workbooks("BDD.xls").Sheets("BDD").Range("G" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F43")
Workbooks("BDD.xls").Sheets("BDD").Range("H" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("B27")
Workbooks("BDD.xls").Sheets("BDD").Range("I" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C27")
Workbooks("BDD.xls").Sheets("BDD").Range("J" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E48")
Workbooks("BDD.xls").Sheets("BDD").Range("K" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C55")
Workbooks("BDD.xls").Sheets("BDD").Range("M" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F54")
Workbooks("BDD.xls").Sheets("BDD").Range("N" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F86")
Workbooks("BDD.xls").Sheets("BDD").Range("O" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E89")
Workbooks("BDD.xls").Sheets("BDD").Range("P" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("F93")
Workbooks("BDD.xls").Sheets("BDD").Range("Q" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("E90")

i = i + 1
Next j

End Sub

cordialement
Alors là je ne comprends pas sur mon ordi aucun soucis
Ca marche nickel.

votre code est bien dans un module ?
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
oui il est bine dans module mais c est bon j ai résolu l'erreur, sur mon fichier copie masterfile, les onglets avaient des noms spécifiques et non pas Feuil1 etc...
j ai donc changer tout ça et d coup le code marche
je pensais que excel gardait en mémoire la numérotation des onglets, l'erreur à l'air de venir là
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
en tout cas merci de votre aide
Aussi je pense que l'erreur vient de cette partie
= Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets("Feuil" & j).Range("C12")"

changez en mettant
Workbooks("BDD.xls").Sheets("BDD").Range("A" & i).Value = Workbooks("Copie de MASTERFILE BASF Serie_Sept to Dec 2012_V2.xls").Sheets( j).Range("C12")"

sheets(j) puisque vous déclarez : j en Integer

A suivre
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
ok merci du conseil je réessaierai.
Bonjour

Pourquoi 2 boucles? i et j ??? pas sur de la pertinence de la boucle j !!

et pourquoi i = 2 to 90 alors que vous avez que 89 onglets

Essayez juste avec la boucle i

Cordialement
Messages postés
11
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
18 octobre 2012
2
Bonjour,
la boucle i me permet de balayer les lignes, dans le classeur BDD, sur lesquelles je veux que les resutats s'affichent et elle commence à i=2 pcq je veux que l'affichage commence sur la 2e ligne de l'onglet (ex: A2, B2,C2,...)
la boucle j me permet elle de balayer tous les onglets de mon classeur "copie de masterfile" et elle commence à j=3 pcq le premier onglet à traiter est l'onglet "Feuil3"