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

fonction (proper-upper)

19 réponses
Avatar
andre
Bonjour,
Je reviens vers les specialistes
car j'ai vraiment besoin de savoir
j'ai une macro qui fonctionne ( nom propre - majuscule )
Sub Maj_Npropre()

For Each x In Range("C2:C1000")

x.Value = Application.Proper(x.Value)
Next
For Each x In Range("B2:B4100")

x.Value = UCase(x.Value)
Next
End Sub 'Le Pc rame un peu
je voudrais passer ses procedures dans le code des textbox respectifs
Private Sub nom_Change()
End Sub
Private Sub Prenom_Change()
End Sub etc.....
et la je galere un peu
il reconnait la fonction upper que j'utilise mais pas la proper
merci de votre coup de main car la boite d'aspirine est vide
et aussi: si j'ai une adresse ex: 23 ave de gen leclcerc
comment faire pour avoir les maj au debut des noms
merci

--
andre

10 réponses

1 2
Avatar
MichDenis
La fonction Proper() met la première lettre de chaque mot en majuscule
la fonction LCase() met toutes les lettres d'un mot en minuscule
la fonction UCase() met toutes les lettres d'un mot en majsucule

Lorsque tu utilises l'opérateur "=" , excel est sensible à la case
en conséquence :
" toto" n'égale pas "toTo" ou "Toto" ou "TOTO"

