Bouton Excel "Remplacer Par"

Bonsoir,

Je souhaiterai créer un bouton dans un classeur Excel qui me permettrai de remplacer une valeur par une autre dans une colonne préalablement sélectionnée.

Par exemple, je sélectionne la colonne A puis, sur le bouton nous aurions deux champs : le 1er où on indiquerait la valeur que l'on souhaite remplacer et un 2ème champs où on indiquerait la valeur à remplacer. Avec un bouton "OK" pour appliquer le remplacement.

Ce qui donnerait un "remplacer par" une valeur X contre une valeur Y dans la colonne A.

Après des heures de recherches sur Google je n'ai pas trouvé et si quelqu'un pourrait m'envoyer ceci dans un fichier Excel pour que je puisse l'intégrer dans le mien ça serait super sympa !!!

Merci par avance !!!

Bonsoir

Cette fonction excel déjà sur Excel sans passer par VBA.

Dans le ruban Accueil, à droite Recherche-Remplacer, il exécute exactement ce que tu souhaites faire.

Sauf si j'ai pas tout compris .

Cordia5

Bonsoir,

Merci pour votre réponse rapide,

Je connais en effet déjà cette fonction mais je souhaite passer par ce bouton car dans cette colonne, des cellules sont protégées et le remplacer par dont vous faites référence ne fonctionne pas du coup car il me demande de déprotéger la feuille

Bonjour

Avec cette info effectivement, donc un fichier serait le bienvenu pour t'apporter une aide plus ciblée.

Cordia5

Bonjour Nico1300, CORDIA5,

je te propose ce code VBA, où tu remplaces "loup" par ton propre mot de passe (2×) :

Sub Essai()
  ActiveSheet.Unprotect "loup"
  SendKeys "^{h}", True
  ActiveSheet.Protect "loup"
End Sub

si tu as mis une protection simple sans mot de passe :

Sub Essai()
  ActiveSheet.Unprotect
  SendKeys "^{h}", True
  ActiveSheet.Protect
End Sub

dhany

Bonjour,

Ci-joint un screen de l'erreur lorsque je tente de faire un CTRL+F pour faire un "Remplacer par" sur une colonne alors que la feuille est protégée.

Et ci-joint un exemple de mon fichier, je souhaite remplacer la valeur "DATEDUJOUR" par "16112018" ou "17112018" selon la colonne avec l'aide d'un bouton qui ferait cette fonction.

Le fonctionnement serait : un bouton avec un 1er champs où l'on indiquerait la valeur "DATEDUJOUR" et un 2nd champs où l'on indiquerait la date du jour par exemple "16112018". Et sur la colonne sélectionnée, le bouton remplacerait alors "DATEDUJOUR" par "16112018" (par exemple)

PS : le mot de passe du fichier c'est " nico "

Merci encore pour toute votre aide !!

sanstitre
12classeur1.xlsx (11.98 Ko)

Bonjour,

Désolé mais je ne comprends rien à ce que tu souhaites

Dans ton image tu recherches "DATEDUJOUR" mais il n'y a aucune cellule qui contient ce texte donc impossible

de remplacer par autre chose.

Ensuite s'il n'y que la première ligne que tu souhaites modifier alors avant de mettre ton mot de passe

modifies le format cellule de la ligne 1 pour enlever la protection de la première ligne uniquement.

- Comme çà plus besoin par la suite d'enlever le mot de passe pour modifier la ligne 1

Par ailleur si les dates sont sur une ligne je me demande pourquoi la sélection de la colonne pour

" rechercher" et "remplacer"

Bonjour Xmenpl,

En mode non protégé, je sélectionne la colonne, je fais CTRL+F et là, dans le champs rechercher je mets "DATEDUJOUR" et dans le champs remplacer par je mets "16112018.xls" (par exemple )

Ce qui a pour but de remplacer dans la colonne sélectionnée les valeurs des cellules contenant "DATEDUJOUR" par des valeurs qui sont dans le fichier "16112018.xls"

En mode protégé, j'ai le message d'erreur qui apparaît dans le screen même si les cellules où je veux "remplacer par" sont déverrouillées.

Je ne pourrais pas l'expliquer autrement ou plus clairement

Mais oublions cette explication, ce que je souhaite c'est savoir si il est possible :

  • de sélectionner une colonne,
  • puis utiliser un bouton vba (je sais pas si c'est ça s'appelle comme ça ) qui aurait un champs qui se nommerait "Rechercher" et un champs qui se nommerait "Remplacer par" >> exactement comme la fonction de CTRL+F en fait . Ce qui aura pour but de remplacer la valeur indiquée dans le champs "Rechercher" par la valeur indiquée dans le champs "Remplacer par"

