VBA: recherche dans autre fichier, erreur 424
Résolu/Fermé
A voir également:
- VBA: recherche dans autre fichier, erreur 424
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
7 réponses
Clark...kent
Messages postés
44
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 mars 2020
2
Modifié par Clark...kent le 15/05/2012 à 14:07
Modifié par Clark...kent le 15/05/2012 à 14:07
Bonjour,
Une idée peut être
With Workbooks.Open ("C:\Documents and Settings\esoboban\My Documents\Fichier B.xls")
ou sinon
Chemin = "C:\Documents and Settings\esoboban\My Documents\"
Fichier = "Fichier B.xls"
With Workbooks.Open(Chemin & Fichier)
Bon courage
Une idée peut être
With Workbooks.Open ("C:\Documents and Settings\esoboban\My Documents\Fichier B.xls")
ou sinon
Chemin = "C:\Documents and Settings\esoboban\My Documents\"
Fichier = "Fichier B.xls"
With Workbooks.Open(Chemin & Fichier)
Bon courage
Bonjour,
Le fichier doit être ouvert. Vous auriez du écrire:
Bonne suite
Le fichier doit être ouvert. Vous auriez du écrire:
Source = "Fichier B.xls" Onglet = "Feuil1" Set Liste = Workbooks(Source).Worksheets(Onglet).Range("A2:A250").Find(MyValue, lookat:=xlWhole)
Bonne suite
Merci pour votre réponse. Mais il y a un nouveau problème, toujours sur la même ligne :
"erreur d'exécution 438 : propriété ou méthode non gérée par cet objet"
Je n'arrive pas à comprendre d'où ça vient. J'ai été voir d'autres discussions sur ce sujet mais je ne trouve pas...
"erreur d'exécution 438 : propriété ou méthode non gérée par cet objet"
Je n'arrive pas à comprendre d'où ça vient. J'ai été voir d'autres discussions sur ce sujet mais je ne trouve pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Au départ, je me suis retrouvé avec une "erreur d'execution '91' : variable objet ou variable de bloc With non définie", sur la ligne :
Ensuite, suite à des discussions que j'ai lu, je suis arrivé à :
Et là ça bloque à la ligne en gras avec une "erreur d'execution '9' : l'indicce n'appartient pas à la sélection".
Je suis vraiment perdu...
Voici le fichier :
http://cjoint.com/?BEpmlUHXDej
Merci beaucoup pour votre aide.
F-D
Onglet = "Feuil1"
Ensuite, suite à des discussions que j'ai lu, je suis arrivé à :
Dim Liste As Range Dim Source As Workbook Dim Onglet As Worksheet Set Source = Workbooks("C:\Documents and Settings\esoboban\My Documents\Fichier B.xls") Set Onglet = Source.Worksheets("Feuil1") Set Liste = Source.Onglet.Range("A2:A250").Find(MyValue, lookat:=xlWhole)
Et là ça bloque à la ligne en gras avec une "erreur d'execution '9' : l'indicce n'appartient pas à la sélection".
Je suis vraiment perdu...
Voici le fichier :
http://cjoint.com/?BEpmlUHXDej
Merci beaucoup pour votre aide.
F-D
Bonjour,
Effectivement, ça fonctionne très bien !
Par contre, un nouveau problème survient. Dans le fichier que j'ai mis en lien, j'ai oublié de faire revenir la macro sur le Fichier A pour écrire l'information donc elle l'a met dans le Fichier B, activé par la recherche.
J'ai donc simplement rajouté
Par anticipation, je cherche à fermer le Fichier B (sans l'enregistrer) juste après le End If car je n'en ai plus besoin, mais je ne sais pas comment faire (avant de voir que la référence était écrite sur le mauvais fichier, j'ai essayé
Désolé, je débute en vba et j'ai l'obligation de réussir cette macro !
F-D
Effectivement, ça fonctionne très bien !
Par contre, un nouveau problème survient. Dans le fichier que j'ai mis en lien, j'ai oublié de faire revenir la macro sur le Fichier A pour écrire l'information donc elle l'a met dans le Fichier B, activé par la recherche.
J'ai donc simplement rajouté
Workbooks("C:\Documents and Settings\esoboban\My Documents\Fichier A.xls").pour indiquer le bon fichier mais ça me donne une "erreur d'execution '9' : l'indice n'appartient pas à la sélection" sur la ligne en gras
If Liste Is Nothing Then
Workbooks("C:\Documents and Settings\esoboban\My Documents\Fichier A.xls").Worksheets("Feuil1").Range("B2") = "Pièces non-traitées": Worksheets("Feuil1").Range("F8") = "" Else
Workbooks("C:\Documents and Settings\esoboban\My Documents\Fichier A.xls").Worksheets("Feuil1").Range("B2") = "Pièces traitées": Worksheets("Feuil1").Range("F8") = "X"
End If
Par anticipation, je cherche à fermer le Fichier B (sans l'enregistrer) juste après le End If car je n'en ai plus besoin, mais je ne sais pas comment faire (avant de voir que la référence était écrite sur le mauvais fichier, j'ai essayé
workbook(("C:\Documents and Settings\esoboban\My Documents\Fichier B.xls").Close(SaveChanges=False)et avec
With Workbook.Close("C:\Documents and Settings\esoboban\My Documents\Fichier B.xls") SaveChanges=False, avec ou sans "s" à workbook et rien ne marche...
Désolé, je débute en vba et j'ai l'obligation de réussir cette macro !
F-D
Ca y est !!!
J'ai simplement fermé mon Fichier B avant la condition :
En effet, Liste est déjà initialisé donc je n'ai pas besoin de garder le fichier ouvert, et donc pas besoin de lui préciser dans quel classeur écrire vu qu'il n'y en a qu'un d'ouvert.
Merci Paf et Clark...kent pour votre aide.
A+
F-D
J'ai simplement fermé mon Fichier B avant la condition :
ActiveWorkbook.Saved = True ActiveWorkbook.Close
En effet, Liste est déjà initialisé donc je n'ai pas besoin de garder le fichier ouvert, et donc pas besoin de lui préciser dans quel classeur écrire vu qu'il n'y en a qu'un d'ouvert.
Merci Paf et Clark...kent pour votre aide.
A+
F-D