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 :

Macro rechercher remplace multiple


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 27
    Points
    27
    Par défaut Macro rechercher remplace multiple
    Bonjour,

    J'ai crée une macro, dans lequel je recherche et remplace une chaine de caractère par une autre, avec un format particulier apres remplacement.

    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
    17
    18
    19
    Sub recherche_remplace()
    ' recherche_remplace Macro
    Sheets(Array("a", "Feuil0", "Feuil1")).Select
        With Application.ReplaceFormat.Font
            .FontStyle = "Gras"
            .Subscript = False
            .ThemeColor = 4
            .TintAndShade = 0
        End With
        With Application.ReplaceFormat.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = 0.599963377788629
            .PatternTintAndShade = 0
        End With
        Selection.Replace What:="Voici une exemple", Replacement:="Voici un exemple" _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat _
            :=True, ReplaceFormat:=True
    End Sub
    Dans mon exemple je recherche Voici une exemple que je remplace par Voici un exemple.

    Pour éviter de répéter cette boucle, je souhaiterai optimiser ma macro.
    Je souhaite mettre les valeurs à rechercher ds la colonne b pour n variables.
    B1=TOTO
    B2=TITI
    B3=TATA
    Je souhaite mettre les valeurs à rechercher ds la colonne c pour m variables.
    C1=1
    C2=2
    C3=3

    Quelqu'un peut me dire comment je peux faire en VBA.

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 27
    Points
    27
    Par défaut Résultat
    Voilà une solution.
    Par compte, si quelqu'un peut me dire comment je peux faire pour tester si une feuille a été modifier ou pas.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    Public Sub Essai()
     
    '/* déclaration des variables
    Dim LIGNE As Integer
    Dim RECHERCHE As String
    Dim REMPLACE As String
    Dim FIN As Integer
     
    '/* Affiche dans la barre de traitement du message suivant en bas à gauche de la fenêtre Excel
    Application.StatusBar = "Traitement en cours..."
     
    '/* Désactivation de l'écran
    Application.ScreenUpdating = False
     
    '/*MsgBox LIGNE
     
    '/* Programme principale
    Sheets("a").Select
     
    '/* Calcul de la dernière ligne contenant une cellule non vierge
    FIN = Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
    '/*MsgBox FIN
     
    '/* Calcul de la boucle
    For LIGNE = 1 To FIN
    Sheets("a").Select
     
    '/* Calcul de la valeur de la cellule
    RECHERCHE = Cells(LIGNE, 1).Value
    REMPLACE = Cells(LIGNE, 2).Value
     
    '/* Message box pour ctrle des valeurs ds les cellules
    '/* MsgBox "ligne" & LIGNE & RECHERCHE
    '/*MsgBox RECHERCHE
    '/*MsgBox REMPLACE
     
    '/* Traitement sur la feuille 0
    Sheets("Feuil0").Select
    '/* Format de la cellule
        With Application.ReplaceFormat.Font
            .FontStyle = "Gras"
            .Subscript = False
            .ThemeColor = 4
            .TintAndShade = 0
        End With
        With Application.ReplaceFormat.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = 0.599963377788629
            .PatternTintAndShade = 0
        End With
        Cells.Replace What:=RECHERCHE, Replacement:=REMPLACE _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat _
            :=True, ReplaceFormat:=True
     
    '/* Traitement sur la feuille 1
    Sheets("Feuil1").Select
    '/* Format de la cellule
        With Application.ReplaceFormat.Font
            .FontStyle = "Gras"
            .Subscript = False
            .ThemeColor = 4
            .TintAndShade = 0
        End With
        With Application.ReplaceFormat.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = 0.599963377788629
            .PatternTintAndShade = 0
        End With
        Cells.Replace What:=RECHERCHE, Replacement:=REMPLACE _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat _
            :=True, ReplaceFormat:=True
     
    '/* Traitement sur la feuille 2
    Sheets("Feuil2").Select
    '/* Format de la cellule
        With Application.ReplaceFormat.Font
            .FontStyle = "Gras"
            .Subscript = False
            .ThemeColor = 4
            .TintAndShade = 0
        End With
        With Application.ReplaceFormat.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = 0.599963377788629
            .PatternTintAndShade = 0
        End With
        Cells.Replace What:=RECHERCHE, Replacement:=REMPLACE _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat _
            :=True, ReplaceFormat:=True
     
    '/* Fin de la boucle
    Next LIGNE
     
    '/* Désactivation de l'écran
    Application.ScreenUpdating = True
     
    '/* Affiche dans la barre de traitement du message suivant en bas à gauche de la fenêtre Excel
    Application.StatusBar = "Traitement terminé"
     
    '/* Affiche d'un message box
    MsgBox "La macro est terminée."
     
    End Sub

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

Discussions similaires

  1. [Toutes versions] créer une macro " rechercher remplacer "
    Par christiandu10 dans le forum Excel
    Réponses: 27
    Dernier message: 04/07/2015, 09h20
  2. macro rechercher/remplacer sur toutes les feuilles
    Par gti64 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/03/2015, 11h25
  3. [XL-2003] Macro rechercher Remplacer
    Par bakman dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 31/03/2011, 09h46
  4. Macro de recherche/remplace automatique
    Par phil011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2007, 11h00
  5. recherche et remplacement multiples
    Par gdi73 dans le forum Requêtes et SQL.
    Réponses: 24
    Dernier message: 19/06/2007, 12h01

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