tu peux utiliser cependant :
LCase("TOTO" = "toto"
ou UCase("toto") = "TOTO"

Et si tu désires qu'excel ne soit pas sensible à la case lors de la comparaison,
tu dois déclarer dans le haut du module ceci :

Option Compare Text



"andre" a écrit dans le message de news:

Bonjour,
Je reviens vers les specialistes
car j'ai vraiment besoin de savoir
j'ai une macro qui fonctionne ( nom propre - majuscule )
Sub Maj_Npropre()

For Each x In Range("C2:C1000")

x.Value = Application.Proper(x.Value)
Next
For Each x In Range("B2:B4100")

x.Value = UCase(x.Value)
Next
End Sub 'Le Pc rame un peu
je voudrais passer ses procedures dans le code des textbox respectifs
Private Sub nom_Change()
End Sub
Private Sub Prenom_Change()
End Sub etc.....
et la je galere un peu
il reconnait la fonction upper que j'utilise mais pas la proper
merci de votre coup de main car la boite d'aspirine est vide
et aussi: si j'ai une adresse ex: 23 ave de gen leclcerc
comment faire pour avoir les maj au debut des noms
merci

--
andre
Avatar
andre
complement:

les textbox sont issus d'un userform voici le code
Private Sub valider_Click()
Application.ScreenUpdating = False

Sheets("toto").Select
[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Me.nom
ActiveCell.Offset(0, 1).Value = Me.Prenom
ActiveCell.Offset(0, 2).Value = Me.Adresse
ActiveCell.Offset(0, 3).Value = Me.Ville
ActiveCell.Offset(0, 6).Value = Me.Telephone
Range("H2:H1000").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
nom.Value = ""
Prenom.Value = ""
Adresse.Value = ""
Ville.Value = "xxxxxx"
Telephone.Value = ""
End Sub
peut on directement mettre du code dans cette procedure

--
andre
Avatar
andre
je suis d'accord mais la solution que je recherche
c'est que mes donnees qui sont saisies via un formulaire
s'inscrivent automatiquement avec la bonne casse
sans utiliser de macro

La fonction Proper() met la première lettre de chaque mot en majuscule
la fonction LCase() met toutes les lettres d'un mot en minuscule
la fonction UCase() met toutes les lettres d'un mot en majsucule

Lorsque tu utilises l'opérateur "=" , excel est sensible à la case
en conséquence :
" toto" n'égale pas "toTo" ou "Toto" ou "TOTO"

tu peux utiliser cependant :
LCase("TOTO" = "toto"
ou UCase("toto") = "TOTO"

Et si tu désires qu'excel ne soit pas sensible à la case lors de la
comparaison, tu dois déclarer dans le haut du module ceci :

Option Compare Text


--
andre

Avatar
MichDenis
| il reconnait la fonction upper que j'utilise mais pas la proper

Pour appeler la fonction "Proper" tu dois utiliser cette syntaxe
c'est une fonction de la feuille de calcul...

Application.WorksheetFunction.Proper()
Ou Application.Proper()

Ce qui précède ne s'applique pas à la fonction
UCase() ou LCase() car ces fonctionnent appartiennent
à la bibliothèque déjà chargé. Le nom de la bibliothèque
est VBA. Ceci tu peux le constater dans la fenêtre de
l'explorateur d'objets ... dans la liste déroulante affichant "Toutes les bibliothèques.
Ceci te permet dans ton code d'utiliser seulement les noms
des fonctions LCase() ou UCase() sans besoin explicite d'écrire
le nom de la bibliothèque auquel elles appartiennent.
VBA.LCase()
VBA.UCase()


"andre" a écrit dans le message de news:

Bonjour,
Je reviens vers les specialistes
car j'ai vraiment besoin de savoir
j'ai une macro qui fonctionne ( nom propre - majuscule )
Sub Maj_Npropre()

For Each x In Range("C2:C1000")

x.Value = Application.Proper(x.Value)
Next
For Each x In Range("B2:B4100")

x.Value = UCase(x.Value)
Next
End Sub 'Le Pc rame un peu
je voudrais passer ses procedures dans le code des textbox respectifs
Private Sub nom_Change()
End Sub
Private Sub Prenom_Change()
End Sub etc.....
et la je galere un peu
il reconnait la fonction upper que j'utilise mais pas la proper
merci de votre coup de main car la boite d'aspirine est vide
et aussi: si j'ai une adresse ex: 23 ave de gen leclcerc
comment faire pour avoir les maj au debut des noms
merci

--
andre
Avatar
andre
andre à dit
je seche pas moyen ca bug .....


il reconnait la fonction upper que j'utilise mais pas la proper


Pour appeler la fonction "Proper" tu dois utiliser cette syntaxe
c'est une fonction de la feuille de calcul...

Application.WorksheetFunction.Proper()
Ou Application.Proper()

Ce qui précède ne s'applique pas à la fonction
UCase() ou LCase() car ces fonctionnent appartiennent
à la bibliothèque déjà chargé. Le nom de la bibliothèque
est VBA. Ceci tu peux le constater dans la fenêtre de
l'explorateur d'objets ... dans la liste déroulante affichant "Toutes les
bibliothèques. Ceci te permet dans ton code d'utiliser seulement les noms
des fonctions LCase() ou UCase() sans besoin explicite d'écrire
le nom de la bibliothèque auquel elles appartiennent.
VBA.LCase()
VBA.UCase()

si je mets ce code dans le

Private Sub valider_Click()
Application.ScreenUpdating = False
Sheets("zaza").Select
[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Me.nom
Cells.Value = Application.WorksheetFunction.Proper(Cells.Value)

--
andre


Avatar
MichDenis
| Cells.Value = Application.WorksheetFunction.Proper(Cells.Value)

Cells représente la collection des cellules appartenant à une feuille de calcul

Si tu veux modifier le contenu d'une cellule, tu as au moins 2 syntaxes possibles:

Range("A1").value = Application.WorksheetFunction.Proper(Range("A1").value)
OU
Cells(1,1).value= Application.WorksheetFunction.Proper(Cells(1,1).value)

Tu vas devoir boucler sur chacune des cellules de ta plage de cellules si tu
en as plusieurs à modifier.


"andre" a écrit dans le message de news:

andre à dit
je seche pas moyen ca bug .....


il reconnait la fonction upper que j'utilise mais pas la proper


Pour appeler la fonction "Proper" tu dois utiliser cette syntaxe
c'est une fonction de la feuille de calcul...

Application.WorksheetFunction.Proper()
Ou Application.Proper()

Ce qui précède ne s'applique pas à la fonction
UCase() ou LCase() car ces fonctionnent appartiennent
à la bibliothèque déjà chargé. Le nom de la bibliothèque
est VBA. Ceci tu peux le constater dans la fenêtre de
l'explorateur d'objets ... dans la liste déroulante affichant "Toutes les
bibliothèques. Ceci te permet dans ton code d'utiliser seulement les noms
des fonctions LCase() ou UCase() sans besoin explicite d'écrire
le nom de la bibliothèque auquel elles appartiennent.
VBA.LCase()
VBA.UCase()

si je mets ce code dans le

Private Sub valider_Click()
Application.ScreenUpdating = False
Sheets("zaza").Select
[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Me.nom
Cells.Value = Application.WorksheetFunction.Proper(Cells.Value)

--
andre


Avatar
andre
andre à dit
ca marche pour le nom propre (PROPER) :-)
mais pas pour majuscule (UPPER) :-(
en plus le format telephone ne passe plus maintenant bizarre >:|

[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Me.nom
ActiveCell.Offset(0, 0).Value = Application.WorksheetFunction.Proper(ActiveCell.Offset(0, 0).Value)
ActiveCell.Offset(0, 1).Value = Me.Prenom
ActiveCell.Offset(0, 1).Value = Application.WorksheetFunction.UPPER(ActiveCell.Offset(0, 1).Value)
ActiveCell.Offset(0, 2).Value = Me.Adresse
ActiveCell.Offset(0, 3).Value = Me.Ville
ActiveCell.Offset(0, 6).Value = Me.Telephone
Range("H4:H450").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"

nom.Value = ""
Prenom.Value = ""
Adresse.Value = ""
Ville.Value = "xxxxxxx"
Telephone.Value = ""
End Sub

Private Sub Telephone_Change()
Telephone.Value = Format(Telephone.Value, "0#"" ""##"" ""##"" ""##"" ""##")
End Sub

--
andre
Avatar
Modeste
Bonsour® andre avec ferveur ;o))) vous nous disiez :

complement:

les textbox sont issus d'un userform voici le code

peut on directement mettre du code dans cette procedure


OUI....

Private Sub valider_Click()
Application.ScreenUpdating = False

Sheets("toto").Select
[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Ucase(Me.nom)
ActiveCell.Offset(0, 1).Value = Application.Proper(Me.Prenom)
ActiveCell.Offset(0, 2).Value = Application.Proper(Me.Adresse)
ActiveCell.Offset(0, 3).Value = Ucase(Me.Ville)
ActiveCell.Offset(0, 6).Value = Me.Telephone
Range("H2:H1000").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
nom.Value = ""
Prenom.Value = ""
Adresse.Value = ""
Ville.Value = "xxxxxx"
Telephone.Value = ""
End Sub
--
--
@+
;o)))

Avatar
andre
andre à dit
merci ca marche
les 2 codes

mais celui ci
ne fonctionne pas :
c'est le tag et le control tiptext
* champs obligatoires a remplir
pourtant j'ai renseigne le tag et le ctrltiptext

For Each Ctrl In Nouvel_Adherent.Controls
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "Obligatoire" And Ctrl.Text = "" Then
Ctrl.SetFocus
MsgBox "Vous devez obligatoirement remplir" & vbCr _
& "le champ <" & Ctrl.ControlTipText & "> ",
vbInformation
End If
End If
Next Ctrl

--
andre

Avatar
Modeste
Bonsour® andre avec ferveur ;o))) vous nous disiez :

