Probleme connection adodb

pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour;

Je rencontre un souci sur un PC, j'ai un fichier Excel avec un lien vers une macro complémentaire.

Dans cette macro complémentaire, je vais une connexion adodb sur mon fichier.
Lors de l'activation de la macro, il m'ouvre une deuxième fois mon fichier en lecture seul, et il rencontre un problème de zone nommé, une zone nommée porte déjà le même nom.

Or la macro fonctionne parfaitement sur tous les PC sauf un .

Avez-vous une idée d'où cela peut venir ?

PS : par souci de confidentialité je ne peux pas vous montrer le code.

Merci par avance

A voir également:

6 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,
peut-^tre
depuis XL2007 le script de connexion a changé

Voir
https://www.connectionstrings.com/

si XL>=2007
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With

si <2007
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With

source;
https://silkyroad.developpez.com/VBA/ClasseursFermes/

edit:
aussi peut-^tre la référence non cochée dans outil-référence de l'éditeur vba
dans ce cas il vaut écrire dans la macro
Dim cn as object
...
set Cn=createobject("adodb.connexion")
m^me punition pour la requ^te
Michel
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ta réponse rapide
j'ai bien la bonne connexion, je ne pense pas que cela vienne du code, le fichier étant partagé par toute l'équipe et le problème n'arrive que sur un PC, je pense que cela vient plutôt d'une config Excel indépendant au fichier, mais je ne vois pas laquelle.
j'ai vérifié les références et les compléments, et tout le monde a les mêmes.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
encore1 dernier truc
macro activées (oui, je sais, mais...) ?
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
oui elles sont activées
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Excusez l'incruste...

Peut être une différence de Bits, 64 vs 32...
Si votre Office est en 32 bits, il cnviendra d'utiliser comme dit précédemment par Michel :
Provider = "Microsoft.Jet.OLEDB.4.0"

Sinon, en 64 bits, remplacer par :
Provider = "Microsoft.ACE.OLEDB.12.0" 


Ou pas...........

Source : https://stackoverflow.com/questions/26515823/working-with-oledb-connection-on-office-2013-64-bit

🎼 Cordialement,
Franck 🎶
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
tout les Pc sont en 32 bits
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Tu dis :
il m'ouvre une deuxième fois mon fichier en lecture seul, et il rencontre un problème de zone nommé, une zone nommée porte déjà le même nom.
Que se passe t'il donc, sur ce pc, pour que ta macro ouvre deux fois ce classeur?
Parce qu'il est là le souci.
Si tu lances ce code (je ne sais pas si c'est possible) en mode pas à pas sur le pc qui pose souci, tu apercevras peut être un élément qui diffère des autres...
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
mon fichier est déjà ouvert , c'est avec lui que j'active la macro complémentaire.
sur tout les pc dans la méthode pas à pas quand on ouvre la connexion , ca ne pose pas de problème , il lit le fichier déjà ouvert.
Sur ce pc au lieu de lire les infos sur le fichier déjà ouvert , il ouvre le fichier en lecture seul pour lire les données , mais une pop-up apparait car deux champs nommée ont le même nom , il me demande donc de changer son nom , si je change son nom , il lit les données dans le fichier qu'il vient d'ouvrir. et la macro marche.

Même si cela marche comme ca , ce n'est pas une solution vu que le fichier est en lecture seul.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Pourrais tu nous donner le code entier?
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Je fait :
Set myconnection = New ADODB.Connection

Myconnection.Open "driver={Microsoft Excel Driver (*.xls)};" & " DBQ=" & chemin & "; ReadOnly=False;"
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Pourrais tu nous donner le code entier?
Le code réellement en entier de toute la macro.
C'est tout ce qu'il y a?
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Non dsl je ne peut pas et elle fait 1000 lignes ;) , mais c'est au niveau de open qu'il me réouvre le fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bon...
Pas simple, sans code ni fichier.
Regarde les options Excel. Il y a forcément quelque chose qui est différent dans le PC qui bloque.
Je pense, notamment à :
Menu Fichier/Options Excel/Centre de gestion de la confidentialité
Paramètres de blocage des fichiers
Vérifie les cases cochées.regarde par exemple si la case "ouvrir" est bien décochée pour les fichiers de macros complémentaires...

Sinon, ne te reste qu'à parcourir toutes les options de cet excel par rapport aux autres...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
macro de 1000 lignes ?
standard développeur microsoft= 50 maxi...

salut Frank,
d'après le code on est en .xls soit XL<2007
voir le le numéro excel X;0 si >Extended Properties=Excel 10.0
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut michel,

macro de 1000 lignes ?
standard développeur microsoft= 50 maxi...

Entièrement d'accord, mais nous n'y pourrons rien sans le code.

Peut être pernic pourrais-tu nous expliquer en quoi ton code est top secret?
Ce ne sont que des lignes de code VBA, pas le programme de décollage des Airbus A380?
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Dans ma fonction de connection il n'y as pas bcq plus que ce que je vous est donnée.
0
pernic Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Pour l'instant internet rame , je répond avec mon tel , je vous envoie la fonction quand ça remarche
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
16ème message.
On ne peut pas accéder au code, on ne sait toujours pas la version d'excel.
Il m'est impossible de t'aider davantage qu'en te disant de te "palucher" toutes les différentes options Excel de ce pc par rapport aux autres.
Si c'est pas cela, tenter une réinstallation d'Office (ou peut être une simple réparation)...
Désolé de ne pouvoir en faire plus.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

La nuit portant conseil, peux tu placer un MsgBox dans le code juste avant la connection et me dire si tu as une différence entre le poste "merdique" et un autre :
MsgBox chemin
Myconnection.Open "driver={Microsoft Excel Driver (*.xls)};" & " DBQ=" & chemin & "; ReadOnly=False;"

0