Remplacer un mot via VBA

Bonjour, à tous !!!

J'ai un userform avec un bouton pour remplacer un mot dans une feuille "BD" qui est invisible ( very hidden )

Je voudrais utiliser une InputBox, rapide à mettre en place pour ce genre d'exercice.

J'ai quelque chose qui fonctionne mais il faut que ma feuille soit visible.

Private Sub remplacer_mot_Click()

BD.Select  ' fonctionne si visible

'rechercher un mot dans toutes les feuilles du classeur et le remplacer par un autre
    Dim feuil As Worksheet
    Dim Mot As Variant
    Dim Replace As Variant

    Mot = InputBox("mot a remplacer ?", Title:="Mot à remplacer")
    Replace = InputBox("Par quel mot  ?", Title:="Remplacer le mot")
    If Mot = "" Then Exit Sub

    For Each feuil In ThisWorkbook.Worksheets
    feuil.Cells.Replace What:=Mot, Replacement:=Replace, LookAt:=xlPart
    Next

End Sub

Avez vous une solution pour garder ma feuille invisible ? et pour que le remplacement se fasse sur une colonne bien précise ?

Merci d'avance.

Bonjour,

pourquoi ne pas utiliser tout simplement sur ta colonne -> Ctrl+H ?

Bonsoir parce que la modification doit pouvoir être faite par l'utilisateur sans qu'il est accès à la feuille.

Bonsoir,

Travailler avec une feuille masquée, c'est l'occasion ou jamais de ne pas utiliser du tout de Select dans le code, et pour cause...

Et tu commences par un Select à la première ligne !!!!!!!

je pense la que sans un fichier d'exemple personne ne pourra t'aider,

car sa ma l'air compliquer de modifier quoi que ce soit sans avoir accès à la feuille

bonne soirée

car sa ma l'air compliquer de modifier quoi que ce soit sans avoir accès à la feuille

On n'a jamais besoin d'accéder à une feuille pour intervenir sur cette feuille ! Il suffit que VBA y accède... !!

oué .... bah sa c'est ton rayon

On se tue à expliquer que parsemer de Select ou Activate un programme VBA ne fait qu'introduire des opérations parasites qui consomment inutilement du temps !

L'aspect positif d'une feuille masquée est qu'on ne peut la sélectionner sans déclencher une erreur ! Parfait pour une démonstration sans Select !!

Bonjour, tous le monde

Le Select j'avais compris qu'il allé me sélectionner la feuille , comme son non l'indique mais quand je fais des essais je le met en commentaire .... d'où l’annotation ' fonctionne si visible

L'objet de ce post est comment modifié le code pour que l'action se fasse dans la feuille BD et sur une colonne bien précise via l'userform.

Je joint mon exemple , le but étant via l'userform de modifier "PRATIQUE" sur la colonne en jaune de la feuille BD seulement et sans modifier les autres.

Merci.

Bonjour,

Private Sub remplacer_mot_Click()
    Dim mot$, repl$, c As Range
    mot = InputBox("Quel mot voulez vous remplacer ?", "Mot à remplacer")
    repl = InputBox("Par quel mot voulez vous remplacer ?", Title:="Remplacer le mot")
    If mot = "" Then Exit Sub
    For Each c In Worksheets("BD").UsedRange
        If c.Interior.Color = vbYellow Then c.Value = replace(c, mot, repl)
    Next c
End Sub

Cordialement.

Bonjour, MFerrand alors toi lorsque j'irais sur ton rocher faudra que je te paye un resto !!!

Je viens de comprendre un truc là les férus de vba et excel prennent tout au pied de la lettre !!! et rien vous arrête

Quand je parlai de colonne jaune c’était pour dire colonne G ou 7eme colonne pour que visuellement vous la voyez ...pas parcequ'elle est en jaune

Bon alors le if c.interior.color faut lui dire juste colonne g ou 7eme OU je sais pas trop quoi.

Faut que je bosse sérieusement les types de données de la variable , mais je bouquine , je bouquine ...

Merci

Re , genre un truc comme ça

Private Sub remplacer_mot_Click()

    Dim Mot$, repl$, c As Range
    Mot = InputBox("Quel mot voulez vous remplacer ?", "Mot à remplacer")
   repl = InputBox("Par quel mot voulez vous remplacer ?", Title:="Remplacer le mot")
    If Mot = "" Then Exit Sub

     For Each c In Worksheets("BD").Range("G1:G65500")
     If c.Value <> "" Then
     c.Value = Replace(c, Mot, repl)
     End If
     Next c

    Unload Me

End Sub

Quand je parlai de colonne jaune c’était pour dire colonne G ou 7eme colonne pour que visuellement vous la voyez ...pas parcequ'elle est en jaune

Faut savoir ! La feuille est masquée ! Donc tu ne la vois pas ! Tu testes les critères demandés...

De toute façon l'objectif principal n'était pas là, il était de démontrer que l'on peut opérer sur la feuille sans jamais l'afficher, et donc sans jamais la sélectionner ou l'activer...

Pour la suite tu adaptes le code comme tu veux, selon tes besoins.

Cordialement.

Rechercher des sujets similaires à "remplacer mot via vba"