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 un New Excel.Workbook [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut Problème avec un New Excel.Workbook
    Bonjour,

    voici un code qui permet d'ouvrir un fichier excel dans un autre processus que le fichier maitre.
    Je fais ça afin de ne pas afficher le fichier ouvert (bcp de fichiers dans la macro finale). Sinon les fichiers s'ouvrent une fraction de seconde avant de pouvoir les cacher.

    Le code bloque sur For Each cellule In wb.Sheets(Sht).Range("C13,T21") et je n'arrive pas à corriger l'erreur.

    Merci d'avance pour votre aide.


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Public MyWorkbook As Workbook
    Public xlApp As New Excel.Application
    Public wb As New Excel.Workbook
     
    Sub toto()
     
        Dim Sht As Integer
        Dim tmp As Variant
        Dim No As Integer
        Dim cellule As Variant
     
        Set MyWorkbook = ActiveWorkbook
        Set wb = xlApp.Workbooks.Open("D:\fichier1.xls", ReadOnly:=True)
        xlApp.Visible = True 'pour le debug uniquement
     
        For Sht = 1 To wb.Sheets.Count
            For Each cellule In wb.Sheets(Sht).Range("C13,T21") ' la version finale contiendra + de cellules
                tmp = cellule.Value
            Next
        Next Sht
     
        wb.Close False
        xlApp.Quit
     
        Set wb = Nothing
        Set xlApp = Nothing
     
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each cellule In wb.Sheets(Sht).Range("C13:T21")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    Range("C13:T21") fonctionne mais je ne veux pas utiliser une plage mais certaines cellules d'où la virgule.
    ex : C13, T21, F9, R14, ...

    Je précise qu'en utilisant une méthode d'ouverture de fichier dans le même processus que le fichier maitre (sans utiliser de New Excel.Application), la syntaxe fonctionnait très bien.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Comme ceci alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    For Each cellule In wb.Sheets(Sht).Range("C13", "T21")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Désolé poru ma réponse précédente qui fonctionne effectivement avec deux références mais pas avec 3
    J'ai aussi le même phénomène avec New Excel.Application et aucun problème dans la même instance.
    Je n'ai jamais utilisé à la fois une nouvelle application Excel et des cellules non contigües.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Cellule as Excel.Range
    ?

    Cordialement,

    PGZ

  7. #7
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    Désolé mais Dim Cellule as Excel.Range ne fonctionne pas plus.

  8. #8
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    En prenant le problème dans l'autre sens, est-ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    ne permettrait pas de masquer l'ouverture des fichiers dans la même instance d'Excel ?

  9. #9
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Re,
    Chez moi, ça fonctionne avec des points-virgule.
    Cette syntaxe plance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.Sheets(Sht).Range("C13,T21")
    Comme ça c'est OK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.Sheets(Sht).Range("C13;T21")

  10. #10
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    Après avoir fait des tests complémentaires, il semble en effet que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.Sheets(Sht).Range("C13;T21;Z97;AA34")
    fonctionne lorsque c'est une autre instance d'excel.

    Par contre pour faire la même chose dans l'instance principale, la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.Sheets(Sht).Range("C13;T21;Z97;AA34")
    ne fonctionne pas et il faut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.Sheets(Sht).Range("C13,T21,Z97,AA34")

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

Discussions similaires

  1. Problème avec le solveur Excel 2003
    Par ber84 dans le forum Excel
    Réponses: 4
    Dernier message: 01/07/2010, 22h11
  2. [VBA] Gros problème avec access et Excel
    Par celiaaa dans le forum VBA Access
    Réponses: 17
    Dernier message: 13/08/2007, 12h20
  3. Nouveau problème avec un tableau Excel et une macro VBA
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2007, 09h30
  4. [Cognos] Problème avec l'export Excel
    Par tonf dans le forum Cognos
    Réponses: 3
    Dernier message: 30/03/2007, 16h13
  5. problème avec un new[]
    Par f56bre dans le forum C++
    Réponses: 25
    Dernier message: 13/11/2006, 23h09

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