OVH Cloud OVH Cloud

Ne mettre que certain mots en majuscule

17 réponses
Avatar
Apitos
Bonjour =E0 tous,

J=92aimerais par une fonction, ne mettre le contenu d=92une cellule en maju=
scule, que certain mots et =E9viter certains d=92autres.

Par exemple, si j=92ai cette phrase :

boite =E0 conserve 115 g

Elle devient :

Boite =E0 Conserve 115 g

On peut remarquer que le a accentu=E9 "=E0" et la lettre g apr=E8s le chiff=
re 115, ne sont pas concern=E9s par la mise en majuscule.

Ca veut dire que l=92ensemble de lettres suivantes :

=E0, =E2, =E4, =E9, =E8, =EA, de, des, le, la, les, d=92, l=92 ...

et toute lettre apr=E8s un chiffre ne devra pas =EAtre mise en majuscule.

Merci d=92avance.

7 réponses

1 2
Avatar
Apitos
Bonsoir,

Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp )))



Mais pourquoi écrire cette ligne :

For Each C In Rg



Parce que Rg est toujours une seule cellule ? non ?
Avatar
MichD
| Mais pourquoi écrire cette ligne :

| > For Each C In Rg

**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?

MichD
---------------------------------------------------------------
Avatar
Apitos
Le dimanche 6 mai 2012 15:43:44 UTC+1, MichD a écrit :
| Mais pourquoi écrire cette ligne :

| > For Each C In Rg

**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?

MichD
---------------------------------------------------------------



Bonsoir,
Avatar
Apitos
Bonsoir,

**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?



Dans mons cas, la fonction/Procédure n'est appelée que pour mettre le c ontenu de la cellule active en majuscule, dans le Worksheet_Change.

Mais je souffre toujours de l'exécution de la fonction avec l'ancienne va leur de la cellule précédente !!!?
Avatar
MichD
| Mais je souffre toujours de l'exécution de la fonction avec l'ancienne valeur de la
cellule précédente !!!?

Je ne comprends pas ton propos.

MichD
---------------------------------------------------------------
Avatar
Apitos
Salut,

Si j'ouvre un nouveau classeur en gardant celui de cette fonction, et j'act ive ces macros, je verrais que la fonction commence à s’exécuter tout e seule sans que le nouveau classeur fait appel à cette fonction.

Elle fonctionne comme si elle se charge et s'exécute toute seule !
Avatar
MichD
| Elle fonctionne comme si elle se charge et s'exécute toute seule !

J'ai fait le test. Chez moi, la fonction s'exécute seulement et seulement s’il y a une
modification
d'une cellule de la colonne B:B de la feuille où l'action se déroule. Serait-ce que
Microsoft a
élaboré une version seulement pour toi? ;-)

As-tu réellement copié cette procédure dans le module de la feuille où l'action se
déroule?

Attention, si le classeur que tu ouvres en second vient modifier par macro une cellule de
la
plage "B:B" du classeur déjà ouvert, cela lancera la macro. À défaut de cela, la fonction
ne
devrait pas s'exécuter.

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp)))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
If C <> "" Then
C.Value = LesMajuscules(C)
End If
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------


MichD
---------------------------------------------------------------
1 2