OVH Cloud OVH Cloud

Query

7 réponses
Avatar
Cirano
Bonjour,
J'ai un petit prob que je ne m'explique pas.
Il y a quelques jours j'ai sauvegarder un fichier que je=20
vais appeler =AB facture.xls =BB sous =AB facture sos.xls =BB=20
parce que j'avais un probl=E8me et que je voulais l'ouvrir=20
2 X pour copier une feuille d'un fichier de sauvegarde du=20
m=EAme nom.
Depuis le probl=E8me suivant ce pose: J'ai dans ce fichier=20
un Query lier =E0 un fichier Access et qui fonctionne avec=20
un Bouton d=E9clanchant une macro pour automatiquement=20
r=E9actualiser des donn=E9es, lorsque je l'utilise (donc=20
dans =AB facture.xls =BB), le fichier =AB facture sos.xls =BB=20
s'ouvre automatiquement et lorsque je le supprime (=AB=20
facture sos.xls =BB) la macro (Query) ne fonctionne pas car=20
il ne trouve pas.
Ou est le lien ? Et comment je peux supprimer ce petit=20
inconv=E9nient ?
Merci,

7 réponses

Avatar
Damien
Bonjour Cirano

Il est possible que la macro lièe au bouton soit toujours celle du fichier
original.
Tu peux le vérifier en faisant un clic droit sur le bouton. puis affecter
une macro.

Damien
Avatar
michdenis
Bonjour Cirano,

Lorsque l'on crée un "QueryTable" dans un classeur, il faut se rappeler que ce "QueryTable" s'enregistre dans le fichier
Excel au moment de la sauvegarde. Il y a deux "Propriétés essentielles" à un objet "ObjetQuery" :

A ) Connection : C'est une chaîne de caractères chargée d'établir (ouvrir) la connection entre la base des données à l'aide
du pilote que l'on a choisi (Access, Oracle, Excel, Sql ...) lors de l'élaboration du QueryTable.

B ) CommandText : C'est en fait une chaîne de caractères représentant la requête que l'on a créé lorsque la fenêtre de Query
était ouverte.

Lorsque le classeur possède des TableQuery déjà enregistré, et , que l'on décide de modifier le nom du Classeur, il faut
obligatoirement modifier les 2 chaînes de texte nommées précédemment pour que la TableQuery retrouve sa fonctionnalité. Et
comme des données ne sont pas visibles dans une cellule, on peut les retrouver à l'aide d'une procédure.

Voici une macro qui devrait faire le travail pour toutes les "QueryTable" contenus dans un classeur. Évidemment cela suppose
que les données proviennent de la même base de données source.

N.B. Je n'ai pas testé cette procédure expressément...Donc prudence !
Pour ceux qui ont une version antérieure à Excel 2000, ils doivent utiliser "Application.Substitute(...) en lieu et
place de la fonction "Replace()"; Cette dernière n'étant pas disponible.
'-------------------------------------------
Sub Query_Et_NomFichierModifie()

Dim OldName As String, NewName As String
Dim Sh As Worksheet, Qt As QueryTable

' À saisir manuellement si nécessaire...
OldName = ThisWorkbook.FullName
NewName = "DTotoMonFichierQuery.xls"

For Each Sh In Worksheets
For Each Qt In Sh.QueryTables
If InStr(Qt.Connection, OldName) > 0 Then
Qt.Connection = Replace(Qt.Connection, _
OldName, NewName)
Qt.CommandText = Replace(Qt.CommandText, _
Left(OldName, Len(OldName) - 4), _
Left(NewName, Len(NewName) - 3))
Qt.Refresh False
End If
Next
Next
'Sauvegarde du fichier
ThisWorkbook.Save
Set Sh = Nothing: Set Qt = Nothing

End Sub
'-------------------------------------------


Salutations!


P.S. Évidemment, si on possède un bouton de commande pour excéuter une macro, il faut s'assurer que ce dernier pointe bien
vers le fichier où se retrouve la macro !




