[Catégorie modifiée VB6 -> VBA] Macro Rechercher Remplacer + boutton

Signaler
Messages postés
6
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
22 avril 2011
-
Messages postés
6
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
22 avril 2011
-
Bonjour,

J'ai un fichier excel constitué de plusieurs onglet.
Dans chaque onglet, je veux utiliser la fonction remplacer pour remplacer les cellules qui contiennent les mots "nom" et "prénom" par le nom et prénom d'une personne.

J'ai récupéré ce script VB sur le forum qui fonctionne pour un onglet mais par pour plusieurs onglets.
Comment intégrer la recherche dans tout les onglets classeur ?

Sub Path()

Dim nom As String
Dim prenom As String

nom = InputBox("Nom", "Identification")
prenom = InputBox("Prenom", "Identification")

Cells.Replace What:="nom", Replacement:=nom, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="prenom", Replacement:=prenom, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

MsgBox ("Done")
End Sub

Au passage, je voudrais modifier le script pour ne pas avoir une boite de dialogue qui apparait pour entrer les nom et prénom. Je préfère taper le nom et le prénom dans 2 cellules et appliquer la fonction remplacer en cliquant sur le bouton.

Merci d'avance

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

En l'absence de précision, les instructions comme Cells s'appliquent à la feuille active.
Tu as juste à activer la feuille sur laquelle tu veux appliquer ton programme, genre
Sheets("ma feuille").Activate

Pour lister les feuilles, premier réflexe : la recherche.
Voir boucle For-Next et Sheets.Count, par exemple

Supprimer InputBox : c'est le b.a.ba
nom = Sheets("la feuille").Range("A1").Value

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
87
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
28 mai 2013
1
Salut,

un truc du genre...

Sub Path()

Dim nom As String
Dim prenom As String
Dim i As Integer


nom = Sheets("Feuil1").Range("E2").Value ' cellule où tu remplis le nom
prenom = Sheets("Feuil1").Range("E3").Value' cellule où tu remplis le nom
For i = 2 To Sheets.Count  'on commence à la deuxième feuille et on parcours
         Sheets(i).Cells.Replace What:="nom", Replacement:=nom, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
        Sheets(i).Cells.Replace What:="prenom", Replacement:=prenom, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Next

MsgBox ("Done")
End Sub



Mais attention dans prenom y'as nom, à toi d'adapter....

-----------------------------------------------------------------------------------------------------------
De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent.
Messages postés
6
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
22 avril 2011

Merci pour votre aide, ca marche !

Un dernier détail: je voudrais qu'en cliquant sur un autre boutton, ca me réinitialise mes onglets au cas ou je fais une erreur. Après utilisation de la macro on peut pas revenir en arrière et du coup je dois fermer excel.
Messages postés
6
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
22 avril 2011

Vous avez une idée ?