Test d'une macro sur Excel 2011

Publié : 28.09.2011 - 14h31 par thbodart

Bonjour à tous.

Est-ce que quelqu'un pourrait essayer les macros suivantes sur Excel 2011 et Lion et me donner les résultats.
Elles mettent en capitale les lettres des colonnes correspondantes.
Chez moi, la première fonctionne mais la deuxième fait crasher Excel.
Merci

Thierry
1 :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nom As String
Dim name As String
Dim deb As Integer
If IsEmpty(Target) Then Exit Sub

If (Target.Address = "$A$" & Target.Row) Then
Target = UCase(Target)
End If


End Sub

2 :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nom As String
Dim name As String
Dim deb As Integer
If IsEmpty(Target) Then Exit Sub

If (Target.Address = "$A$" & Target.Row) Then
Target = UCase(Target)
End If
If (Target.Address = "$C$" & Target.Row) Then
Target = UCase(Target)
End If

End Sub


Re: Test d'une macro sur Excel 2011

Publié : 29.09.2011 - 18h31 par thbodart

Sur MacBidouille une personne m'a répondu et fait modifier la macro.
La voici en entier, elle capitalise les lettres de certaines colonnes et Met la première lettre en majuscule dans d'autres.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim nom As String
Dim name As String
Dim deb As Integer

If IsEmpty(Target) Then Exit Sub

Select Case Target.Address
Case Is = "$A$" & Target.Row, "$C$" & Target.Row, "$E$" & Target.Row
Target = UCase(Target)
Case Is = "$B$" & Target.Row, "$D$" & Target.Row, "$F$" & Target.Row
name = "": deb = 1
mot = Trim(Target)
For n = 1 To Len(mot)
If Mid(mot, n, 1) = Chr(32) Then
nom = LCase(Mid(mot, deb, n - deb))
nom = UCase(Mid(nom, 1, 1)) & Mid(nom, 2)
name = name + " " + nom
deb = n + 1
End If
Next
nom = LCase(Mid(mot, deb, n - 1))
nom = UCase(Mid(nom, 1, 1)) & Mid(nom, 2)
name = name + " " + nom
Target = Trim(name)
End Select

End Sub