Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Convertir automatiquement une saisie en format type "Nompropre" et "ancrer" à chaque cellule son message de validation

3 réponses
Avatar
Bruno65
Bonsoir à tous,

je cherche à uniformiser et simplifier pour une compétition la saisie de
données dans une feuille : date de naissance, sexe, Nom, Prénom, etc..
Prof d'EPS, je ne connais rien au VBA, et quasiment tous mes collègues
sont utilisateurs (très!!!)basiques d'excel, mais j'ai trouvé sur le
site "01net.com" le listing suivant, qui convertit automatiquement en
majuscules les données des colonnes "sexe" et "Nom" :


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C4:D104")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
End Sub

je voudrais savoir comment de la même manière (soit intégré à celui-ci,
soit par un autre listing) convertir automatiquement une saisie en
format "nompropre" (minuscules avec initiale majuscule)sur la plage E4:
E104;

question annexe : j'ai deux feuilles identiques dans mon fichier de
travail. Dans les deux j'ai des messages de validation des saisies, mais
dans l'une, tous les messages des différentes colonnes s'affichent
toujours au même endroit, alors que dans l'autre, que j'ai fabriquée il
y a quelques temps, chaque message semble "ancré" (comme les images dans
Word) en-dessous de la cellule sélectionnée, et ne masque donc jamais
cette cellule. Je ne me rappelle pas comment j'avais obtenu ce résultat...
Quelqu'un aurait-il la solution?

Je vous remercie par avance de votre aide,
Cordialement,

Bruno

3 réponses

Avatar
isabelle
bonjour Bruno,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4:D104")) Is Nothing Then
Target.Value = UCase(CStr(Target.Value))
Else:
If Not Intersect(Target, Range("E4:E104")) Is Nothing Then
Target.Value = Application.Proper(CStr(Target.Value))
End If
End If
End Sub


isabelle


Bonsoir à tous,

je cherche à uniformiser et simplifier pour une compétition la saisie de
données dans une feuille : date de naissance, sexe, Nom, Prénom, etc..
Prof d'EPS, je ne connais rien au VBA, et quasiment tous mes collègues
sont utilisateurs (très!!!)basiques d'excel, mais j'ai trouvé sur le
site "01net.com" le listing suivant, qui convertit automatiquement en
majuscules les données des colonnes "sexe" et "Nom" :


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C4:D104")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
End Sub

je voudrais savoir comment de la même manière (soit intégré à celui-ci,
soit par un autre listing) convertir automatiquement une saisie en
format "nompropre" (minuscules avec initiale majuscule)sur la plage E4:
E104;

question annexe : j'ai deux feuilles identiques dans mon fichier de
travail. Dans les deux j'ai des messages de validation des saisies, mais
dans l'une, tous les messages des différentes colonnes s'affichent
toujours au même endroit, alors que dans l'autre, que j'ai fabriquée il
y a quelques temps, chaque message semble "ancré" (comme les images dans
Word) en-dessous de la cellule sélectionnée, et ne masque donc jamais
cette cellule. Je ne me rappelle pas comment j'avais obtenu ce résultat...
Quelqu'un aurait-il la solution?

Je vous remercie par avance de votre aide,
Cordialement,

Bruno



Avatar
Bruno65
Bonjour Isabelle,

merci infiniment pour cette réponse aussi rapide qu'efficace...
Je ne comprends toujours rien au VBA, mais ça marche !
C'est vraiment "top" de pouvoir trouver une aide auprès de personnes
compétentes en aussi peu de temps !

Pour ma question annexe, je ne sais pas pourquoi là non plus, mais
maintenant, mes messages suivent bien le déplacement de case active en
case active... peut-être un petit bug qui se règle à l'enregistrement ?

Merci encore pour ton aide précieuse et bon week-end,

Bruno

bonjour Bruno,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4:D104")) Is Nothing Then
Target.Value = UCase(CStr(Target.Value))
Else:
If Not Intersect(Target, Range("E4:E104")) Is Nothing Then
Target.Value = Application.Proper(CStr(Target.Value))
End If
End If
End Sub


isabelle


Bonsoir à tous,

je cherche à uniformiser et simplifier pour une compétition la saisie
de données dans une feuille : date de naissance, sexe, Nom, Prénom, etc..
Prof d'EPS, je ne connais rien au VBA, et quasiment tous mes collègues
sont utilisateurs (très!!!)basiques d'excel, mais j'ai trouvé sur le
site "01net.com" le listing suivant, qui convertit automatiquement en
majuscules les données des colonnes "sexe" et "Nom" :


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C4:D104")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
End Sub

je voudrais savoir comment de la même manière (soit intégré à
celui-ci, soit par un autre listing) convertir automatiquement une
saisie en format "nompropre" (minuscules avec initiale majuscule)sur
la plage E4: E104;

question annexe : j'ai deux feuilles identiques dans mon fichier de
travail. Dans les deux j'ai des messages de validation des saisies,
mais dans l'une, tous les messages des différentes colonnes
s'affichent toujours au même endroit, alors que dans l'autre, que j'ai
fabriquée il y a quelques temps, chaque message semble "ancré" (comme
les images dans Word) en-dessous de la cellule sélectionnée, et ne
masque donc jamais cette cellule. Je ne me rappelle pas comment
j'avais obtenu ce résultat...
Quelqu'un aurait-il la solution?

Je vous remercie par avance de votre aide,
Cordialement,

Bruno





Avatar
Bruno65
Bonjour Isabelle,

merci infiniment pour cette réponse aussi rapide qu'efficace...
Je ne comprends toujours rien au VBA, mais ça marche !
C'est vraiment "top" de pouvoir trouver une aide auprès de personnes
compétentes en aussi peu de temps !

Pour ma question annexe, je ne sais pas pourquoi là non plus, mais
maintenant, mes messages suivent bien le déplacement de case active en
case active... peut-être un petit bug qui se règle à l'enregistrement ?

Merci encore pour ton aide précieuse et bon week-end,

Bruno

bonjour Bruno,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4:D104")) Is Nothing Then
Target.Value = UCase(CStr(Target.Value))
Else:
If Not Intersect(Target, Range("E4:E104")) Is Nothing Then
Target.Value = Application.Proper(CStr(Target.Value))
End If
End If
End Sub


isabelle


Bonsoir à tous,

je cherche à uniformiser et simplifier pour une compétition la saisie
de données dans une feuille : date de naissance, sexe, Nom, Prénom, etc..
Prof d'EPS, je ne connais rien au VBA, et quasiment tous mes collègues
sont utilisateurs (très!!!)basiques d'excel, mais j'ai trouvé sur le
site "01net.com" le listing suivant, qui convertit automatiquement en
majuscules les données des colonnes "sexe" et "Nom" :


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C4:D104")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
End Sub

je voudrais savoir comment de la même manière (soit intégré à
celui-ci, soit par un autre listing) convertir automatiquement une
saisie en format "nompropre" (minuscules avec initiale majuscule)sur
la plage E4: E104;

question annexe : j'ai deux feuilles identiques dans mon fichier de
travail. Dans les deux j'ai des messages de validation des saisies,
mais dans l'une, tous les messages des différentes colonnes
s'affichent toujours au même endroit, alors que dans l'autre, que j'ai
fabriquée il y a quelques temps, chaque message semble "ancré" (comme
les images dans Word) en-dessous de la cellule sélectionnée, et ne
masque donc jamais cette cellule. Je ne me rappelle pas comment
j'avais obtenu ce résultat...
Quelqu'un aurait-il la solution?

Je vous remercie par avance de votre aide,
Cordialement,

Bruno