Erreure d'execution 9 [Résolu]

cs_Alban83 24 Messages postés vendredi 3 juillet 2009Date d'inscription 21 septembre 2010 Dernière intervention - 28 avril 2010 à 11:19 - Dernière réponse : cs_Alban83 24 Messages postés vendredi 3 juillet 2009Date d'inscription 21 septembre 2010 Dernière intervention
- 29 avril 2010 à 09:28
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscription 22 septembre 2018 Dernière intervention - 28 avril 2010 à 13:57
3
Merci
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

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de NHenry
cs_Alban83 24 Messages postés vendredi 3 juillet 2009Date d'inscription 21 septembre 2010 Dernière intervention - 28 avril 2010 à 15:27
0
Merci
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
Commenter la réponse de cs_Alban83
NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscription 22 septembre 2018 Dernière intervention - 28 avril 2010 à 19:58
0
Merci
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 ?

Commenter la réponse de NHenry
cs_Alban83 24 Messages postés vendredi 3 juillet 2009Date d'inscription 21 septembre 2010 Dernière intervention - 28 avril 2010 à 20:12
0
Merci
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
Commenter la réponse de cs_Alban83
NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscription 22 septembre 2018 Dernière intervention - 28 avril 2010 à 20:35
0
Merci
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.

Commenter la réponse de NHenry
cs_Alban83 24 Messages postés vendredi 3 juillet 2009Date d'inscription 21 septembre 2010 Dernière intervention - 29 avril 2010 à 09:28
0
Merci
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
Commenter la réponse de cs_Alban83

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.