"Cirano" a écrit dans le message de news:00d101c342ba$2f3db7b0$
Bonjour,
J'ai un petit prob que je ne m'explique pas.
Il y a quelques jours j'ai sauvegarder un fichier que je
vais appeler « facture.xls » sous « facture sos.xls »
parce que j'avais un problème et que je voulais l'ouvrir
2 X pour copier une feuille d'un fichier de sauvegarde du
même nom.
Depuis le problème suivant ce pose: J'ai dans ce fichier
un Query lier à un fichier Access et qui fonctionne avec
un Bouton déclanchant une macro pour automatiquement
réactualiser des données, lorsque je l'utilise (donc
dans « facture.xls »), le fichier « facture sos.xls »
s'ouvre automatiquement et lorsque je le supprime («
facture sos.xls ») la macro (Query) ne fonctionne pas car
il ne trouve pas.
Ou est le lien ? Et comment je peux supprimer ce petit
inconvénient ?
Merci,
Avatar
Cirano
Je te remercie pour ton aide, mais lorsque je clique
droit sur le bouton déclenchant la macro j'obtiens le
menu déroulant me permettant de configurer la barre menu
(que je clique sur le bouton en question ou ailleurs dans
la barre j'obtiens la même chose).
Je me rappelle sincèrement pas comment j'ai fais pour
affecter la macro au bouton.

-----Message d'origine-----
Bonjour Cirano

Il est possible que la macro lièe au bouton soit
toujours celle du fichier

original.
Tu peux le vérifier en faisant un clic droit sur le
bouton. puis affecter

une macro.

Damien


.



Avatar
cirano
Je te remercie pour ton aide, mais ta solution est au
dessus de mes moyens, je ne saurais vraiment pas par ou
commencer, mais peut-être la solution est elle bêtement
dans le contenu de ton PS mais lorsque je clique droit
sur le bouton déclanchant la macro j'obtiens le menu
déroulant me permettant de configurer la barre menu (que
je clique sur le bouton en question ou ailleurs dans la
barre j'obtiens la même chose.
Je me rappelle sincèrement pas comment j'ai fais pour
affecter la macro au bouton.

-----Message d'origine-----
Bonjour Cirano,

Lorsque l'on crée un "QueryTable" dans un classeur, il
faut se rappeler que ce "QueryTable" s'enregistre dans le

fichier
Excel au moment de la sauvegarde. Il y a
deux "Propriétés essentielles" à un objet "ObjetQuery" :


A ) Connection : C'est une chaîne de caractères chargée
d'établir (ouvrir) la connection entre la base des

données à l'aide
du pilote que l'on a choisi (Access, Oracle, Excel,
Sql ...) lors de l'élaboration du QueryTable.


B ) CommandText : C'est en fait une chaîne de caractères
représentant la requête que l'on a créé lorsque la

fenêtre de Query
était ouverte.

Lorsque le classeur possède des TableQuery déjà
enregistré, et , que l'on décide de modifier le nom du

Classeur, il faut
obligatoirement modifier les 2 chaînes de texte nommées
précédemment pour que la TableQuery retrouve sa

fonctionnalité. Et
comme des données ne sont pas visibles dans une cellule,
on peut les retrouver à l'aide d'une procédure.


Voici une macro qui devrait faire le travail pour toutes
les "QueryTable" contenus dans un classeur. Évidemment

cela suppose
que les données proviennent de la même base de données
source.


N.B. Je n'ai pas testé cette procédure
expressément...Donc prudence !

Pour ceux qui ont une version antérieure à Excel
2000, ils doivent utiliser "Application.Substitute(...)

en lieu et
place de la fonction "Replace()"; Cette dernière n'étant
pas disponible.

'-------------------------------------------
Sub Query_Et_NomFichierModifie()

Dim OldName As String, NewName As String
Dim Sh As Worksheet, Qt As QueryTable

' À saisir manuellement si nécessaire...
OldName = ThisWorkbook.FullName
NewName = "DTotoMonFichierQuery.xls"

For Each Sh In Worksheets
For Each Qt In Sh.QueryTables
If InStr(Qt.Connection, OldName) > 0 Then
Qt.Connection = Replace(Qt.Connection, _
OldName, NewName)
Qt.CommandText = Replace(Qt.CommandText, _
Left(OldName, Len(OldName) - 4), _
Left(NewName, Len(NewName) - 3))
Qt.Refresh False
End If
Next
Next
'Sauvegarde du fichier
ThisWorkbook.Save
Set Sh = Nothing: Set Qt = Nothing

End Sub
'-------------------------------------------


Salutations!


P.S. Évidemment, si on possède un bouton de commande
pour excéuter une macro, il faut s'assurer que ce dernier

pointe bien
vers le fichier où se retrouve la macro !




"Cirano" a écrit dans le message de
news:00d101c342ba$2f3db7b0$

Bonjour,
J'ai un petit prob que je ne m'explique pas.
Il y a quelques jours j'ai sauvegarder un fichier que je
vais appeler « facture.xls » sous « facture sos.xls »
parce que j'avais un problème et que je voulais l'ouvrir
2 X pour copier une feuille d'un fichier de sauvegarde du
même nom.
Depuis le problème suivant ce pose: J'ai dans ce fichier
un Query lier à un fichier Access et qui fonctionne avec
un Bouton déclanchant une macro pour automatiquement
réactualiser des données, lorsque je l'utilise (donc
dans « facture.xls »), le fichier « facture sos.xls »
s'ouvre automatiquement et lorsque je le supprime («
facture sos.xls ») la macro (Query) ne fonctionne pas car
il ne trouve pas.
Ou est le lien ? Et comment je peux supprimer ce petit
inconvénient ?
Merci,


.



Avatar
isabelle
bonjour Cirano,

sélectionne au menu, Affichage, Barres d'outils, Personnaliser
une fois cette fenêtre ouverte, fait un clik droit sur le bouton que tu
as crée et sélectionne Affecter une macro..

isabelle


Je te remercie pour ton aide, mais lorsque je clique
droit sur le bouton déclenchant la macro j'obtiens le
menu déroulant me permettant de configurer la barre menu
(que je clique sur le bouton en question ou ailleurs dans
la barre j'obtiens la même chose).
Je me rappelle sincèrement pas comment j'ai fais pour
affecter la macro au bouton.

-----Message d'origine-----
Bonjour Cirano

Il est possible que la macro lièe au bouton soit
toujours celle du fichier

original.
Tu peux le vérifier en faisant un clic droit sur le
bouton. puis affecter

une macro.

Damien


.





Avatar
Cirano
Et voila! Simple comme bonjour, merci pour ton aide

-----Message d'origine-----
Bonjour Cirano,

Si ton bouton de commande est affiché dans une des
barres d'outils :


A ) Barre de menus / affichage / barre d'outils /
Personnaliser


B ) lorsque la fenêtre personnalisée est ouverte,
tu fais un clic droit sur ton bouton de commande, et
dans le menu contextuel,

dernier item de la liste, "affecter un macro..."

C ) Referme la fenêtre...et c'est fait.


Salutations!


"Cirano" a écrit dans le message de
news:000d01c34300$5be6a8d0$

Je te remercie pour ton aide, mais lorsque je clique
droit sur le bouton déclenchant la macro j'obtiens le
menu déroulant me permettant de configurer la barre menu
(que je clique sur le bouton en question ou ailleurs dans
la barre j'obtiens la même chose).
Je me rappelle sincèrement pas comment j'ai fais pour
affecter la macro au bouton.

-----Message d'origine-----
Bonjour Cirano

Il est possible que la macro lièe au bouton soit
toujours celle du fichier

original.
Tu peux le vérifier en faisant un clic droit sur le
bouton. puis affecter

une macro.

Damien


.




.




Avatar
Cirano
Et voila! Simple comme bonjour merci pour ton aide

-----Message d'origine-----
bonjour Cirano,

sélectionne au menu, Affichage, Barres d'outils,
Personnaliser

une fois cette fenêtre ouverte, fait un clik droit sur
le bouton que tu

as crée et sélectionne Affecter une macro..

isabelle


Je te remercie pour ton aide, mais lorsque je clique
droit sur le bouton déclenchant la macro j'obtiens le
menu déroulant me permettant de configurer la barre
menu


(que je clique sur le bouton en question ou ailleurs
dans


la barre j'obtiens la même chose).
Je me rappelle sincèrement pas comment j'ai fais pour
affecter la macro au bouton.

-----Message d'origine-----
Bonjour Cirano

Il est possible que la macro lièe au bouton soit
toujours celle du fichier

original.
Tu peux le vérifier en faisant un clic droit sur le
bouton. puis affecter

une macro.

Damien


.

.