Posez votre question Signaler

Vba excel active workbooks [Résolu]

aurelie76 54Messages postés 19 avril 2008Date d'inscription 23 janvier 2011Dernière intervention - Dernière réponse le 15 mai 2008 à 21:11
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
Lire la suite 

Vba excel active workbooks »

9 réponses
Réponse
+3
moins plus
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
aurelie76- 15 mai 2008 à 21:11
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.
Ajouter un commentaire
Réponse
+2
moins plus
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+
Ajouter un commentaire
Réponse
+0
moins plus
Esssaye de mettre le chemin complet.
E.g. C:\DossierDeTravail\Classeur1.Xls)
Qui plus est, avant d'effacer ton fichier, ferme le.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Salut aurélie, essaye de remplacer Name par Path
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
lermite222- 15 mai 2008 à 18:47
faut mettre des guillemets
Workbooks("classeur1.xls").Close >> s'il à déjà été sauvé, sinon
Workbooks("classeur1").Close
Ajouter un commentaire
Ce document intitulé « vba excel active workbooks » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?