Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Achat - Vente Divers : racoboss et 13 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

macro pour changer en automatique des liens d'un fichier

 
n°18699
oriflamme1
Profil : Jeune recrue
Posté le 19-06-2007 à 10:09:56  profilanswer
 

Bonjour le forum
je dispose d'un fichier xls de synthèse qui tous les mois doit aller me chercher des infos dans une 30aine de fichiers tjrs nommées pareil. Chaque mois on les range dans un dossier différent nommé 0107 pour janvier 2007, 0207 pour février etc...
donc dans mon fichier de synthèse tous mes liens se nomment C:/nananananannan/nananan/nanana/0107/fichier.xls
dans ce fichier de synthèse j'ai crée une boite d edialogue pour récupérer le nom du chemin d'accès à l'ancien dossier et le chemin pour le nouveau chemin à utiliser. Maintenant la dernière ligne droite c'est de faire une macro qui va aller me changer dans les liens ce fameux chemin d'accès (en gras dans mon exemple bidon), quelqu'un peur m'aider svp ???

n°18723
jacklem
Profil : Jeune recrue
Posté le 24-06-2007 à 10:16:03  profilanswer
 

bonjour   je ne suis pas expert, mais  
mais pour faire ça j'utilise la méthode filesearch qui retrouve l'adresse des fichiers sur tous les disques présents (et même réseau). voir même les fichiers effacés et c'est un ennui ! d'où la sous routine de vérification (si j'intègre cette vérification à la routine de base, on error goto ne fonctionne qu'une fois et ça bloque)
Notas:
1-pour abréger la recherche (surtout si réseau!)on peut filtrer Drivetype =  '  0 pour lecteurs "Inconnu" 1 pour "amovible", 2pour "fixe" 3 pour "réseau" 4 pour        '"CD-ROM" 5 pour "disque-RAM"
 
2-ou peut également filtrer :.FileType = msoFileType (?? pour xls)
 à voir
Celà me donnerait (mais très certainement perfectible!!)
''''''''''''''''''''''''''''''''''''''''''''''''''
public fichier as string
Public trouvé as String  
'''''''''''''''''''''''''''recherche emplacement d'unfichier '''''''''''''''''''''''''''''''''''''''''''''
Sub localise_fichier(fichier As String)  
''''''''''''''''''''
trouvé = "" 'RAZ var de recherche
Set fs = CreateObject("Scripting.FileSystemObject" )
Set lecteurs = fs.Drives
For Each lecteur In lecteurs 'parcourir lecteursmémoires successifs  
If lecteur.IsReady And lecteur.Drivetype = 2 Then
     With Application.FileSearch
         .NewSearch
         .LookIn = lecteur & "\"    'car "\" pas ajouté par fs.drives
         .SearchSubFolders = True
         .Filename = fichier
         .MatchTextExactly = False'ou true
         .FileType = msoFileTypeAllFiles 'ou filtre pour type .xls
         If .Execute() > 0 Then
             For I = 1 To .FoundFiles.Count
                 trouvé = LCase(.FoundFiles(I))
                 vérification trouvé    '****** proc ci dessous *****  
                if trouvé<>"" then exit sub  'retour vers prog appelant
            Next I
         End If
      End With
 End If
Next lecteur
msgbox fichier & " Non trouvé sur cette station"
End Sub
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''ce traitement est décalé en sous routine pour que "on-error-goto" puisse fonctionner plusieurs fois successives sans blocage...
 
Sub vérification(trouvé As String)
''''''''''''''''''''''''''''
Set fs = CreateObject("Scripting.FileSystemObject" )
on error goto vide    
Set v = fs.GetFile(trouvé) 'essai accès pour vérification
exit sub
 
vide: 'gestion erreur....
trouvé = ""  ' RAZ variable car chemin non valide
End Sub

n°18739
oriflamme1
Profil : Jeune recrue
Posté le 26-06-2007 à 12:00:15  profilanswer
 

merci bcp je vais tenter ça !


Aller à :
Ajouter une réponse