IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]PB attribuer classeur à une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2004
    Messages : 42
    Par défaut [VBA-E]PB attribuer classeur à une variable
    bjr,
    je voudrais travailler sur 3 classeurs différents. je souhaite pour cela utiliser des variables, mais à chaque fois ça plante, et j'ai comme message d'erreur que l'indice n'appartient pas à la sélection.
    J'ai regardé ds la faq vba, mais je ne vois tjs pas pourquoi ça plante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Ouverture des deux classeurs source
        Application.Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_PF.xls"
        Application.Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_dest.xls"
        Set ClasseurSource1 = Workbooks("PdC_PF.xls")
        Set ClasseurSource2 = Workbooks("PdC_dest.xls")
        ClasseurCible = Application.Workbooks(Application.Workbooks(1).Path & "\" & "Restit.xls")
     
     
        ClasseurCible.Worksheets("Restitution").Select
    Merci.

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    plutot que de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Application.Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_PF.xls"
        Application.Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_dest.xls"
        Set ClasseurSource1 = Workbooks("PdC_PF.xls")
        Set ClasseurSource2 = Workbooks("PdC_dest.xls")
        ClasseurCible = Application.Workbooks(Application.Workbooks(1).Path & "\" & "Restit.xls")
     
     
        ClasseurCible.Worksheets("Restitution").Select
    Peut etre qu'écrire ça marchera mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim ClasseurSource1,ClasseurSource2 as string
    Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_PF.xls"
    ClasseurSource1 = activeWorkbook.Name
    Workbooks.Open Application.Workbooks(1).Path & "\" & "PdC_dest.xls"
    ClasseurSource2 = activeworkbook.name
    Dans ce genre la et tes variables marcheront quand ut changera de classeur, tu fais un Windows(ClasseurSource1).activate ou un workbooks(ClasseurSource1).select (mai sje crois que le second marche pas )

    Par contre c'est quoi ton Classeur Cible, j'ai pas trop compris ce que tu voulais faire avec

    Enfin j'espère que tu as compris le principe
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens inspire toi plutôt de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub OuvreClasseur()
    Dim wk As Workbook
    On Error Resume Next
    Set wk = Workbooks.Open("Classeurs1.xls")
    On Error GoTo 0
    If wk Is Nothing Then
     MsgBox "Erreur sur ouverture classeur1.xls"
     Exit Sub
    End If
    End Sub
    ensuite une fois ouvert tu accéde au classeur par wk.sheets(....


    ensuite dans ton code c'est pas terrible le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Workbooks(1).Path...
    cela signifie que tu prends le répertoire du 1° classeur ouvert dans excel...c'est pas forcément celui que tu ve...!! utilise plutôt
    s'il sagit du classeur contenant la macro...

  4. #4
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2004
    Messages : 42
    Par défaut
    merci de vos réponses.
    ça marche avec le code que tu proposes illight . J'ai aussi intégré thisworkbook.
    mais Bbil Le workbooks.open ne mfonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim ClasseurSource1 as Workbook
    Set ClasseurSource1 = Workbooks.Open("PdC_PF.xls")
    il me retourne "nothing".
    Pourtant je ne crois pas avoir besoin de mettre le chemein complet d'accès à Pdc_PF.xls?

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par rond24
    ...
    Pourtant je ne crois pas avoir besoin de mettre le chemein complet d'accès à Pdc_PF.xls?
    et pourquoi...? as moins que le fichier soit sur le répertoire courant...?

  6. #6
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2004
    Messages : 42
    Par défaut
    Oui.
    j'ai mis mes deux fichiers source ainsi que mon fichier cible dans le même répertoire.
    Et c'est bon, j'ouvre correctement mes fichiers merci. Mais vu que mon fichier cible est déjà ouvert j'ai défini ma variable ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClasseurCible = ThisWorkbook
    et là ma variable me retourne nothing??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/09/2007, 17h50
  2. [VBA]Stocker le nom d'une variable dans une autre variable
    Par strike57 dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/04/2007, 19h09
  3. [SQL] [VBA] signe de ponctuation dans une variable
    Par baboulilie dans le forum Access
    Réponses: 5
    Dernier message: 30/01/2007, 18h12
  4. Réponses: 4
    Dernier message: 19/06/2006, 17h02
  5. [VBA-E]arrondir valeur d'une variable
    Par richou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/04/2006, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo