remplacer une mention sur une certaine plage de cellule de toutes les feuilles num

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

superbog

XLDnaute Occasionnel
Bonsoir à vous,

J'ai un classeur avec de nombreuses feuilles dont beaucoup porte un nom numérique (1428,1429,2486...) et d'autres un nom alphabétique (clients, VR...)

J'ai besoin dans toutes les feuilles numériques dans les cellules H6:H900 de remplacer les mentions "EP" et "CL" par la mention "C2"

J'ai donc fait la macro ci dessous mais elle ne fonctionne pas, sauf sur la première feuille, pourriez vous m'aider?


Code:
Sub remplaceCOLLAB()

Dim ws As Worksheet

 On Error Resume Next
 
With ThisWorkbook
    For Each ws In .Worksheets
        If IsNumeric(ws.Name) Then
            Range("H6:H900").Select
            Selection.Replace What:="EP", Replacement:="C2", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
            Range("H6:H900").Select
            Selection.Replace What:="CL", Replacement:="C2", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        End If
Next

End With

MsgBox "opération effectuée"

End Sub

merci d'avance
 
Re : remplacer une mention sur une certaine plage de cellule de toutes les feuilles n

Bonjour

Dans la boucle If IsNumeric(ws.Name).... tous les Range s'adressent à la feuille courante. donc pour chaque feuille "numérique" on va exécuter le code toujours sur la même plage!

La solution: référencer les Range à la feuille "balayée" par la boucle :

If IsNumeric(ws.Name) Then
ws.Range("H6:H900").Select
.........

End If


par ailleurs, a priori, pas besoin de sélectionner deux fois la même plage. Le premier ws.Range("H6:H900").Select devrait suffire

A+
 
Re : remplacer une mention sur une certaine plage de cellule de toutes les feuilles n

salut

d'accord avec Paf 😉.
Un autre exemple de code
Code:
Sub remplaceCOLLAB()
  Dim ws As Worksheet
  For Each ws In Sheets
    If IsNumeric(ws.Name) Then
       With ws.Range("H6:H900")
         .Replace "EP", "C2"
         .Replace "CL", "C2"
       End With
    End If
  Next
  MsgBox "opération traitée"
End Sub

à noter que le message apparaît même si aucune cellule n'a été transformée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
277
Réponses
2
Affichages
461
Réponses
3
Affichages
543
Retour