Bonjour,
Je cherche à faire en sorte que dès qu'on entre une valeur dans une certaine plage, elle soit aussitôt remplacée par.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ="*" & +ActiveCell & "*"
Est-ce que c'est faisable ?
Bonjour,
Je cherche à faire en sorte que dès qu'on entre une valeur dans une certaine plage, elle soit aussitôt remplacée par.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ="*" & +ActiveCell & "*"
Est-ce que c'est faisable ?
bonjour,
tu dois pour cela mettre le code dans l'événement Worksheet_Change
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Worksheet_Change(ByVal Target As Range) ... target="*"+ target.value +"*" ... End Sub
Mais comment définir une plage d'action ? Je ne souhaite pas que cela fonctionne sur toute la feuille.
Il n'y a pas de "In" apparemment, mais certainement un équivalent...
tu peux faire comme cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_Change(ByVal Target As Range) Dim ISCT As Range Set ISCT = Intersect(Target, Range("A1:B2")) If Not ISCT Is Nothing Then target="*"+ target.value +"*" End If End Sub
bonjour
tu peux utiliser la methode intersect
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rg As Range Dim inter As Range Set rg = Range("D7,E12,G10,F6,F14,E17,G19,I15,J22,I26,J17,J8,H5,G3,B5,B14,C27,C22,A19,D18") Set inter = Intersect(Target, rg) If Not inter Is Nothing Then MsgBox "ok" End If End Sub
J'ai pris la solution de mayekeul et bizarrement j'obtiens un très grand nombre d'étoiles au lieu de seulement deux.
D'où cela peut-il venir ?
Chaque fois que tu ajoutes tes * tu relance l'évènement change.
Essaye comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 If Not ISCT Is Nothing Then If Left(Target.Value, 1) <> "*" Then Target.Value = "*" & Target.Value & "*" End If End If
Partager