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 :

Problème avec ActiveWorkbook et ActiveSheet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut Problème avec ActiveWorkbook et ActiveSheet
    Bonjour j'ai le code suivant qui ouvre un nouveau classeur excel et créé une feuille etc. Ca marche très bien la première fois, mais si j'exécute la deuxième fois j'espérais qu'il allait me créer et travailler sur le nouveau classeur, mais il y a un problème avec ActiveWorkbook et ActiveSheet car ça pointe toujours vers l'ancien classeur. J'ai essayé avec Activate, mais ça ne change rien.

    Voici un extrait de mon code (j'ai raccourci le tout):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet
        Dim pt As Excel.PivotTable
        Dim db As DAO.Database, Rst As DAO.Recordset, fld As DAO.Field
     
        Set xlApp = New Excel.Application
        Set xlBook = xlApp.Workbooks.Add
        Set xlSheet = xlBook.Worksheets.Add
     
        xlBook.Sheets.Add
        xlBook.Activate
     
        xlBook.Sheets(1).Activate
        Set xlSheet = ActiveSheet
        MsgBox (xlSheet.Name)
    si j'imprime xlSheet.Name il affiche le nom de la feuille du premier classeur et non de la feuille du classeur nouvellement créé.

    J'ai cherché dans la FAC sans trouver mon bonheur. Est-ce que quelqu'un a aussi eu ce problème ?

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    j'ai oublié de préciser quelque chose. Le premier classeur ouvert est visible, le nouveau n'est pas visible lors sa création et sera rendu visible en fin de création...est-ce que l'invisibilité peut jouer sur la fonction activate quand un classeur visible existe?

  3. #3
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    j'avais aussi à gérer différents classeurs par le code

    et la méthode la plus simple que j'ai trouvée est de créer 2 variables
    une pour chaque et ainsi tu as juste à utiliser les variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim MonClasseur1 As Workbook  
    Dim MonClasseur2 As Workbook 
     
    'Avant la création du nouveau classeur
    Set MonClasseur1 = ActiveWorkbook
     
    'Apres la création du nouveau classeur
    Set MonClasseur2 = ActiveWorkbook
    peut etre ca pourra t'aider

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    le problème c'est que ce ne sont pas toujours forcément deux classeurs, l'utilisateur peut avoir plusieurs classeurs ouvert lors de l'extraction vers Excel et je ne peux donc pas me baser sur deux variables...

  5. #5
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    peut etre peux tu utiliser un tableau de classeur à dimension variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MesClasseurs() as Workbook

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    non car j'ai besoin de la fonction activate et de la variable ActiveWorkbook et ActiveSheet, car sinon chez moi la fonction PivotCaches ne marche pas (je ne sais pas pourquoi d'ailleurs), car j'essaie avec ActiveWorkbook.PivotCaches... ça marche, quand j'essaie avec xlBook.PivotCaches il me donne une erreur (résoudre ce problème pourrait aussi résoudre l'autre

Discussions similaires

  1. Problème avec "ActiveWorkbook.FollowHyperlink Address"
    Par lbar012001 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/01/2008, 13h43
  2. Problème avec ActiveWorkbook et ActiveSheet
    Par pschmidtke dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2006, 12h12
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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