Activation du 2ème fichier ne fonctionne pas
Bonjour à tous
Et bravo et merci à tout ceux qui prennent de leur temps pour répondre aux différentes questions.
Je suis un amateur évolué dira-t-on du VBA Excel, j'ai déjà fait pas mal de petites et grandes macro pour diverses personnes de mon entreprise mais là je cale...
Voici mon souci, je dois remplir certaines cellules d'un fichier de départ (NomSource), où se trouve donc cette macro, par des valeurs situé dans un autre fichier (Nom), vérifier s'il existe ou non et dans d'autres cellules.
je récupère mes données au départ dans le fichier NomSource -> OK
Je vérifie si le fichier Nom existe -> OK
J'ouvre ce dernier s'il existe -> OK
je cherche la valeur dont j'ai besoin, je la sélectionne puis la copie -> OK
J'active le fichier original NomSource et je colle les données à l'endroit voulu -> OK
Mais dès que je veux réactiver le 2ème fichier (Workbooks(Nom).Activate), il me met un message d'erreur "l'indice n'appartient pas à la sélection" alors qu'il a ouvert ce même fichier plus tôt...
Voici un extrait de mon code
Sub Export()
CheminSource = ActiveWorkbook.Path
NomSource = ActiveWorkbook.Name
CheminDest = ActiveWorkbook.Path & "\" & "Résultat des exports\"
dercol = Cells(8, Columns.Count).End(xlToLeft).Column
Colsource = 2
For Col = 2 To dercol
NumSemaine = Cells(8, Col).Value
Nom = CheminDest & Dir(CheminDest & "Récapitulatif Hebdomadaire de la semaine " & NumSemaine & "*.*")
If Nom = "" Then GoTo Line1
Workbooks.Open Nom 'Ouverture du fichier
For ligne = 10 To 14
Cells(ligne, 4).Select
Selection.Copy
Workbooks(NomSource).Activate
Cells(ligne, Colsource).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Colsource = Colsource + 1
Workbooks(Nom).Activate
Cells(ligne, 10).Copy
Workbooks(NomSource).Activate
Cells(ligne, Colsource).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Colsource = Colsource + 1
Next ligne
Line1:
Col = Col + 1
Next Col
End SubSi quelqu'un à le temps de se pencher sur mon souci ce serait gentil car j'ai la cafetière qui commence à bouillir
Merci
Bonjour,
la variable Nom contient le chemin et, Workbooks(Nom).Activate cherche à activer le classeur ouvert "chemin + nom classeur" qui n'existe pas.
Une solution possible :
Nom = Dir(CheminDest & "Récapitulatif Hebdomadaire de la semaine " & NumSemaine & "*.*")
...
Workbooks.Open CheminDest & Nom
...
Workbooks(Nom).ActivateA+
édit: remise de la ligne originale de recherche des fichiers, avec modification .
Merci je vais tester demain et je reviens vers vous...
Désolé j'ai pas pu attendre pour tester... :lol:
Cela fonctionne à merveille
J'y avais pas pensé, merci pour le dépannage