Mise en majuscule automatique après saisie

Bonjour,

Je suis en panne au sujet d'une macro qui me fait planter le fichier. Il s'agit de mettre en majuscule de façon automatique la saisie de données texte dans les cellules de deux colonnes.

Or pour la première colonne, pas de souci, pour la seconde, une fois que je tape qqch dedans, ça me met le message d'erreur suivant :

"Erreur d'exécution 2147417848 (80010108). La méthode 'Value' de l'objet 'Range' a échoué", et au débogage, ça s'arrête sur Target.Value = UCase(Target.Value), puis ensuite après le débogage la fenêtre "Mémoire insuffisante pour afficher en entier".

Voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("C5:C200,G5:G200")) Is Nothing Then

If Not IsEmpty(Target) Then

Target.Value = UCase(Target.Value)

End If

End If

End Sub

De plus, j'ai copié le code dans un classeur vierge, et aucun souci ça fonctionne.....

J'ai l'impression que ça ne vient pas de la macro mais d'autre chose dans le fichier, comme un historique ?

Un grand merci pour votre aide !!!

Bonjour

Modifies ta macro

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Range("C5:C200,G5:G200")) Is Nothing Then
    If Not IsEmpty(Target) Then
      Application.EnableEvents = False
      Target.Value = UCase(Target.Value)
      Application.EnableEvents = True
    End If
  End If
End Sub

un très grand merci, ça fonctionne nikel !!

Bonjour,

En complément de Banzai j'ai ajouté une ligne (If Target.Count > 1 Then End) car si on sélectionne une plage de plus d'une

cellule et qu'on veut effacer, ça plante.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then End
    If Not Application.Intersect(Target, Range("C5:C200,G5:G200")) Is Nothing Then
        If Not IsEmpty(Target) Then
            Application.EnableEvents = False
            Target.Value = UCase(Target.Value)
            Application.EnableEvents = True
        End If
    Else
    End If
End Sub

Merci beaucoup, je garde ta formule sous le coude mais pour moi ça ne plante pas dans l'état actuel.

bonne soirée !

RENAUDER a écrit :

Bonjour,

En complément de Banzai j'ai ajouté une ligne (If Target.Count > 1 Then End) car si on sélectionne une plage de plus d'une

cellule et qu'on veut effacer, ça plante.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then End
    If Not Application.Intersect(Target, Range("C5:C200,G5:G200")) Is Nothing Then
        If Not IsEmpty(Target) Then
            Application.EnableEvents = False
            Target.Value = UCase(Target.Value)
            Application.EnableEvents = True
        End If
    Else
    End If
End Sub

Bonsoir,

Désolé de déterrer ce post mais c'est le seul que j'ai trouvé qui se rapproche le plus de ce que je souhaite faire.

Il fonctionne parfaitement pour mettre automatiquement en MAJUSCULES tout le texte entré dans une cellule.

Par contre aujourd'hui je recherche comment faire pour n'avoir que la 1ère lettre de chaque mot (exemple: Jean ou Jean-Claude).

Je sais qu'il existe la formule NOMPROPRE mais je préfèrerais une modification automatique du texte saisi.

Merci pour votre aide.

Salut Guillaume,

La prochaine fois ouvre ton propre fil et fais référence au fil sur lequel tu as trouvé un début de solution d’une manière ou d’une autre (par exemple en y inscrivant le lien avec des balises URL au-dessus de la fenêtre).

Pour répondre à ta question, tu peux remplacer l’instruction Target.Value = UCase(Target.Value) par celle-ci : Target = WorksheetFunction.Proper(Target)

Mais bon, si ça fonctionne par exemple pour jean-claude galland qui deviendra Jean-Claude Galland, ça ne fonctionne malheureusement pas pour villars-sur-glâne qui deviendra Villars-Sur-Glâne au lieu de devenir Villars-sur-Glâne. Suivant tes besoins, il faudra trouver une autre macro.

Amicalement.

PS : J’attends ta réponse sur notre autre fil.

Exemple d'un lien vers un autre fil : https://forum.excel-pratique.com/excel/comment-conserver-filtre-dans-classeur-cree-par-macro-t88481.html

Rechercher des sujets similaires à "mise majuscule automatique saisie"