OVH Cloud OVH Cloud

[Truc tout bête] passer en minuscules

16 réponses
Avatar
Jean
hello !
je me heurte à un problème vraiment très con :
ma société m'a envoyé un fichier client tout en majuscules, donc volumineux
à l'impression et peu lisible...
Je sélectionne donc tout mon tableau, je me dirige naturellement vers
"Format / Cellule / Police" et là : surprise !!!
rien, pas le moindre bouton pour basculer majuscules/minuscules....
j'ai fouillé dans les paramètres d'affichage, et je ne trouve pas cette
fonction...

Où est elle ??

merci d'avance
Jean

6 réponses

1 2
Avatar
Jean
"michdenis" a écrit dans le message de news:
#
Bonjour Jean,



Cool, je vois que vous avez été nombreux à me répondre, c'est vraiment sympa
!!!

bon, je vais finir par l'avouer : je suis une grosse bille qui ne comprend
rien aux macros...

d'abord, j'ai vu que dans beaucoup de programmes proposés, l'alignement
gauche est "décalé".. est ce normal ?
exemple :

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

Tblo = Rg.Formula
For A = 1 To UBound(Tblo, 1)
For b = 1 To UBound(Tblo, 2)
If Tblo(A, b) <> "" Then
If Left(Tblo(A, b), 1) <> "=" And Left(Tblo(A, b), 1) <> "+"
Then
Tblo(A, b) = LCase(Tblo(A, b))
End If
End If
Next
Next
Rg = Tblo
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
etc etc

enfin, vous serait il possible de me décrire pas à pas, menu par menu,
onglet par onglet, (depuis mon tableau non selectionné) ce qu'il faut faire
pour créer cette fichue macro ? je ne m'en sors pas ! ;)

merci de votre patience. Si elle a atteint ses limites, inutile de
m'insulter, je sors avant ! ;))

@+
jean

Avatar
michdenis
Bonjour Jean,


D ) Dans la procédure tu dois modifier le nom de la feuille pour celle de
ton application dans cette ligne de code de la


procédure : Set Rg = Worksheets("Feuil1").UsedRange


cette ligne n'est pas présente dans la procédure que tu m'as donnée.
Dois je la rajouter ? si oui, a quel endroit ? ma feuille s'appelle bien
"feuil1"

C'EST LA QUATRIÈME LIGNE DE TEXTE DE LA PROCÉDURE INCLUANT LA LIGNE DE DÉCLARATION DE LA PROCÉDURE.


E ) La procédure va traiter toutes les cellules de la feuille indiquée.
une fois que j'ai copié la formule, vu qu'il n'y a pas de bouton pour

"lancer" son application.
donc, je l'ai fermée (croix en haut droite)... et rien ne se passe......

DANS LA FEUILLE DE CALCUL : Barre de menu / outils / Macro / Macro.../
et dans la fenêtre qui s'ouvre, tu sélectionne le nom de la macro et un clic sur le bouton "Exécuter"


Salutations!


--------------------------
Sub MiseEnMajusculePremièreLettre()

Dim Tblo As Variant, Rg As Range

'********A déterminer Nom De la Feuille********

Set Rg = Worksheets("Feuil1").UsedRange

'****************************************

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

Tblo = Rg.Formula
For A = 1 To UBound(Tblo, 1)
For b = 1 To UBound(Tblo, 2)
If Tblo(A, b) <> "" Then
If Left(Tblo(A, b), 1) <> "=" And Left(Tblo(A, b), 1) <> "+" Then
Tblo(A, b) = LCase(Tblo(A, b))
End If
End If
Next
Next
Rg = Tblo
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Set MaPlage = Nothing

End Sub
'--------------------------

Avatar
AV
Ave Denis,

Si je peux me permettre un commentaire ...
** Tu peux ! ;-)


A ) Avec la formule de la feuille de calcul, il me semble qu'il te manque une
opération... celle qui consiste à replacer

les données dans sa plage originale ....
** Pourquoi donc ? Elles n'ont pas été déplacées !