andre à dit
ca marche pour le nom propre (PROPER) :-)
mais pas pour majuscule (UPPER) :-(
en plus le format telephone ne passe plus maintenant bizarre >:|

[A5000].End(xlUp).Offset(1, 1).Select
ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) + 1
ActiveCell.Offset(0, 0).Value = Me.nom
ActiveCell.Offset(0, 0).Value =
Application.WorksheetFunction.Proper(ActiveCell.Offset(0,
0).Value) ActiveCell.Offset(0, 1).Value = Me.Prenom
ActiveCell.Offset(0, 1).Value =
Application.WorksheetFunction.UPPER(ActiveCell.Offset(0,
1).Value) ActiveCell.Offset(0, 2).Value = Me.Adresse
ActiveCell.Offset(0, 3).Value = Me.Ville
'------un textBox renvoie un texte interprété par EXCEL en nombre dans une

cellule s'il n'y a pas d'espace----------
********************************************************
il faut choisir : soit on reste en nombre formatté, soit en reste en texte !!!!
********************************************************
' on suprimme les séparateur, " " on transforme en nombre que l'on formatte
correctement résultat TEXTE
ActiveCell.Offset(0, 6).Value =
Format(Cdbl(Application.Substitue(Me.Telephone," ",""),"0#"" ""##"" ""##""
""##"" ""##")
' en imbriquant d'autres Substitue on pourrait controler d'autres separateurs

. - / )
'---------ceci ne modifie que l'affichage -----------------------------
'ceci est un format de nombre
Range("H4:H450").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
********************************************************


nom.Value = ""
Prenom.Value = ""
Adresse.Value = ""
Ville.Value = "xxxxxxx"
Telephone.Value = ""
End Sub

********************************************************

il faut choisir soit on reste en nombre formatté, soit en reste en texte !!!!
********************************************************
Private Sub Telephone_Change()
'------------------------- ceci est un texte !!!!

Telephone.Value = Format(Telephone.Value, "0#"" ""##"" ""##"" ""##"" ""##")
End Sub


--
--
@+
;o)))

1 2