Macro sélective
Résolu
gigipong
Messages postés
124
Statut
Membre
-
gigipong Messages postés 124 Statut Membre -
gigipong Messages postés 124 Statut Membre -
Bonjour,
Un petit coup de main serait très gentil.
J'ai précédemment récupéré une macro sur ce site qui fonctionne très bien, mais je voudrais savoir si je peux l'assigner juste à 2 colonnes distinctes.
Voici la macro :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim text As String
text = Target.Value
Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text))
End Sub
En remerciant encore une fois OZONE pour son aide sur cette macro.
Je voudrais qu'elle ne concerne que les colonnes D et F d'un classeur.
Possible ou non ?
Cordialement
Un petit coup de main serait très gentil.
J'ai précédemment récupéré une macro sur ce site qui fonctionne très bien, mais je voudrais savoir si je peux l'assigner juste à 2 colonnes distinctes.
Voici la macro :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim text As String
text = Target.Value
Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text))
End Sub
En remerciant encore une fois OZONE pour son aide sur cette macro.
Je voudrais qu'elle ne concerne que les colonnes D et F d'un classeur.
Possible ou non ?
Cordialement
2 réponses
-
Bonjour,
comme cela
Private Sub Worksheet_Change(ByVal Target As Range) Dim text As String text = Target.Value If Target.Column <> 4 And Target.Column <> 6 Then Exit Sub Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text)) End Sub
-
Re,
Une autre façon de l'écrire
Private Sub Worksheet_Change(ByVal Target As Range) Dim text As String text = Target.Value If Not Application.Intersect(Target, Union(Range("D:D"), Range("F:F"))) Is Nothing Then Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text)) End If End Sub
ou encorePrivate Sub Worksheet_Change(ByVal Target As Range) Dim text As String text = Target.Value If Not Application.Intersect(Target, Union(Columns("D"), Columns("F"))) Is Nothing Then Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text)) End If End Sub
et si tu veux éviter le End If en fin de code et donc une ligne, il suffit d'ajouter un espace et le tiret du 8 après le Then _Private Sub Worksheet_Change(ByVal Target As Range) Dim text As String text = Target.Value If Not Application.Intersect(Target, Union(Columns("D"), Columns("F"))) Is Nothing Then _ Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text))
End Sub