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 :

Rechercher/Remplacer chaîne dans onglet macro de plusieurs classeurs [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Rechercher/Remplacer chaîne dans onglet macro de plusieurs classeurs
    Bonjour,

    je cherche à rechercher/remplacer une chaine dans plusieurs classeurs contenus dans une arborescence.
    Cette chaine se situe, pour tous les fichiers, dans un onglet de type macro.

    J'ai essayé plusieurs outils (ExcelSR, Batch Replacer for MS Excel). Aucun de ces outils ne sait remplacer une chaine de texte se touvant dans un onglet macro.

    Une solution existe t'elle?

    Merci par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si c'est dans du code VBA, je t'invite à lire ce tuto : Visual Basic Editor

    Cela te permettra comment lire des macros en VBA Excel

    Philippe

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Je peux me tromper mais je pense que cdlabal parle de macros de type Excel 4.
    Si c'est le cas, ce n'est pas du VBA.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Alors en fait....
    Je cherche plutôt un outil tiers qui, comme savent très bien le faire les outils que j'ai mentionnés dans mon premiers post, saurait aller chercher une chaine de caractère dans plusieurs fichiers excel et la remplacer par une autre. Le pb, c'est que ces outils ne savent pas trouver la chaine dite lorsqu'elle se trouve dans un onglet de type macro (Macro MS Excel 4.0 comme l'indiquait AlainTech).
    Pourtant, lorsqu'on fait une recherche dans un fichier depuis la fonction rechercher/remplacer d'excel, il trouve bien la chaine dans l'onglet macro.
    Si je ne trouve donc pas d'outil, je sais ce qui me restera à faire: ouvrir les fichier un a un et remplacer la chaine depuis la fonction Excel..... galère.

    Merci

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il y a de fortes chances que ces macros soient précompilées.
    Par contre, par VBA, en ouvrant chaque fichier et en y faisant une recherche dans toutes les cellules, ça devrait le faire.

    Je viens de faire un petit essai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Remplace()
      Dim c As Range
      Dim wb As Workbook
      Dim ws As Worksheet
      Set wb = Workbooks.Open(ThisWorkbook.Sheets(1).Cells(1, 1).Value)
      ' Ici, j'ai mis le nom d'un fichier dans la cellule A1.
      ' Rien n'empêche de boucler sur tous les fichiers d'un répertoire à l'aide d'un Dir
      Set ws = wb.Sheets("Macrovirementliste")
      Set c = ws.Cells.Find(what:="TexteAChercher", LookIn:=xlFormulas, lookat:=xlPart)
      If Not c Is Nothing Then
        Do
          c.Formula = Replace(c.Formula, "TexteAChercher", "TexteDeRemplacement")
          Set c = ws.Cells.FindNext(c)
        Loop While (Not c Is Nothing)
      End If
    End Sub
    Attention!
    Les formules sont effectivement précompilées et, si on affiche leur contenu dans VBA, on constate qu'elles sont traduites en anglais.
    Donc, la recherche ne peut se faire que sur les constantes littérales comme des chemins de fichiers ou des noms de feuilles.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci
    Merci AlainTech,

    c'est en effet la solution que j'ai finalement retenue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/06/2008, 15h11
  2. Remplacement caractère dans une macro variable
    Par Atojul dans le forum Macro
    Réponses: 2
    Dernier message: 22/04/2008, 09h43
  3. Recherche une chaîne dans un fichier
    Par |DuFF| dans le forum Windows
    Réponses: 5
    Dernier message: 24/01/2008, 17h11
  4. rechercher/remplacer chaine dans fichier txt
    Par C_Mila dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 25/02/2007, 12h06
  5. Rechercher une chaîne dans une autre
    Par Nethervoid21 dans le forum Langage
    Réponses: 3
    Dernier message: 17/11/2006, 16h58

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