[vab sous excel] metre un tableau en majuscul
princesse57000
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je dois mettre un tableau de x colonne en majuscule et reduire les colonne a 32 caractere
pour le moment j'ai reussi a intégrer le nomre de colonne dont javais besoin pour ensuite mettre la formule "= majuscule()" à l'intérieur mais j'ai voulu mettre un compteur pour qu'il applique ma formule dans toutes mes nouvelles colonnes et mettre une variable qui corespondrait au nombre de colonne insérer pour qu'il aille chercher le contenu des cellules en minuscule.
mais ça nmarche pas apparement les formules que j'utilise n'acceptent pas les variables
voici ma macro poiur inserer les colonnes dont j'ai besoin :
Sub majuscule()
Dim nbcol As Integer
Dim nombrecolonne As Integer
nombrecolonne = Val(InputBox("combien de colonne voulez vous inserer?"))
Columns("a:a").Select
nbcol = 0
Do While nbcol < nombrecolonne
For compteur = 1 To Len(nombrecolonne) - 1
Selection.Insert Shift:=xlToRight
nbcol = nbcol + 1
Next
Loop
End Sub
voici le petit bout que j essaye d integrer pour la mise en majuscule :
Sub maj2()
Dim nomcolonne As String
Do
nomcolonne = Val(InputBox("dans quelle colonne voulez mettre en majuscule?"))
Range(nomcolonne).Select
ActiveCell.FormulaR1C1 = "=UPPER(RC[3])"
Selection.AutoFill Destination:=Range("A1:A70000"), Type:=xlFillDefault
Range("A1:A70000").Select
Loop While nomcolonne <> non
End Sub
si quel qu'un a une idée
je me suis mise au VBa il y a deux jours alors je galere grave
merci
Je dois mettre un tableau de x colonne en majuscule et reduire les colonne a 32 caractere
pour le moment j'ai reussi a intégrer le nomre de colonne dont javais besoin pour ensuite mettre la formule "= majuscule()" à l'intérieur mais j'ai voulu mettre un compteur pour qu'il applique ma formule dans toutes mes nouvelles colonnes et mettre une variable qui corespondrait au nombre de colonne insérer pour qu'il aille chercher le contenu des cellules en minuscule.
mais ça nmarche pas apparement les formules que j'utilise n'acceptent pas les variables
voici ma macro poiur inserer les colonnes dont j'ai besoin :
Sub majuscule()
Dim nbcol As Integer
Dim nombrecolonne As Integer
nombrecolonne = Val(InputBox("combien de colonne voulez vous inserer?"))
Columns("a:a").Select
nbcol = 0
Do While nbcol < nombrecolonne
For compteur = 1 To Len(nombrecolonne) - 1
Selection.Insert Shift:=xlToRight
nbcol = nbcol + 1
Next
Loop
End Sub
voici le petit bout que j essaye d integrer pour la mise en majuscule :
Sub maj2()
Dim nomcolonne As String
Do
nomcolonne = Val(InputBox("dans quelle colonne voulez mettre en majuscule?"))
Range(nomcolonne).Select
ActiveCell.FormulaR1C1 = "=UPPER(RC[3])"
Selection.AutoFill Destination:=Range("A1:A70000"), Type:=xlFillDefault
Range("A1:A70000").Select
Loop While nomcolonne <> non
End Sub
si quel qu'un a une idée
je me suis mise au VBa il y a deux jours alors je galere grave
merci
A voir également:
- [vab sous excel] metre un tableau en majuscul
- Trier un tableau excel - Guide
- Tableau word - Guide
- Mètre en ligne - Guide
- Imprimer un tableau excel - Guide
- Liste déroulante excel - Guide
5 réponses
bonjour
ce que je cherche a faire c'est mettre un tableau deja rempli en majuscule
pour cela tu peux lancer la macro suivante :
Sub majuscules()
Set choix = Application.InputBox(prompt:="Choisissez la plage à mettre en majuscules", Title:="Mise en majuscule", Top:=5, Left:=100, Type:=8)
For Each c In Range(choix.Address)
c.Value = UCase(c.Value)
Next c
End Sub
attention en copiant il faut supprimer le saut de ligne sur la première instruction :
Set choix...=8) sur une seule ligne VBA.
Sur la boite de dialogue qui apparait, avec la souris tu sélectionnes
la plage à mettre en majuscules, tu valides la boite de dialogue
et tes cellules choisies sont en majuscule !
De la même façon tu peux apporter n'importe qu'elle modification :
couleur de fond ou de police, mise en gras, création d'un lien hypertexte, etc...
ce que je cherche a faire c'est mettre un tableau deja rempli en majuscule
pour cela tu peux lancer la macro suivante :
Sub majuscules()
Set choix = Application.InputBox(prompt:="Choisissez la plage à mettre en majuscules", Title:="Mise en majuscule", Top:=5, Left:=100, Type:=8)
For Each c In Range(choix.Address)
c.Value = UCase(c.Value)
Next c
End Sub
attention en copiant il faut supprimer le saut de ligne sur la première instruction :
Set choix...=8) sur une seule ligne VBA.
Sur la boite de dialogue qui apparait, avec la souris tu sélectionnes
la plage à mettre en majuscules, tu valides la boite de dialogue
et tes cellules choisies sont en majuscule !
De la même façon tu peux apporter n'importe qu'elle modification :
couleur de fond ou de police, mise en gras, création d'un lien hypertexte, etc...
merci beaucoup tu m'enlèves une épine du pied
je vais donc pourvoir faire les reste de mes macros car il faut que j applique d autre modification a mon tableau XL
en fait je dois réaliser des macros pour mettre aux normes postale des fichiers d adresses en XL
dc il faut que mes fichiers arrivent a être de la forme
une colonne nom, (ou 3 colonne civ./nom/prénom), 1 colonne société, 3 colonne adresses,1 colonne Code Postale et 1 colonne ville
et toutes ses colonnes doivent avoir 32 caractères au maximum, être en majuscule et sans lettre avec accents
dc jusqu'à maintenant j'insérer des colonnes avec les formule "=majuscule() " et "= nbcar()" et je faisais des cherche remplace pour mettre des abréviation
dc la macro majuscule me fait déjà gagné du temps maintenant il faut que je fasse une macro pour mettre a 32 caractères
et une autres qui ôtes les accents
je pense essayer avec une macro qui chercher et des mots clé qui reviennent fréquemment
comme "rue, avenue, boulevard, société, établissements ...."
et une autre qui remplace "é" par "E" ...
mais il faudra certainement que je fasse quand m^me des chose manuellement pour faire du 32 caractères
je pourrais aussi faire en sorte qu si le contenue de ma cellule dépasse 32 caractères et si le cellule qui suis (adresse 1) est vide je bascule au dernier espace avant le 32 eme caractère le contenue de ma cellule dans la cellule vide
enfin je vais essayer
mais je ne suis pas contre des idées :)
merci d'avance
je vais donc pourvoir faire les reste de mes macros car il faut que j applique d autre modification a mon tableau XL
en fait je dois réaliser des macros pour mettre aux normes postale des fichiers d adresses en XL
dc il faut que mes fichiers arrivent a être de la forme
une colonne nom, (ou 3 colonne civ./nom/prénom), 1 colonne société, 3 colonne adresses,1 colonne Code Postale et 1 colonne ville
et toutes ses colonnes doivent avoir 32 caractères au maximum, être en majuscule et sans lettre avec accents
dc jusqu'à maintenant j'insérer des colonnes avec les formule "=majuscule() " et "= nbcar()" et je faisais des cherche remplace pour mettre des abréviation
dc la macro majuscule me fait déjà gagné du temps maintenant il faut que je fasse une macro pour mettre a 32 caractères
et une autres qui ôtes les accents
je pense essayer avec une macro qui chercher et des mots clé qui reviennent fréquemment
comme "rue, avenue, boulevard, société, établissements ...."
et une autre qui remplace "é" par "E" ...
mais il faudra certainement que je fasse quand m^me des chose manuellement pour faire du 32 caractères
je pourrais aussi faire en sorte qu si le contenue de ma cellule dépasse 32 caractères et si le cellule qui suis (adresse 1) est vide je bascule au dernier espace avant le 32 eme caractère le contenue de ma cellule dans la cellule vide
enfin je vais essayer
mais je ne suis pas contre des idées :)
merci d'avance
bonjour
pour avoir toutes tes nouvelles cellules saisies en majuscule,
tu inséres simplement, dans la feuille concernée cette petite macro :
Private Sub Worksheet_Change(ByVal sel As Range)
sel.Value = UCase(sel.Value)
End Sub
Dès que tu valides ta saisie, la macro s'exécute et passe la cellule en majuscule.
est-ce ce que tu veux ?
pour avoir toutes tes nouvelles cellules saisies en majuscule,
tu inséres simplement, dans la feuille concernée cette petite macro :
Private Sub Worksheet_Change(ByVal sel As Range)
sel.Value = UCase(sel.Value)
End Sub
Dès que tu valides ta saisie, la macro s'exécute et passe la cellule en majuscule.
est-ce ce que tu veux ?
merci beaucoup pour cette info je vais tester la formule
en fait ce que je cherche a faire c'est mettre un tableau deja rempli en majuscule
pour moi la solution était donc de faire une insertion du meme nombre de colonne que mon tableau initiale (par une question à laquelle je donne le nombre de colonne a inserer qui pour moi determinera les autres variable de ma procedure
et ensuite qu'il reprenne les donné en minuscule du tableau initiale et qu'il les retrasncrive en majuscule dans mes nouvlles cellule insérer
je vais donc tester ta procedure pour voir ce qu'elle fait exactement et essayer d'avancer
si tu as d autres propostition par rapport aux explications que je t'ai fournit ci dessus n hesites pas elles seront le bien venu
en fait ce que je cherche a faire c'est mettre un tableau deja rempli en majuscule
pour moi la solution était donc de faire une insertion du meme nombre de colonne que mon tableau initiale (par une question à laquelle je donne le nombre de colonne a inserer qui pour moi determinera les autres variable de ma procedure
et ensuite qu'il reprenne les donné en minuscule du tableau initiale et qu'il les retrasncrive en majuscule dans mes nouvlles cellule insérer
je vais donc tester ta procedure pour voir ce qu'elle fait exactement et essayer d'avancer
si tu as d autres propostition par rapport aux explications que je t'ai fournit ci dessus n hesites pas elles seront le bien venu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
pour continuer la mise en forme 2 macros :
Pour corriger les accents :
Sub accents()
Dim choix, cherche, remplace
Set choix = Application.InputBox(prompt:="Choisissez la plage de remplacement", Title:="Plage de remplacement", Top:=5, Left:=200, Type:=8)
cherche = Application.InputBox("Choisissez le caractère à remplacer", "Caractère à remplacer", "é", 100, 100)
remplace = Application.InputBox("Choisissez le caractère de remplacement", "Caractère de remplacement", "E", 110, 100)
For Each c In Range(choix.Address)
c.Replace What:=cherche, Replacement:=remplace, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next c
End Sub
cela peut aussi remplacer un caractère par plusieurs ou par "rien", selon le paramètre saisi et on fonctionne sur une plage pour le test.
Sub longueur()
Dim col, taille,k , l
Set col = Application.InputBox("Choisissez la plage de la colonne à contrôler", "Colonne à contrôler", , 100, 200, , , 8)
taille = Application.InputBox("Choisissez le nombre de caractères maximum", "Caractères maximum", 32, 100, 100)
For Each c In In Range(col.Address)
If Len(c.Value) > Val(taille) Then
k = 1
Do Until k > Val(taille) Or k = 0
l = k
k = InStr(k + 1, c.Value, " ")
Loop
Cells(c.Row, c.Column + 1) = Right(c.Value, Len(c.Value) - l)
Cells(c.Row, c.Column) = Left(c.Value, l - 1)
End If
Next c
End Sub
Le libellé supérieur à la longueur choisie est mis sur la colonne suivante, qui doit être vide, en tronquant au dernier espace.
Bonne découverte.
pour continuer la mise en forme 2 macros :
Pour corriger les accents :
Sub accents()
Dim choix, cherche, remplace
Set choix = Application.InputBox(prompt:="Choisissez la plage de remplacement", Title:="Plage de remplacement", Top:=5, Left:=200, Type:=8)
cherche = Application.InputBox("Choisissez le caractère à remplacer", "Caractère à remplacer", "é", 100, 100)
remplace = Application.InputBox("Choisissez le caractère de remplacement", "Caractère de remplacement", "E", 110, 100)
For Each c In Range(choix.Address)
c.Replace What:=cherche, Replacement:=remplace, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next c
End Sub
cela peut aussi remplacer un caractère par plusieurs ou par "rien", selon le paramètre saisi et on fonctionne sur une plage pour le test.
Sub longueur()
Dim col, taille,k , l
Set col = Application.InputBox("Choisissez la plage de la colonne à contrôler", "Colonne à contrôler", , 100, 200, , , 8)
taille = Application.InputBox("Choisissez le nombre de caractères maximum", "Caractères maximum", 32, 100, 100)
For Each c In In Range(col.Address)
If Len(c.Value) > Val(taille) Then
k = 1
Do Until k > Val(taille) Or k = 0
l = k
k = InStr(k + 1, c.Value, " ")
Loop
Cells(c.Row, c.Column + 1) = Right(c.Value, Len(c.Value) - l)
Cells(c.Row, c.Column) = Left(c.Value, l - 1)
End If
Next c
End Sub
Le libellé supérieur à la longueur choisie est mis sur la colonne suivante, qui doit être vide, en tronquant au dernier espace.
Bonne découverte.
J'ai essayé vos macros, mais de mon côté ce que je désire faire dans excel c'est un masque de saisi pour les codes postaux. J'aimerais que la cellule soit toujours en format majuscule et idéalement format code postal... Dans les macros ci-hauts comme puis-je les appliquer afin que la cellule demeure toujours en majuscule ? Merci
Merci de ton message et tu as raison la macro est un peu cavalière, essaies avec cette formule cela devrait être mieux
Sub majuscules() Dim choix As Object Dim c As Object On Error Resume Next Set choix = Application.InputBox(prompt:="Choisissez la plage à mettre en majuscules", Title:="Mise en majuscule", Top:=5, Left:=100, Type:=8) If choix Is Nothing Then Exit Sub For Each c In Range(choix.Address) c.Value = UCase(c.Value) Next c End Sub