IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA Remplacement nom de répertoire dans liens


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut VBA Remplacement nom de répertoire dans liens
    Bonjour à tous le forum,

    Je viens vers vous car malgré des tests, je n'arrive pas à trouver une macro qui irait dans tous les fichiers Excel des sous répertoires d'un répertoire donné pour modifier el lien de fichier lié.

    Je joins un répertoire avec 2 fichiers pour être peut être plus claire.

    Dans le répertoire test, 2 fichiers Excel.
    Dans le premier, il y a un lien ='C:\Desktop\test\[fichier2.xlsx]Feuil1'!$A$1

    Je cherche une macro qui pourrait parcourir les uns après les autres tous les fichiers excel du répertoire test et des sous répertoires et changer le lien ='C:\Desktop\test\[fichier2.xlsx]Feuil1'!$A$1 en ='D:\test\[fichier2.xlsx]Feuil1'!$A$1

    Dans mes fichiers Excel j'ai plusieurs feuilles donc il faudrait que la macro parcours tout le document Excel.

    Cette macro ne serait pas directement incluse dans le fichier à modifier, idéalement, en exécutant la macro, je souhaiterai qu'elle me propose de choisir le répertoire où il faudrait modifier les fichiers excel

    Merci par avance pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à voir Liste des fichiers d'un dossier + Liens, à adapter à ton contexte.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    J'ai regardé vos 4 liens mais ils ne répondent pas à mon besoin.

    Je ne veux pas lister les fichiers d'un répertoire.

    Je souhaite que la macro ouvre chaque fichiers Excel d'un répertoire donné (y compris sous répertoire), par exemple C:\Desktop\test\, modifie dans ce fichier Excel les liens dans les formules, enregistre les modifications puis ferme le fichier. Ensuite elle passe au fichier suivant.

    J'espère avoir été un peu plus claire, si ce n'est pas le cas, dites le moi.

    Encore merci

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par desatan Voir le message
    Je ne veux pas lister les fichiers d'un répertoire.

    Je souhaite que la macro ouvre chaque fichiers Excel d'un répertoire donné (y compris sous répertoire), par exemple C:\Desktop\test\, modifie dans ce fichier Excel les liens dans les formules, enregistre les modifications puis ferme le fichier. Ensuite elle passe au fichier suivant.
    Bin... une fois que tu as la macro pour lister, au lieu de les afficher, tu les ouvres avec un Workbooks.Open (ce qui est facile une fois qu'on a le chemin et le nom).
    Ensuite tu fais un For Each sur toutes les cellules du fichier.
    Pour chacune, tu replaces la séquence que tu souhaites avec un Replace().
    https://msdn.microsoft.com/fr-fr/lib.../gg264409.aspx

    Ou, encore plus simple, lancer un Replace sur Cells du Workbook.
    https://msdn.microsoft.com/fr-fr/lib.../ff194086.aspx

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut
    je viens de regarder ce bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Sheet1").Columns("A").Replace _ 
     What:="SIN", Replacement:="COS", _ 
     SearchOrder:=xlByColumns, MatchCase:=True
    J'aimerai que la macro regarde automatiquement toutes les feuilles des fichiers et toutes les cellules ?

    Si je mets What:="C:\", Replacement:="D:\" cela suffit ?

    Encore merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2014, 11h47
  2. Réponses: 3
    Dernier message: 03/01/2012, 11h16
  3. Nom des répertoires dans liste déroulante
    Par Sisso dans le forum IHM
    Réponses: 3
    Dernier message: 26/11/2010, 23h23
  4. [VBA E] nom de feuille dans une combobox
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 20/06/2006, 19h53
  5. [nom de dossier dans liens HTML] renseignements
    Par guy2004 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/03/2006, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo