VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Steph74

XLDnaute Nouveau
Bonsoir à tous, je vous expose mon souci,

J'aimerai faire un champ en haut de ma feuille excel, où dès que je le remplirais, le contenu renseigné remplacerait automatiquement une variable commune à toutes mes formules de la feuille.

Par exemple toutes mes cellules contiennent le terme "Albert:24", si je renseigne en haut dans le champ que je voudrait créer : "Stephane:32",
tous les "Albert:24" seraient remplacés par des "Stephane:32"

C'est bien une sorte de Ctrl+H mais plus évolué qu'il me faudrait.
(Je précisie que je suis novice en VBA :))

Merci d'avance pour votre aide.
 

Yaloo

XLDnaute Barbatruc
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Bonsoir Steph74, le forum,

Voici un fichier qui devrait répondre à ta demande.

Pour voir la macro, lorsque tu es sur le fichier tu fais Alt+F11

A te relire

Martial
 

Pièces jointes

  • Steph.xls
    36.5 KB · Affichages: 43
  • Steph.xls
    36.5 KB · Affichages: 41
  • Steph.xls
    36.5 KB · Affichages: 46

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Boujour et merci Martial,

Le souci c'est que lorsque j'ouvre le fichier après avoir activé les macros et que j'essaie de la lancer J'ai une erreur qui me dis "Erreur de Compilation: Argument nommé introuvable"

Y a t-il une marche à suivre ou quelque chose à changer ? (screen sur le lien ci dessous)

Capture d'ecran

Merci ;)
 

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Alors alors, quelques éléments de réponses. Il semblerait que les arguments SearchFormat et ReplaceFormat ne fonctionnent pas sous Mac (source : Error code “Named Argument Not Found")

J'ai donc supprimé ces 2 arguments et cela a fonctionné, merci beaucoup Martial ;)
Cependant je ne peux m'empêcher de penser si le fait d'enlever ces 2 arguments comporte un risque quelque part qu'en pensez vous ?
 

Yaloo

XLDnaute Barbatruc
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Re,

Je ne pense pas que cela joue sur tes remplacements, ces arguments sont facultatif et comme ils étaient sur False, cela n'a pas d'importance si tu les supprimes.

A+
 

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Eh bien je pensais être pret à sauter dans le grand bain seul mais il semblerait que j'ai encore besoin qu'on me ramène au bord...:(

La macro marche parfaitement seulement elle modifie tout le classeur. Comment modifier le VBA pour que cela ne modifie par exemple que B9, B12, C24 e D20 ?

rappel du VBA :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim nouveau As String, c As Worksheet
Application.EnableEvents = False
If Target.Address = "$A$1" Then
nouveau = InputBox("Remplacer quoi ... ?")
For Each c In Worksheets
c.Cells.Replace What:=nouveau, Replacement:=Target.Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End If
Application.EnableEvents = True
End Sub
 

Yaloo

XLDnaute Barbatruc
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Re,

S'il ne s'agit que de quelques cellules, tu peux plutôt utiliser la macro ci-dessous.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
If Target.Address = "$A$1" Then
Range("B9,B12,C24,D20").Select
For Each c In Selection
c.Value = Target.Value
Next
[A1].Select
End If
Application.EnableEvents = True
End Sub

A+
 

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Oula alors autant avec l'ancien code je faisais ma modif et un champ s'ouvrait pour me demander par quoi je voulais remplacer mon contenu (donc pas eu de macro à créer). Autant avec ce nouveau code il ne se passe rien.
Je me perd et je ne vois pas comment la faire tourner ?

Pourrais tu me donner la marche à suivre Martial ? :)
 

Yaloo

XLDnaute Barbatruc
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Re,

En premier tu demande
Par exemple toutes mes cellules contiennent le terme "Albert:24", si je renseigne en haut dans le champ que je voudrait créer : "Stephane:32",
tous les "Albert:24" seraient remplacés par des "Stephane:32"
Ce qui est fait par la macro du post#2

Ci-dessous tu demande
La macro marche parfaitement seulement elle modifie tout le classeur. Comment modifier le VBA pour que cela ne modifie par exemple que B9, B12, C24 e D20 ?
Ce qui est fait par la macro du post#10.

Celle-ci remplace les dites cellules (B9, B12, C24 e D20) par le contenu de A1.

J'ai dû mal comprendre. Pourrais-tu m'expliquer mieux ou, encore mieux, me joindre un fichier exemple, avec ce que tu as au départ et ce que tu souhaite à l'arrivée ?

A te relire

Martial
 

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Bonjour Martial, désolé je n'étais pas disponible hier soir mais je t'ai quand même préparé un exemple simplifié de ce que j'aimerai obtenir grâce à la macro :

le fichier : test_Macro-steph74.xlsx

J'aimerais remplir les parties en italique en haut à gauche "champ à remplir" et qu'une fois remplies cela change automatiquement les contenus dans les cellules en-tetes de colonnes : E5,H5,K5,N5,E16,H16 l'ID

ex : si je met steph74 dans le champ à remplir en face de modification ID tous les "Jean423"deviennent des "steph74"

Espérant avoir était clair :)
 

Pièces jointes

  • test_Macro-steph74.xlsx
    30.7 KB · Affichages: 30

Steph74

XLDnaute Nouveau
Re : VBA : Créer un champ qui ferait fonction de "Ctrl+H" sur la feuille de classeur

Le problème avec cette solution c'est que je réutilise les cellules en-tete (E5, E16...) et que leurs contenus n'est plus éditorial mais une formule, ce qui rend impossible sa réutilisation.
C'est pour cette raison que je m'étais orienté vers la macro :/
 

Statistiques des forums

Discussions
312 169
Messages
2 085 910
Membres
103 033
dernier inscrit
thazet