Erreure d'execution 9 [Résolu]

Signaler
Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
-
Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010
-
Salut,

J'ai écrie un petit programe qui ouvre un doc excel, copie la feuille, là cole dans l'excel ou j'éffectue les macros.
Jusque là ça fonctionne.
Mais quand je rajoute:
Workbooks(chemin).Close Savechanges:=False
J'ai une erreure d'execution 9!

Pouvez vous m'aidé?

Alban

Voici mon programe:

Sub copier()
    Dim chemin As String
 
    chemin = Application.GetOpenFilename
    
    Application.Workbooks.Open chemin
    
    Cells.Select
    Selection.Copy
    
    Windows("CODBAT2.3.xlsm").Activate
    Sheets("default").Select
    Cells.Select
    ActiveSheet.Paste
    Workbooks(chemin).Close Savechanges:=False
    
End Sub

6 réponses

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Avec le message d'erreur ça aurait été plus clair.

en clair, tu te trompe dans le nom du WorkBook.

à la place de :
chemin = Application.GetOpenFilename
Essayes :
chemin = ActiveWorkbook.Name

Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010

Merci de ta reponse, mais ce n'est pas bon.

Le message d'erreure est:
Erreur d'execution 9: L'indice n'appartient pas à la sélection.

J'ai cette erreure que si j'ajoute la ligne:

Workbooks(chemin).Close Savechanges:=False


Le code fonctionne donc avec ça:
Sub copier()
    Dim chemin As String
 
    chemin = Application.GetOpenFilename
    
    Application.Workbooks.Open chemin
    
    Cells.Select
    Selection.Copy
    
    Windows("CODBAT2.3.xlsm").Activate
    Sheets("default").Select
    Cells.Select
    ActiveSheet.Paste
    
End Sub


Mais ne ferme pas excel copier.
Est ce plus clair?

Alban
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Bonjour,

Avec le message d'erreur ça aurait été plus clair.

en clair, tu te trompe dans le nom du WorkBook.

à la place de :
chemin = Application.GetOpenFilename
Essayes :
chemin = ActiveWorkbook.Name


Tu as essayer ma suggestion de correction ?

Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010

Oui mais ça marche pas.

tu me dis de changé :
chemin = Application.GetOpenFilename
par
chemin = ActiveWorkbook.Name

Mais cette ligne marche très bien car quand je retire:
Workbooks(chemin).Close Savechanges:=False
Donc sans la dernière ligne du code tout fonctionne.
Mais le classeur excel "copier" ne se ferme pas.

Alban
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Application.GetOpenFilename
Te retourne tous le chemin vers le fichier :
c:\Mes documents\Monfichier.xls

ActiveWorkbook.Name
MonFichier.xls

Ce qui n'est pas pareil, donc, après avoir ouvert le fichier, mémorise son nom de workbook.

Messages postés
24
Date d'inscription
vendredi 3 juillet 2009
Statut
Membre
Dernière intervention
21 septembre 2010

Salut Henry

J'avais pas compris ce que tu me proposais.
Enfet j'essayai de fermer le classeur Excel avec son chemin et pas avec le nom du classeur.

Merci de ton aide et du temps passé sur ce pb.

Alban

Voici mon code fini:

Sub copier()
    Dim chemin As String
    Dim name As String
 
    chemin = Application.GetOpenFilename
    
    Application.Workbooks.Open chemin
    name = ActiveWorkbook.name
    Cells.Select
    Selection.Copy
    
    Windows("CODBAT2.3.xlsm").Activate
    Sheets("default").Select
    Cells.Select
    ActiveSheet.Paste
    Workbooks(name).Close Savechanges:=False
    
End Sub