Remplacer texte par valeur cellule

YANOU

XLDnaute Junior
Bonjour à tous.
Je veux rechercher/remplacer "Dossier type" (dans les Cellules C3 à C6) par la valeur de ma cellule E3
Pour l'instant, j'en suis à :
Code:
Sub Rempacer()
'
' Rempacer Macro
'

'
    Range("C3:C6").Select
    Selection.Replace What:="Dossier type", Replacement:="2", LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
End Sub
Pour l'instant, j'ai juste mis "2" dans ma formule pour faire fonctionner ma macro correctement.
Je n'arrive pas à trouver le code pour cibler la valeur "2" de ma cellule E3.
Merci pour votre aide.
 

Pièces jointes

  • Classeur3.xlsm
    19 KB · Affichages: 40

Calvus

XLDnaute Barbatruc
Bonjour Yanou,

Peut être comme ceci ?

VB:
    Range("C3:C6").Select
    Selection.Replace What:="Dossier type", Replacement:=[E3].Value, LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True

A+
 

YANOU

XLDnaute Junior
J'ai tenté comme ceci, mais cela ne marche pas...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("E3")) Is Nothing Then

  Range("C3:C6").Select

  Selection.Replace What:="Dossier type", Replacement:=[E3].Value, LookAt:=xlPart _

  , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

  ReplaceFormat:=True

End Sub
 

Calvus

XLDnaute Barbatruc
Re,

A placer dans le code de la feuille.
On doit pouvoir faire pareil en validant mais je n'ai pas trouvé.
Il faut revenir sur la cellule pour déclencher la macro.
Donc, en attendant mieux...
VB:
Public val1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [E3]) Is Nothing And Target.Count = 1 Then Exit Sub
If Target.Address = [E3].Address Then Remplacer
'val2 = val1
End Sub
Sub Remplacer()
val2 = [E3].Value
If val1 <> val2 Then
Range("C3:C6").Select
    Selection.Replace What:="Dossier type", Replacement:=[E3].Value, LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
End If
val1 = [E3].Value
End Sub

A+
 

Calvus

XLDnaute Barbatruc
Re,

Voici le mieux, en attendant encore mieux..

A remplacer par ceci.

VB:
Public val1, val2

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [E3]) Is Nothing And Target.Count = 1 Then Exit Sub
val2 = [E3].Value
If val1 <> val2 Then Remplacer
End Sub
Sub Remplacer()
If val1 <> val2 Then
Range("C3:C6").Select
    Selection.Replace What:="Dossier type", Replacement:=[E3].Value, LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
End If
val1 = [E3].Value
End Sub

A+
 

YANOU

XLDnaute Junior
Bonjour à tous.
Merci Calvus pour votre aide.
Du coup, pour l'instant, la macro ne tourne qu'au premier changement de la cellule E3.
Si quelqu'un a un solution pour que la macro tourne à chaque changement.
Merci pour votre aide.
 

Pièces jointes

  • Classeur3.xlsm
    22 KB · Affichages: 37

YANOU

XLDnaute Junior
Re,
J'avais essayé de le faire uniquement par de la formule (Fichier joint).
En C5, si on modifie "Dossier type" par le numéro "15500" cela va bien chercher le contenu de la cellule du dossier 15500.
Par contre, dans la cellule D5, si j'essaie de remplacer "Dossier type" par le contenu de la cellule "E3", je me retrouve avec un libellé de formule identique à 100% avec la cellule C5, mais le lien ne se fait pas.
Qu'est ce qui cloche ?
Merci pour votre aide.
 

Pièces jointes

  • Classeur4.xlsm
    14.8 KB · Affichages: 47

YANOU

XLDnaute Junior
Bonjour Calvus et merci d'avoir passé du temps sur mon problème, cela fonctionne parfaitement.
Une dernière petite question cependant:
J'ai inséré votre macro sur un autre document (pièce-jointe) et l'enchainement des macros amène une erreur.
- Macro 1 => Choix cellule C1 => Onglet A ou B masqué
- Macro 2 => Choix cellule E20 ou E21 => Modification cellule F20
Pourriez-vous m'aider pour insérer votre macro correctement ?
Merci.
 

Pièces jointes

  • Yanou.xlsm
    28.1 KB · Affichages: 37

YANOU

XLDnaute Junior
Bonjour Dranreb.
La partie de texte à remplacer est incluse dans une formule avec chemin d'accès fichier et l'utilisation simple d'une formule ne fonctionne pas.
J'ai fait une tentative => poste 8 de cette discussion - Fichier "Classeur 4" en pièce-jointe.
Peut-être y'a t'il une solution, mais je ne la connais pas.
Merci.
 

YANOU

XLDnaute Junior
Bonjour Calvus.
Votre macro n'est pas dans mon dernier fichier joint.
J'ai tenté de l'insérer et de faire des modifications pour éviter un bug, mais je n'y suis pas parvenu.
Si vous pouvez m'aider pour que les 3 macros (les 2 miennes et la votre) puissent s'enchainer...
Merci pour votre aide.
 

Discussions similaires

Réponses
1
Affichages
117

Statistiques des forums

Discussions
312 147
Messages
2 085 767
Membres
102 968
dernier inscrit
Tmarti