et je suppose qu'il n'y a pas trop de formules dans cette plage ;-))
** Compte-tenu du type probale des données ("..ma société m'a envoyé un fichier

client..."), les formules ne doivent pas se bousculer dans les différents
champs... non ?
Quoi qu'il en soit, mais mon intervention se situait plus au niveau de la
méthode que du cas particulier

B ) Si je lis bien, Est-ce 2.6 secondes ou 26 secondes ? ;-)
Tu lis bien 26 (vingt-six) secondes...

Les temps sont approximativement bons (qques petites variations entre 1° et la
Xième exécution)
Les tests sont faits avec A1:Z5000 contenant "TOTO"
Micro climat ? ;-)

Si qqu'un veut s'amuser à refaire les tests....
AV

Avatar
michdenis
Bonjour AV,

Ok pour la recopie, je n'avais pas remarqué que tu avais mis 2 lignes de code sur la même ;-)

Concernant le temps que prend une procédure utilisant un tableau, Si je prends la procédure que j'ai soumise, j'arrive à
l'exécuter en 3.7 secondes avec un P2-400 d'intel. La différence est énorme entre 26 secondes et 3.7. !!!

Je publie la procédure utilisée. Et pour les besoins du test, j'ai désactivé la ligne de code qui testait l'existence
d'une formule dans la cellule. Si quelqu'un d'autre veut tester ?


'--------------------------
Sub MiseEnMajusculePremièreLettre()

Dim Tblo As Variant, Rg As Range, Start As Double, Finish As Double
Start = Timer


'********A déterminer Nom De la Feuille********

Set Rg = Worksheets("Feuil1").UsedRange

'****************************************

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

Tblo = Rg '.Formula
For A = 1 To UBound(Tblo, 1)
For B = 1 To UBound(Tblo, 2)
If Tblo(A, B) <> "" Then
'If Left(Tblo(A, B), 1) <> "=" And Left(Tblo(A, B), 1) <> "+" Then
Tblo(A, B) = LCase(Tblo(A, B))
'End If
End If
Next
Next
Rg = Tblo
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Set MaPlage = Nothing
Finish = Timer
MsgBox Finish - Start

End Sub
'--------------------------


Salutations!






"AV" a écrit dans le message de news:
Ave Denis,

Si je peux me permettre un commentaire ...
** Tu peux ! ;-)


A ) Avec la formule de la feuille de calcul, il me semble qu'il te manque une
opération... celle qui consiste à replacer

les données dans sa plage originale ....
** Pourquoi donc ? Elles n'ont pas été déplacées !


et je suppose qu'il n'y a pas trop de formules dans cette plage ;-))
** Compte-tenu du type probale des données ("..ma société m'a envoyé un fichier

client..."), les formules ne doivent pas se bousculer dans les différents
champs... non ?
Quoi qu'il en soit, mais mon intervention se situait plus au niveau de la
méthode que du cas particulier

B ) Si je lis bien, Est-ce 2.6 secondes ou 26 secondes ? ;-)
Tu lis bien 26 (vingt-six) secondes...

Les temps sont approximativement bons (qques petites variations entre 1° et la
Xième exécution)
Les tests sont faits avec A1:Z5000 contenant "TOTO"
Micro climat ? ;-)

Si qqu'un veut s'amuser à refaire les tests....
AV

Avatar
Jean
"michdenis" a écrit dans le message de news:

Bonjour Jean,


J'ai pas trop eu le temps, donc désolé pour cette parenthèse temporelle, et
merci pour ton aide

bon, ça y est, j'ai réussi à executer la macro.
le résultat est.. moyen..
beaucoup de cellules sont passées en mnuscules... mais dans un sacré paquet,
l'information est remplacée par des "9"

jean

Avatar
michdenis
Bonjour Jean,

"bon, ça y est, j'ai réussi à executer la macro."

à la lumière de ce qui suit, je n'appellerais pas ça une réussite!!! Loin de là !


"le résultat est.. moyen..
beaucoup de cellules sont passées en mnuscules... mais dans un sacré paquet,
l'information est remplacée par des "9" "


Je veux bien recevoir une copie de ton fichier si l'information n'est pas "top secret" . Prière de m'envoyer que la
feuille concerné , je n'ai pas besoin de la totalité de l'application.

Adresse :



Salutations!
1 2