OVH Cloud OVH Cloud

Microsoft Query

1 réponse
Avatar
Michel
J'utilise un dossier excel comportant 150 feuilles li=E9s =E0=20
des requ=EAtes SQL suivantes :


SELECT REC.DECR, REC.CIDB, REC.MVTS, REC.NUMC, REC.LIBE,=20
REC.NUMP, REC.CRED, REC.JOUR, REC.DEBI
FROM `C:\Access\Comptabilit=E9\DATA_COMPTA`.REC REC
WHERE (REC.CIDB=3D'MAD300')

Je souhaite changer le nom de la base source

Y'a t'il une proc=E9dure rapide qui puisse m'=E9viter=20
d'ouvrir chaque feuille pour remplacer :
C:\Access\Comptabilit=E9 par
\\serveur\d\Fichiers_Access\Comptabilit=E9

Merci de m'aider

Michel

1 réponse

Avatar
Denis Michon
Bonjour Michel,

Si je comprends ton problème, tu veux modifier le texte de tes requêtes dans les modules :


Tu ajoutes un nouveau module standard à ton projet et tu copies la procédure suivante, le temps de faire tourner cette
macro.
Cela est pour éviter que la macro modifie le texte de sa propre macro.

Dans la procédure suivante : tu dois déterminer 3 choses :

A ) ChaineRecherchée = A déterminer
B ) ChaineRemplace = A déterminer

C ) dans cette ligne de code :
If Module.Name <> "Module1" Then
remplace "Module1" par le nom du module où tu aura copié cette procédure.


Attention : Assure-toi d'avoir une sauvegarde de ton fichier avant de lancer cette procédure !

'-----------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer
Dim Module As Object

ChaineRecherchée = "C:Mon DossierMa Base.mdb"
ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"

For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
For I = .CountOfLines To 1 Step -1
Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
If Trouver <> 0 Then
.ReplaceLine I, Left(.Lines(I, 1) _
, Trouver - 1) & ChaineRemplace & _
Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
, Len(.Lines(I, 1)))
End If
Next I
End If
End With
Next
Set Module = Nothing
End Sub
'-----------------------------------------


Salutations!




"Michel" a écrit dans le message de news:08aa01c39567$a97fa1f0$
J'utilise un dossier excel comportant 150 feuilles liés à
des requêtes SQL suivantes :


SELECT REC.DECR, REC.CIDB, REC.MVTS, REC.NUMC, REC.LIBE,
REC.NUMP, REC.CRED, REC.JOUR, REC.DEBI
FROM `C:AccessComptabilitéDATA_COMPTA`.REC REC
WHERE (REC.CIDB='MAD300')

Je souhaite changer le nom de la base source

Y'a t'il une procédure rapide qui puisse m'éviter
d'ouvrir chaque feuille pour remplacer :
C:AccessComptabilité par
serveurdFichiers_AccessComptabilité

Merci de m'aider

Michel