Débogage excel

Résolu
bibouden -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,



dans mon fichier excel j'ai mis une macro evenementiel (clique droit sur l'onglet visualiser le code) pour pouvoir avoir la colonne 2 tout en majuscule ( lorsque l'on ecrit en miniscule)
la colonne 3 avec la premiere lettre en Majuscule et la 8 en majuscule ( voir ci dessous).

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 100))
End If

If Target.Column = 3 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 1)) & Right(Z, Len(Z) - 1)
End If

If Target.Column = 8 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 100))
End If


End Sub


Cela marche mais si apres validation de la cellule je m'aperçis que je me suis trompé dans l'orthographe et que j'appuie sur suppr pour modifier la cellule le débogage excel se met en route et après les fonctions ne sont plus fonctionnelle pour tout le fichier je suis obliger de fermer le fichier et de le reouvrir pour que cela refonctionne.Ai je oublier quelque chose ou que dois je faire ?

C'est un fichier que je dois faire remplir à une personne et je crains que mon tel ne cesse de sonner suite à ce pb

Merci beaucou
A voir également:

2 réponses

melanie1324 Messages postés 1561 Statut Membre 155
 
Bonjour,

Je pense qu'il faudrait rajouter ca :

Private Sub Worksheet_Change(ByVal Target As Range)

If target.value <> "" then


If Target.Column = 2 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 100))
End If

If Target.Column = 3 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 1)) & Right(Z, Len(Z) - 1)
End If

If Target.Column = 8 Then
Z = Target.Value
Target.Value = UCase(Left(Z, 100))
End If


end if

End Sub
1
ccm81 Messages postés 11033 Statut Membre 2 433
 
bonjour
en passant tu pourrais en profiter pour simplifier un peu le code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Z
If Target.Value <> "" Then
  Z = Target.Value
  Select Case Target.Column
    Case 2: Target.Value = UCase(Z)
    Case 3: Target.Value = UCase(Left(Z, 1)) & Right(Z, Len(Z) - 1)
    Case 8: Target.Value = UCase(Z)
  End Select
End If
End Sub


bonne suite
0