Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
VBA pour une nulle : quand je clique, je veux un R...
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Re : VBA pour une nulle : quand je clique, je veux un R...
bonjour Soya
A mettre dans le module de la feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("H4:H50"))
If Not isect Is Nothing Then
Target.Value = "R"
End If
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
Bonjour SOYA, suistrop, le forum
EDITION: pour varier
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = _
IIf(Not Intersect(Target, Range("H4:H50")) Is Nothing, "R", vbNullString)
End Sub
A mettre dans le code de la feuille
(Clic-droit --> [Visualiser le code])
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H4:H50")) Is Nothing Then
Target = "R"
End If
End Sub
Houps: désolé pas rafraichi assez vite
bonjour pierrejan, ballmaster
Re : VBA pour une nulle : quand je clique, je veux un R...
Stapple1600,
une utilisation d'un Iif. Voilà qui est intéressant. Si peu de personnes l'utilisent qu'on aurait tendance à presque l'oublier (pour ma part en tout cas).
Re : VBA pour une nulle : quand je clique, je veux un R...
Allez un peu plus loin...........
Je tente d'allez un peu plus loin mais ca bloque.
Quand on sélectionne une cellule qui fait parti d'une plage determinée, on affiche R. Jusque là ok.
Mais si on selectionne à nouveau une cellule de la plage qui a déja un R, je veux que soit affiché un S (par exemple) etc.........
J'ai tenté une instruction select case mais j'ai du rater qque chose.
Autant le code initial (affichage R) fonctionne, autant avec le select case j'ai un message d'erreur (end if sans bloc if alors que je n'ai pas de end if??????).
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Range("a1:d16"), Target) Is Nothing _
Then Exit Sub _
Else Select Case Target.Value
Case "": Target.Value = "R"
Case "R": Target.Value = "S"
Case "S": Target.Value = "T"
Case Else: Target.Value = ""
End Select
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
re
A tester
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Range("a1:d16"), Target) Is Nothing Then
Exit Sub
Else
Select Case Target.Value
Case "": Target.Value = "R"
Case "R": Target.Value = "S"
Case "S": Target.Value = "T"
Case Else: Target.Value = ""
End Select
End if
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
Re
J'avais oublié un petit détail
(Target à la place de vbNullstring)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = _
IIf(Not Intersect(Target, Range("H4:H50")) Is Nothing, "R", Target)
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
Merci à vous deux,
Pierrejean, tu avais raison. A vouloir rendre plus digeste mon code avec des _, cela a été catastrophique.
Ce qui me rassure, c'est que mon code était correct (ouais enfin pas vraiment puisque ca marchait pas😀)
Autre question, et la c'est sur je sais pas faire.
Le changement impose de cliquer sur une cellule puis d'en sortir et la reselectionner pour que cela fonctionne.
Si on veut faire le même procédé mais que ce soit avec le clic de souris.
Comment faire ?
Je voulais le faire avec l'évènement beforerightclick. Ca marche bien mais cela donne le menu contextuel à chaque fois après. Il faudrait le désactiver ou mieux que ce soit le clic gauche.(mais le double clic).
Merci
Edit : J'ai trouvé pour désactiver le menu contextuel du clic droit. (cancel=true).
Re : VBA pour une nulle : quand je clique, je veux un R...
Salut tout le monde
Une autre approche sur le double clic:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim C
If Not Application.Intersect(Target, Range("A1: D16")) Is Nothing Then
Cancel = True
C = Target.Value
Target.Value = Switch(C = "", "R", C = "R", "S", C = "S", "T", C = "T", "")
End If
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
Bonsoir ya_v_ka
Bravo pour le Switch (et merci)
Je n'arrivais pas à me dépatouiller avec.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' ;-) ya_v_ka
Dim C
C = Target.Value
Target.Value = _
IIf(Not Intersect(Target, _
Range("A1:A5")) Is Nothing, _
Switch(C = "", "R", C = "R", "S", C = "S", "T", C = "T", ""), _
Target)
End Sub
Re : VBA pour une nulle : quand je clique, je veux un R...
Re tous
De rien, c'est un truc que je tiens de MdF... mais j'ai donné sans tester !!!!
Maintenant combiné avec le iif... pas mal.
Le grand avantage du switch se trouve dans sa 'légereté' pour de grands choix dans le même ordre... ou pour des séries spéciales, style tennis (0-15-30-40-A)...
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD