Débogage excel

Résolu/Fermé
bibouden - 18 mai 2011 à 15:39
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 18 mai 2011 à 16:38
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 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
18 mai 2011 à 16:29
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 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
18 mai 2011 à 16:38
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