Probleme connection adodb

Fermé
pernic Messages postés 11 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015 - 29 mai 2015 à 11:01
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 mai 2015 à 11:08
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 29/05/2015 à 13:56
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 14:02
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 mai 2015 à 14:06
encore1 dernier truc
macro activées (oui, je sais, mais...) ?
0
pernic Messages postés 11 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
Modifié par pernic le 29/05/2015 à 14:09
oui elles sont activées
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 29/05/2015 à 14:14
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 14:20
tout les Pc sont en 32 bits
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 mai 2015 à 14:27
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 14:38
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > pernic Messages postés 11 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 14:44
Pourrais tu nous donner le code entier?
0
pernic Messages postés 11 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 15:23
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > pernic Messages postés 11 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 15:26
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 15:28
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 mai 2015 à 15:49
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 mai 2015 à 16:00
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
29 mai 2015 à 16:03
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
29 mai 2015 à 16:15
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 29 mai 2015
29 mai 2015 à 16:18
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 mai 2015 à 16:20
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
30 mai 2015 à 11:08
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