Modification code

Bonjour le forum, je souhaiterais modifier ce code qui m'a été fourni par LouRed et qui fonctionne très bien, mais pour une autre utilisation je voudrai qu'il ne fonctionne que pour les feuilles "Stock", "Source" et "Catalogue"; ou toutes les feuilles sauf la feuille "Mouvement".

Merci d'avance

Nonno

Sub Remplace() Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String ValCherche = Sheets("Stock").Range("AA11"): ValRemplace = Sheets("Stock").Range("AA14") On Error Resume Next For Each Feuil In Sheets For Each Cel In Feuil.UsedRange If Cel Like ValCherche Then Cel.Value = ValRemplace End If Next Cel Next Feuil End Sub

Bonjour Nonno ,

Comme je suis réveillé et en espérant que LouReed (que je salue ) ne m'en voudra pas, voici une réponse possible à vos deux questions. Vous auriez pu continuer sur le fil d'origine car ça concerne le même sujet et en plus LouReed aurait été averti automatiquement qu'un nouveau message dans le fil d'origine était arrivé.

Sub RemplaceInclure()
' Uniquement pour les feuilles de la liste Inclure
Const S = ";"                                ' séparateur de la liste des feuilles à inclure
Const Inclure = "Stock;Source;Catalogue"     ' <- liste des feuilles à inclure - séparateur S
Dim NomFeuil, Cel As Range, ValCherche As String, ValRemplace As String

   ValCherche = Sheets("Stock").Range("AA11")
   ValRemplace = Sheets("Stock").Range("AA14")
   On Error Resume Next
   For Each NomFeuil In Split(Inclure, S)
      For Each Cel In Worksheets(NomFeuil).UsedRange
         If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
      Next Cel
   Next NomFeuil
End Sub

Sub RemplaceExclure()
' Pour toutes les feuilles sauf les feuilles de la liste  Exclure
Const S = ";"                 ' séparateur de la liste des feuilles à exclure
Const Exclure = "mouvement"   ' <- liste des feuilles à exclure - séparateur S
Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String

   ValCherche = Sheets("Stock").Range("AA11")
   ValRemplace = Sheets("Stock").Range("AA14")
   On Error Resume Next
   For Each Feuil In Worksheets
      If InStr(1, S & Exclure & S, S & Feuil.Name & S, vbTextCompare) = 0 Then
         For Each Cel In Feuil.UsedRange
            If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
         Next Cel
      End If
   Next Feuil
End Sub

Bonjour et merci mafraise

je ne savait pas que je pouvais continuer sur le "même fil", j'espère que LouReed ne m'en voudra pas.

encore merci mafraise et désolé LouReed

Bonjour !

Non mais je plaisante !

De plus le code fourni par mafraise sur l'autre fil était plus abouti !

Passez une bonne fin de weekend !

@ bientôt

LouReeD

Bonjour

Je souhaiterais ajouter une autre feuille à exclure:"ArchivCdes", j'ai tenté plusieurs façons, sans succès.

Merci d'avance

Nonno

feuilles à exclure Const Exclure = "mouvement"

Sub RemplaceExclure() ' Pour toutes les feuilles sauf les feuilles de la liste Exclure Const S = ";" ' séparateur de la liste des feuilles à exclure Const Exclure = "mouvement" ' <- liste des feuilles à exclure - séparateur S Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String ValCherche = Sheets("Stock").Range("AA11") ValRemplace = Sheets("Stock").Range("AA14") On Error Resume Next For Each Feuil In Worksheets If InStr(1, S & Exclure & S, S & Feuil.Name & S, vbTextCompare) = 0 Then For Each Cel In Feuil.UsedRange If Cel.Value Like ValCherche Then Cel.Value = ValRemplace Next Cel End If Next Feuil End Sub

Re ,

Voici le code fourni dans le message #2 :

Sub RemplaceExclure()
' Pour toutes les feuilles sauf les feuilles de la liste  Exclure
Const S = ";"                 ' séparateur de la liste des feuilles à exclure
Const Exclure = "mouvement"   ' <- liste des feuilles à exclure - séparateur S
Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String

   ValCherche = Sheets("Stock").Range("AA11")
   ValRemplace = Sheets("Stock").Range("AA14")
   On Error Resume Next
   For Each Feuil In Worksheets
      If InStr(1, S & Exclure & S, S & Feuil.Name & S, vbTextCompare) = 0 Then
         For Each Cel In Feuil.UsedRange
            If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
         Next Cel
      End If
   Next Feuil
End Sub

La partie intéressante est :

' Pour toutes les feuilles sauf les feuilles de la liste  Exclure
Const S = ";"                 ' séparateur de la liste des feuilles à exclure
Const Exclure = "mouvement"   ' <- liste des feuilles à exclure - séparateur S

J'ai mis délibérément des commentaires.

Donc si vous voulez ajouter une feuille à exclure, vous modifiez la constante Exclure par :

Const Exclure = "mouvement;ArchivCdes"   ' <- liste des feuilles à exclure - séparateur S


Nota : Quand on insère du code dans le texte d'un message, il faut utiliser la balise code "</>", une fenêtre s'ouvre, collez y le texte du code puis appuyer sur le bouton insérer. Exemple :

image image

...

Merci mafraise, pour toutes ces explications.

Bonne journée

Nonno

Bonjour mafraise, je me permet de revenir directement vers vous pour ces codes que vous m'avez fournis(qui fonctionnent très bien), serait-il possible?, dans les deux cas "d'ignorer" la colonne "C", nommée "REF Fournisseurs" et qui est la 2 ème colonne du "Tableau1" de la feuille "Stock".

Cordialement

Nonno

Sub RemplaceInclure()
If Range("AB14") <> "" Then
' Uniquement pour les feuilles de la liste Inclure
Const S = ";"                                ' séparateur de la liste des feuilles à inclure
Const Inclure = "Stock;Source;Catalogue"     ' <- liste des feuilles à inclure - séparateur S
Dim NomFeuil, Cel As Range, ValCherche As String, ValRemplace As String

   ValCherche = Sheets("Stock").Range("AB11")
   ValRemplace = Sheets("Stock").Range("AB14")
   On Error Resume Next
   For Each NomFeuil In Split(Inclure, S)
      For Each Cel In Worksheets(NomFeuil).UsedRange
         If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
      Next Cel
   Next NomFeuil
  Range("AB14").Select
    Selection.ClearContents
    Else
    MsgBox "Remplacée par?"
    End If
End Sub
Sub RemplaceExclure()
If Range("AB14") <> "" Then

' Pour toutes les feuilles sauf les feuilles de la liste  Exclure
Const S = ";"                 ' séparateur de la liste des feuilles à exclure
Const Exclure = "Mouvement;ArchivCdes"   ' <- liste des feuilles à exclure - séparateur S
Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String

   ValCherche = Sheets("Stock").Range("AB11")
   ValRemplace = Sheets("Stock").Range("AB14")
   On Error Resume Next
   For Each Feuil In Worksheets
      If InStr(1, S & Exclure & S, S & Feuil.Name & S, vbTextCompare) = 0 Then
         For Each Cel In Feuil.UsedRange
            If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
         Next Cel
      End If
   Next Feuil
  Range("AB14").Select
    Selection.ClearContents
     Else
    MsgBox "Remplacée par?"
    End If
End Sub

Bonjour Nonno ,

Sans avoir testé puisque pas de fichier, voici un code modifié que vous devrez tester :

Sub RemplaceInclure()
' Uniquement pour les feuilles de la liste Inclure

Const S = ";"                                ' séparateur de la liste des feuilles à inclure
Const Inclure = "Stock;Source;Catalogue"     ' <- liste des feuilles à inclure - séparateur S
Dim NomFeuil, Cel As Range, ValCherche As String, ValRemplace As String

   If Range("AB14") <> "" Then
      ValCherche = Sheets("Stock").Range("AB11")
      ValRemplace = Sheets("Stock").Range("AB14")
      On Error Resume Next
      For Each NomFeuil In Split(Inclure, S)
         If LCase(NomFeuil) = LCase("stock") Then
            For Each Cel In Worksheets(NomFeuil).UsedRange
               If Cel.Column <> [c1].Column Then
                  If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
               End If
            Next Cel
         Else
            For Each Cel In Worksheets(NomFeuil).UsedRange
               If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
            Next Cel
         End If
      Next NomFeuil
      Range("AB14").Select
      Selection.ClearContents
   Else
      MsgBox "Remplacée par ?"
   End If
End Sub

Sub RemplaceExclure()

   ' Pour toutes les feuilles sauf les feuilles de la liste  Exclure
   Const S = ";"                 ' séparateur de la liste des feuilles à exclure
   Const Exclure = "Mouvement;ArchivCdes"   ' <- liste des feuilles à exclure - séparateur S
   Dim Feuil As Worksheet, Cel As Range, ValCherche As String, ValRemplace As String

   If Range("AB14") <> "" Then
      ValCherche = Sheets("Stock").Range("AB11")
      ValRemplace = Sheets("Stock").Range("AB14")
      On Error Resume Next
      For Each Feuil In Worksheets
         If InStr(1, S & Exclure & S, S & Feuil.Name & S, vbTextCompare) = 0 Then
            If LCase(Feuil.Name) = LCase("stock") Then
               For Each Cel In Feuil.UsedRange
                  If Cel.Column <> [c1].Column Then
                     If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
                  End If
               Next Cel
            Else
               For Each Cel In Feuil.UsedRange
                  If Cel.Value Like ValCherche Then Cel.Value = ValRemplace
               Next Cel
            End If
         End If
      Next Feuil
      Range("AB14").Select
      Selection.ClearContents
   Else
       MsgBox "Remplacée par ?"
   End If
End Sub

Merci Mafraise

Si tôt dit, si tôt fait! Super

Merci encore

Bonne fin de journée

Nonno

Bonjour Mafraise, encore moi!

Est-il possible? dans les 2 codes que tu m'as fournis le 17/10, d'ajouter une exclusion: exclure la colonne "X" de la feuille "Stock"

Cordialement

Nonno

Rechercher des sujets similaires à "modification code"