Macro Excel majuscule
Résolu
Evedll
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
En utilisant cette macro qui me permet de mettre en majuscule (ou seulement la première lettre en majuscule) je constate un disfonctionnement.
J'aimerai mettre en majuscule les valeurs des cellules B3, et I8:I11. Seulement, les données des cellules I8 à I11 sont remplacées par les valeurs de la cellule B3.
Cela marchait bien en utilisant seulement l'adresse B3 mais quand j'ai voulu modifier pour adapter aux autres adresses, cela ne marche plus.
Etant donné que je n'ai que très peu de connaissances en macro, je récupère des lignes afin de mieux les comprendre et je les adapte ensuite pour les utiliser. Peut-être ai-je mal interpreté celle ci ?
Si quelqu'un veut bien avoir l'amabilité de m'aider et surtout de m'expliquer mon erreur.
Je vous remercie d'avance
Range("B3,I8,I9,I10,I11").Select
Dim caracmaj As String
caracmaj = Selection.Value
caracmaj = UCase(caracmaj) 'UCase pour majuscule et LCase pour minuscule
Selection.Value = caracmaj
Range("B4,J8,J9,J10,J11").Select
Dim CaracNomPropre As String
CaracNomPropre = Selection.Value
CaracNomPropre = Application.Proper(CaracNomPropre)
Selection.Value = CaracNomPropre
Evelyne
En utilisant cette macro qui me permet de mettre en majuscule (ou seulement la première lettre en majuscule) je constate un disfonctionnement.
J'aimerai mettre en majuscule les valeurs des cellules B3, et I8:I11. Seulement, les données des cellules I8 à I11 sont remplacées par les valeurs de la cellule B3.
Cela marchait bien en utilisant seulement l'adresse B3 mais quand j'ai voulu modifier pour adapter aux autres adresses, cela ne marche plus.
Etant donné que je n'ai que très peu de connaissances en macro, je récupère des lignes afin de mieux les comprendre et je les adapte ensuite pour les utiliser. Peut-être ai-je mal interpreté celle ci ?
Si quelqu'un veut bien avoir l'amabilité de m'aider et surtout de m'expliquer mon erreur.
Je vous remercie d'avance
Range("B3,I8,I9,I10,I11").Select
Dim caracmaj As String
caracmaj = Selection.Value
caracmaj = UCase(caracmaj) 'UCase pour majuscule et LCase pour minuscule
Selection.Value = caracmaj
Range("B4,J8,J9,J10,J11").Select
Dim CaracNomPropre As String
CaracNomPropre = Selection.Value
CaracNomPropre = Application.Proper(CaracNomPropre)
Selection.Value = CaracNomPropre
Evelyne
A voir également:
- Macro Excel majuscule
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- É majuscule - Guide
- Déplacer colonne excel - Guide
3 réponses
Salut le forum
Une façon de faire
Mytå
Edition : Suppression du deuxième code non opérationnel
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)]
Une façon de faire
Sub Cell_Maj() Dim MaPlage As Range Dim Cellule As Range Set MaPlage = Range("B3,I8:I11") For Each Cellule In MaPlage Cellule = LCase(Cellule) Next Cellule Set MaPlage = Nothing End Sub
Mytå
Edition : Suppression du deuxième code non opérationnel
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)]
Bonjour,
Lorsque tu écris caracmaj = UCase(caracmaj) qui est équivalent à
caracmaj = UCase(Range("B3,I8,I9,I10,I11"))
UCase() ne prend en compte que la 1ère valeur de ta plage et la reproduit partout.
Il faut que tu boucles sur toutes les cellules de ta plage avec par exemple :
eric
edit: on s'est croisé myta... J'ai un doute sur ta 2nde proposition, ucase() n'a pas l'air d'aimer les matrices.
Lorsque tu écris caracmaj = UCase(caracmaj) qui est équivalent à
caracmaj = UCase(Range("B3,I8,I9,I10,I11"))
UCase() ne prend en compte que la 1ère valeur de ta plage et la reproduit partout.
Il faut que tu boucles sur toutes les cellules de ta plage avec par exemple :
Dim c As Range For Each c In [B3,I8,I9,I10,I11] c = UCase(c) Next c
eric
edit: on s'est croisé myta... J'ai un doute sur ta 2nde proposition, ucase() n'a pas l'air d'aimer les matrices.
Merci à vous deux,
Je viens de tester vos solutions. En ce qui concerne ta deuxième solution Myta, j'ai remarqué qu'elle copie les mêmes données que la première cellule comme le faisait la mienne (j'ai Excel 2007, je ne sais pas si cela a une incidence). Sinon, l'autre fonctionne correctement.
Dans la proposition d'Eric, j'ai compris qu'il faut que je mette les cellules entre crochets et non entre parenthèses et guillemets.
C'est super sympa de votre part d'aider les autres.
Merci beaucoup.
J'aurai surement d'autres questions à venir...
A bientôt de vous lire
Je viens de tester vos solutions. En ce qui concerne ta deuxième solution Myta, j'ai remarqué qu'elle copie les mêmes données que la première cellule comme le faisait la mienne (j'ai Excel 2007, je ne sais pas si cela a une incidence). Sinon, l'autre fonctionne correctement.
Dans la proposition d'Eric, j'ai compris qu'il faut que je mette les cellules entre crochets et non entre parenthèses et guillemets.
C'est super sympa de votre part d'aider les autres.
Merci beaucoup.
J'aurai surement d'autres questions à venir...
A bientôt de vous lire