Le but de ce bouton vba aura donc pour but de faire exactement comme la fonction CTRL+F sauf que là je n'aurait pas de message d'erreur comme quoi la feuille est protégée car en mode protégé, je ne peux utiliser le mode CTRL+F (message d'erreur dans le screen) mais avec un bouton vba je n'aurais pas le message d'erreur.

@dhany,

J'ai vu ta réponse et merci beaucoup.

Alors oui j'avoue je n'y comprends rien je l'utilise comment ton code, je le colle où ?

Est-ce que tu peux l'envoyer sous format Excel que je puisse après l'adapter ?

MERCI ENCORE

Bonjour,

Désolé mais je ne comprends rien à ce que tu souhaites

Dans ton image tu recherches "DATEDUJOUR" mais il n'y a aucune cellule qui contient ce texte donc impossible

de remplacer par autre chose.

Ensuite s'il n'y que la première ligne que tu souhaites modifier alors avant de mettre ton mot de passe

modifies le format cellule de la ligne 1 pour enlever la protection de la première ligne uniquement.

- Comme çà plus besoin par la suite d'enlever le mot de passe pour modifier la ligne 1

Par ailleur si les dates sont sur une ligne je me demande pourquoi la sélection de la colonne pour

" rechercher" et "remplacer"

Oui oui dans les cellules regarde bien il y'a la valeur "DATEJOUR" à remplacer (j'ai joint le fichier Excel en exemple)

Bonjour Nico1300, CORDIA5,

je te propose ce code VBA, où tu remplaces "loup" par ton propre mot de passe (2×) :

Sub Essai()
  ActiveSheet.Unprotect "loup"
  SendKeys "^{h}", True
  ActiveSheet.Protect "loup"
End Sub

si tu as mis une protection simple sans mot de passe :

Sub Essai()
  ActiveSheet.Unprotect
  SendKeys "^{h}", True
  ActiveSheet.Protect
End Sub

dhany

@dhany,

J'ai vu ta réponse et merci beaucoup.

Alors oui j'avoue je n'y comprends rien je l'utilise comment ton code, je le colle où ?

Est-ce que tu peux l'envoyer sous format Excel que je puisse après l'adapter ?

MERCI ENCORE

Bonjour Nico1300, CORDIA5,

je te propose ce code VBA, où tu remplaces "loup" par ton propre mot de passe (2×) :

Sub Essai()
  ActiveSheet.Unprotect "loup"
  SendKeys "^{h}", True
  ActiveSheet.Protect "loup"
End Sub

si tu as mis une protection simple sans mot de passe :

Sub Essai()
  ActiveSheet.Unprotect
  SendKeys "^{h}", True
  ActiveSheet.Protect
End Sub

dhany

@dhany,

J'ai vu ta réponse et merci beaucoup.

Alors oui j'avoue je n'y comprends rien je l'utilise comment ton code, je le colle où ?

Est-ce que tu peux l'envoyer sous format Excel que je puisse après l'adapter ?

MERCI ENCORE

Re bonsoir,

J'ai trouvé ce fichier sur internet

Il y a un bouton remplacer, dès qu'on clique dessus il y a une boite de dialogue qui s'ouvre avec deux champs la valeur à rechercher et remplacer et la nouvelle valeur à mettre à la place.

Rechercher et remplacer une valeur "X" par une valeur "Y' et même si la feuille est protégée et les cellules sont verrouillées.

En fait je voudrais la même chose et qui permettrai de faire effet sur la colonne sélectionnée au préalable.

MErci encore !!

Bonjour Nicolas, le forum,

je te retourne ton fichier modifié :

22classeur1.xlsm (21.86 Ko)

la 1ère feuille est toujours protégée avec ton même mot de passe : "nico"

au départ, note que la cellule active est A12 ; ne change rien, et fais Ctrl h ➯ ton formulaire s'affiche, et tu peux voir qu'il n'y a pas de champ pour mettre la colonne ; ne t'inquiètes pas, c'est normal ! appuie sur la touche Echap pour sortir du formulaire ; alors pour indiquer la bonne colonne, il te suffit de sélectionner une cellule quelconque de cette colonne (c'est inutile de sélectionner la colonne entière !) ; exemple : va en C21, puis fais Ctrl h ➯ même formulaire ; dans le 1er champ, saisis "DATEDUJOUR" (sans les guillemets) ; appuie sur la touche Tab pour passer au champ suivant ; saisis ta date "16/11/2018" (sans guillemets) ; clique sur le bouton OK ➯ le remplacement a bien été effectué, pour toute la colonne (et cela sans planter, même si la feuille est protégée).

