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

VBA Discussion :

Code ok sur mon PC mais pas chez les autres ?


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Code ok sur mon PC mais pas chez les autres ?
    Bonjour,

    Dans un document Word, j'ai écrit plusieurs procédures, dont une qui écrit dans un fichier Excel.
    Mon problème est le suivant : mon code fonctionne bien sur mon poste, mais pas sur celui des autres utilisateurs.

    Une erreur se produit sur une bête et banale ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       With xlApp
            .Workbooks("monclasseur.xls").Worksheets("mafeuille").Select
            .Range(MonAddress).Activate 'PLANTAGE ICI
       End with
    (la variable MonAddress de type Str contient "G12").

    L'erreur est "Erreur d'exécution 1004 : La méthode 'Range' de l'objet '_Application' a échoué."

    Je ne parviens pas à trouver pourquoi cela fonctionne sur mon poste et pas chez les autres. J'ai cherché du côté des Références dans le menu Outils/Références, mais celles-ci semblent associées au fichier Word, elles sont actives sur les postes des autres utilisateurs lors de l'ouverture du document.

    J'ai vérifié du côté des macros complémentaires installées dans Excel, mais même après avoir activé chez un autre utilisateur l'"Analysis tool-pak - VBA" qui est active sur mon PC, le problème est toujours là.

    Merci de votre aide,

    Catherine

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    Tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With xlApp.Workbooks("monclasseur.xls").Worksheets("mafeuille")
        .Select
        .Range(MonAddress).Activate
    End With


    michel

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse.

    Ta proposition ne solutionne pas le problème : j'ai maintenant un message d'erreur 'Erreur d'exécution 1004 : Erreur définie par l'application ou par l'objet.'

    Je vais essayer d'exécuter un morceau de code semblable directement depuis Excel pour voir si ça fonctionne...

    Catherine

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    J'ai transposé le code directement dans Excel (sous le compte d'un utilisateur chez qui ça ne fonctionne pas correctement), et ça fonctionne bien.
    Je poursuis mes recherches !

  5. #5
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bizarre ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Dim xlWkb as Excel.Workbook
        Set xlWkb = xlApp.Workbooks("monclasseur.xls").Worksheets("mafeuille")
     
        With xlWkb
            .Select
            Debug.Print MonAdresse & vbtab & TypeName(Monadresse)
            .Range(MonAddress).Select
        End with
    ensuite, regarde ce qui est inscrit dans la fenêtre exécution (CTRL+G)

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour !


    Citation Envoyé par Maxence HUBICHE
    Bizarre ça !
    ...
    Debug.Print MonAdresse & vbtab & TypeName(Monadresse)
    ...
    ensuite, regarde ce qui est inscrit dans la fenêtre exécution (CTRL+G)
    ça donne I10 String

    J'ai fini par trouver ce qui cloche :

    Dans mon code je fais appel à Excel mais sans l'afficher (xlapp.visible = false), afin que l'utilisateur ne puisse pas agir accidentellement sur le fichier utilisé par la macro. Et c'est ça qui gène...

    J'ai ajouté dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         xlapp.visible = true
         xlapp.windows("MonClasseur").visible = true
    et là tout baigne.

    J'ai juste eu du mal à identifier le problème car en phase de tests j'affichais quasi systématiquement (manuellement) l'application pour suivre le déroulement...
    Par contre je ne saisis toujours pas pourquoi ça fonctionnait sur mon pc et pas chez les autres... j'ai re-testé ce matin sur mon poste et l'erreur s'est produite, j'ai du louper qqchose... Strange !

    Maintenant, puisqu'il faut qu'Excel soit visible, il faut que je trouve le moyen de laisser au premier plan ma progress bar (Userform) afin que l'utilisateur ne touche à rien... Or une progressbar ne peut pas être modale sinon ça bloque le code en arrière plan.
    Je vais tester si un simple application.screenupdating suffit !

    Merci de vos contributions !

  7. #7
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Dans ce cas, essaie d'utiliser Select pour ta feuille, plutôt que Activate...

Discussions similaires

  1. [XL-2007] Macro fonctionne sur mon poste mais pas chez les autres
    Par Rosees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2013, 17h01
  2. Réponses: 3
    Dernier message: 09/07/2009, 13h42
  3. [WD12] client/serveur chez moi, mais pas chez les autres ?
    Par daphi dans le forum HyperFileSQL
    Réponses: 5
    Dernier message: 19/03/2009, 18h43
  4. idFTP : fonctionnement OK chez moi, mais pas chez les autres
    Par Goofyjp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/10/2008, 15h35
  5. [MySQL] code passant sur le server mais pas sur Internet
    Par Atreyu_96 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/09/2007, 16h09

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