Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 01/11/2011, 15h57   #1
Invité de passage
 
Femme Marion
Développeur VBA
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Marion
Localisation : France

Informations professionnelles :
Activité : Développeur VBA
Secteur : Transports

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
Par défaut Application sous vba utilisateurs avec configurations différentes

Bonjour,

je développe une application avec différentes fonctionnalités sous Excel 2003 via vba et je suis confrontée à un problème d'utilisateurs qui ont des versions différentes d'excel, d'OS et même d'applications disponibles différentes (visio, acess,...).

Le cas qui me préoccupe aujourd'hui est que j'ai une fonctionnalité qui fait appel à VISIO mais que certains de mes utilisateurs ne l'ont pas sur leur PC. Or je souhaite mettre à disposition de tout mes utilisateurs une version qui gère à la fois cette fonctionnalité s'ils ont visio mais qui s'ils ne l'ont pas, fonctionne sans proposer cette fonctionnalité.

Quand ils ouvrent Excel les utilisateurs sans visio ont un message d'erreur car au moment de la compilation, l'application cherche des références à visio dans la bibliothèque qu'ils n'ont pas.

Est ce que quelqu'un sait comment éviter ce problème au moment de la compilation sans créer deux versions différentes de l'application?

Merci d'avance pour votre aide.
BluePlatypus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 16h29   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 905
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 905
Points : 7 199
Points : 7 199
Bonjour,

Au lieu de mettre les références en dur, tu appels ces références dans l'instanciation de ta variable application

Ci dessous, un exemple d'appel de powerpoint
Code :
1
2
3
4
5
6
 
Dim PowApp As Object
Dim PowPres As Object
 
Set PowApp = CreateObject("Powerpoint.Application")
Set PowPres = PowApp.Presentations.Open(ActiveWorkbook.Path & "\carte de france.ppt")
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 17h24   #3
Invité de passage
 
Femme Marion
Développeur VBA
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Marion
Localisation : France

Informations professionnelles :
Activité : Développeur VBA
Secteur : Transports

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
je vais essayer ça dès demain!
Merci pour cette réponse rapide!
BluePlatypus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 09h25   #4
Invité de passage
 
Femme Marion
Développeur VBA
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Marion
Localisation : France

Informations professionnelles :
Activité : Développeur VBA
Secteur : Transports

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
En fait j'avais déjà fait cette manipulation comme suit:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
'instanciation visio
  Set appVisio = CreateObject("Visio.Application")
 
'ouvrir le doc existant visio
      If Err <> 0 Then
            MsgBox ("Your current configuration does not allow the execution of this feature." & vbCrLf & "Please contact your administrator and give this error number: " & Err)
        End If
        Set objVisio = appVisio.Documents.OpenEx(strFichierSource, visOpenCopy)
 
'rendre le document viso visible
appVisio.Visible = True
Mais ça n’empêche pas qu'il cherche les références à visio à la compilation et que si on a pas visio on ne peut pas continuer...
BluePlatypus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 09h41   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
On ne voit pas comment tu déclare tes variables et comment fonctionne ton traitement d'erreurs ..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 Dim AppVisio As Object
 On Error Resume Next
 Set AppVisio = CreateObject("Visio.Application")
 On Error GoTo 0
 If Not AppVisio Is Nothing Then
   '....Avec Visio
   AppVisio.Visible = True
 
  Else
    '.... Sans Visio
    Stop
  End If
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 10h04   #6
Invité de passage
 
Femme Marion
Développeur VBA
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Marion
Localisation : France

Informations professionnelles :
Activité : Développeur VBA
Secteur : Transports

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
Effectivement mon problème venait de ma déclaration de variable je n'avais pas vu qu'il fallait les déclarer en object...

Je n'ai plus d'erreurs à la compilation!

Merci beaucoup!

BluePlatypus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 10h40   #7
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Citation:
Envoyé par BluePlatypus Voir le message
Effectivement mon problème venait de ma déclaration de variable je n'avais pas vu qu'il fallait les déclarer en object...
Bonjour,

C'est essentiellement surtout qu'il faudrait que tu acquières les notions de Late Binding (Liaison tardive) de l'Early Binding (Liaison anticipée)

Citation:
L'objet spécifique de cette fiche est de permettre de comprendre et de différencier le Late Binding (Liaison tardive) de l'Early Binding (Liaison anticipée). Ces deux techniques vous permettront de sortir de certaines situation périlleuses dans vos développements de solutions pour des parcs hétérogènes.
http://mhubiche.developpez.com/vba/f...endre/binding/

http://heureuxoli.developpez.com/off...?page=page2#L2

ne t'arrêtes pas sur Acces ou Word, l'approche est la même à ce niveau..

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 11h03   #8
Invité de passage
 
Femme Marion
Développeur VBA
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme Marion
Localisation : France

Informations professionnelles :
Activité : Développeur VBA
Secteur : Transports

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 1
Points : 1
Ok je vais regarder merci pour les conseils!
BluePlatypus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web