Vba excel active workbooks

Résolu
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -  
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai un soucis avec mon code, j'ai une erreur d'excécution 9 lorsque je veux delete un classeur appellé par une variable

voici le code :

....
Fichier = Application.GetOpenFilename
Workbooks.Open Fichier 'ouverture arborescence
classeur1 = ActiveWorkbook.Name
'MsgBox classeur1
Workbooks("classeur1.xls").Delete
....

à l'instruction Workbooks("classeur1.xls").Delete, j'ai l'indice n'appartient pas à la sélection ?
quelqu'un peut-il m'aider, merci,

aurelie
A voir également:

7 réponses

Utilisateur anonyme
 
Bonjour,

essayer comme ceci :

Option Explicit

Private Sub insérer_Click()

    Dim Sh As Worksheet
    Dim classeur2 As String, classeur1 As String
    Dim nom1 As String, wb As Workbook

    MsgBox "confirmer insérer fichier : ?", vbYesNo

    ' n.b. Éviter les accents de la langue française
    ' dans les instruction même si celle-ci sont des
    ' noms de fonctions ou routine que vous avez créé.
    insérer.Enabled = False

    Fichier = Application.GetOpenFilename
    Workbooks.Open Fichier 'ouverture arborescence
    classeur1 = ActiveWorkbook.FullName
    'MsgBox classeur1

    For Each Sh In Workbooks(classeur1).Worksheets
        Workbooks(classeur1).Sheets(Sh.Name).Copy _
            After:=Workbooks("Fiche_d'entretien_OSP_2008ter.xls").Sheets(5)
    Next Sh
    ' MsgBox classeur1

    Workbooks(classeur1).Activate
    Workbooks(classeur1).Close
    Kill classeur1

End Sub
'

Lupin
7
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
bonsoir Lupin, Lermitte222,

Merci pour tous vos conseils super précieux, sans vous j'y serais encore, félicitations pour vos connaissances et expériences dans ce domaine, on a besoin de personnes comme vous sur ce site.
Consciente de vous avoir accaparés, je vous réitère encore tous mes remerciements.

bisous à tous, aurélie.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Pas clair du tout...
Fichier = Application.GetOpenFilename
Workbooks.Open Fichier 'ouverture arborescence

'Ici je suppose que tu veux renommer le classeur 1, mais c'est pas possible d'avoir 2 classeurs du même nom dans la même instance d'excel !!
'Donc, plutôt que de renommer classeur1; le supprimé
'classeur1 = ActiveWorkbook.Name
'Delete n'est pas une action valable, si tu veux fermer...
workbooks("Classeur1").Close
pour avoir le 'path' d'un classeur il faut qu'il ai déjà été sauver sur le DD idem pour FullName
chemin = ActiveWorkbook.FullName
A+
4
dandypunk Messages postés 832 Date d'inscription   Statut Membre Dernière intervention   83
 
Esssaye de mettre le chemin complet.
E.g. C:\DossierDeTravail\Classeur1.Xls)
Qui plus est, avant d'effacer ton fichier, ferme le.
0
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
bonjour dandypunk,

le pb c'est que je ne connais pas l'instruction ou la ligne de commande pour récupérer le chemin d'accès, je sais l'afficher dans un msgbox mais comment la récupérer pour l'insérer dans le code ? si tu connais cette instruction merci.

aurelie76
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dandypunk Messages postés 832 Date d'inscription   Statut Membre Dernière intervention   83
 
Salut aurélie, essaye de remplacer Name par Path
0
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
Dandypunk,

j'ai tourné le path dans tous les sens mais je n'obtiens pas le résultat souhaité. Je continue à chercher, merci pour tes conseils et aide,

aurelie
0
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjur Lermitte,

Merci de me venir en aide une fois de plus, en fait, de mon classeur principal j'ouvre l'arborescence de mon C:\ et je choisis n'importe quel document xls de C et j'insère les feuilles de ce document dans mon classeur principal. Les deux classeurs sont donc ouverts : le principale et le classeur choisi sous C:\. Une fois laes feuilles insérées dans le doc principal, je veux fermer le classeur "choisi"

Private Sub insérer_Click()

Dim Sh As Worksheet
Dim classeur2 As String
Dim classeur1 As String
Dim nom1 As String
Dim wb As Workbook


MsgBox "confirmer insérer fichier : ?", vbYesNo

insérer.Enabled = False

Fichier = Application.GetOpenFilename
Workbooks.Open Fichier 'ouverture arborescence
classeur1 = ActiveWorkbook.Name
'MsgBox classeur1

For Each Sh In Workbooks(classeur1).Worksheets
Workbooks(classeur1).Sheets(Sh.Name).Copy After:=Workbooks("Fiche_d'entretien_OSP_2008ter.xls").Sheets(5)
Next Sh
' MsgBox classeur1

Workbooks("classeur1.xls").Activate

Workbooks(classeur1).Close

et j'ai une erreur excécution 9 (l'indice n'appartient pas à la sélection.

c'est plus compliqué que je croyais BVA, merci pour tes conseils sur les instructions.

aurélie.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
faut mettre des guillemets
Workbooks("classeur1.xls").Close >> s'il à déjà été sauvé, sinon
Workbooks("classeur1").Close
0