sur le 2ème champ, tu peux aussi faire Echap pour sortir du formulaire ; si le 1er champ est vide, ça fera rien car il faut obligatoirement indiquer ce qu'il faut remplacer ; le 2ème champ non plus ne peut pas être vide, donc tu ne peux pas remplacer quelque chose par rien ; j'ai fait ce choix, mais si tu préfères avoir la possibilité de remplacer un texte par rien, c'est très facile à arranger.

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Bonjour Nicolas, le forum,

je te retourne ton fichier modifié :

Classeur1.xlsm

la 1ère feuille est toujours protégée avec ton même mot de passe : "nico"

au départ, note que la cellule active est A12 ; ne change rien, et fais Ctrl h ➯ ton formulaire s'affiche, et tu peux voir qu'il n'y a pas de champ pour mettre la colonne ; ne t'inquiètes pas, c'est normal ! appuie sur la touche Echap pour sortir du formulaire ; alors pour indiquer la bonne colonne, il te suffit de sélectionner une cellule quelconque de cette colonne (c'est inutile de sélectionner la colonne entière !) ; exemple : va en C21, puis fais Ctrl h ➯ même formulaire ; dans le 1er champ, saisis "DATEDUJOUR" (sans les guillemets) ; appuie sur la touche Tab pour passer au champ suivant ; saisis ta date "16/11/2018" (sans guillemets) ; clique sur le bouton OK ➯ le remplacement a bien été effectué, pour toute la colonne (et cela sans planter, même si la feuille est protégée).

sur le 2ème champ, tu peux aussi faire Echap pour sortir du formulaire ; si le 1er champ est vide, ça fera rien car il faut obligatoirement indiquer ce qu'il faut remplacer ; le 2ème champ non plus ne peut pas être vide, donc tu ne peux pas remplacer quelque chose par rien ; j'ai fait ce choix, mais si tu préfères avoir la possibilité de remplacer un texte par rien, c'est très facile à arranger.

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Bonjour dhany !!

Tu es magnifique c'est exactement ce que je voulais !!!!

Est-ce que c'est possible avec exactement le même truc, de pouvoir remplacer une valeur X contenu dans une formule ? (en fait les cellules ne vont pas contenir que "DATEDUJOUR") par exemple :

Voici la formule :

=SIERREUR(RECHERCHEV($A$41;'C:\[JOUR.xlsx]Feuil1'!$A$1:$BE$62;23;FAUX);"")

Je souhaiterai que si dans le champs Recherche, je mets "JOUR" (sans les guillemets) et dans Remplacer je mets "17112018", il me remplace le mot "JOUR" contenu dans la formule par 17112018

Encore un grand MERCI !!!!

Bonsoir Nicolas,

j'te réponds avec retard car j'étais pas disponible.

voici ta nouvelle version :

16classeur1.xlsm (22.15 Ko)

* la cellule active est C12 ; Ctrl h ➯ formulaire

* champ 1 : tape : "datedujour" (en minuscules)

* champ 2 : tape : "17112018"

* clic sur bouton OK ➯ remplacement effectué pour toute la colonne C

y compris dans les formules de cette colonne, donc en C2 et C3

[size=80]les minuscules du texte saisi en champ 1, c'était pour te montrer qu'c'est indépendant d'la casse

➯ tu peux saisir ton texte en majuscules ou en minuscules (au choix).[/size]

dhany

Bonsoir Nicolas,

j'te réponds avec retard car j'étais pas disponible.

voici ta nouvelle version :

Classeur1.xlsm

* la cellule active est C12 ; Ctrl h ➯ formulaire

* champ 1 : tape : "datedujour" (en minuscules)

* champ 2 : tape : "17112018"

* clic sur bouton OK ➯ remplacement effectué pour toute la colonne C

y compris dans les formules de cette colonne, donc en C2 et C3

[size=80]les minuscules du texte saisi en champ 1, c'était pour te montrer qu'c'est indépendant d'la casse

➯ tu peux saisir ton texte en majuscules ou en minuscules (au choix).[/size]

dhany

Aller et ben c'est impeccable et y'a pas de retard tu as été très rapide et super efficace !!

MERCI GRANDEMENT !!!

merci pour ton retour, et pour le !

merci aussi d'avoir passé le sujet en résolu !

bonne continuation !

dhany

Rechercher des sujets similaires à "bouton remplacer"