Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2007, 17h21   #1
Invité de passage
 
Inscription : août 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 11
Points : 1
Points : 1
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 :
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
catherineFR27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 21h02   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonsoir

Tu peux essayer

Code :
1
2
3
4
With xlApp.Workbooks("monclasseur.xls").Worksheets("mafeuille")
    .Select
    .Range(MonAddress).Activate
End With


michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 09h58   #3
Invité de passage
 
Inscription : août 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 11
Points : 1
Points : 1
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
catherineFR27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 16h56   #4
Invité de passage
 
Inscription : août 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 11
Points : 1
Points : 1
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 !
catherineFR27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 21h30   #5
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Bizarre ça !

Code :
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)
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 13h51   #6
Invité de passage
 
Inscription : août 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 11
Points : 1
Points : 1
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 :
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 !
catherineFR27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h29   #7
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Dans ce cas, essaie d'utiliser Select pour ta feuille, plutôt que Activate...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web