Bonjour,
Excel 2000/WIN98SE. Ma question n'est certainement pas inédite mais je n'ai
rien trouvé dans le ng. Je voudrais que la 1ère lettre du texte entré dans
une cellule soit en majuscule. L'option "Mettre la 1ère lettre d'une phrase
en majuscule" est inopérante dans ce cas. Y a t-il une solution ? un réglage
? une macro ?
D'avance merci de vos conseils
Sulpice
"Sulpice" <ahouyez@(otezceci)tele2.fr> a écrit dans le message de news:%23k7$
verificator" a écrit dans le message de news:11bd01c4e5c3$7360be80$ bonjour Sulpice,
pour ton problème, sans macro, point de salut. Tu fais un clic droit sur le nom de ton onglet, visualiser le code, et tu copies ce code
------------------------------ Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then Target.Value = WorksheetFunction.Proper(Target) End If End Sub ------------------------------
Tu peux remplacer "Columns("A")" par la zone que tu désires être concernée par la macro.
amicalement
-----Original Message----- Bonjour, Excel 2000/WIN98SE. Ma question n'est certainement pas inédite mais je n'ai
rien trouvé dans le ng. Je voudrais que la 1ère lettre du texte entré dans
une cellule soit en majuscule. L'option "Mettre la 1ère lettre d'une phrase
en majuscule" est inopérante dans ce cas. Y a t-il une solution ? un réglage
? une macro ? D'avance merci de vos conseils Sulpice
Bonjour "verificator",
C'est génial ce truc ! même si je ne comprends pas comment ça marche....Reste à l'enregistrer... Un grand merci. Cordialement, Sulpice
Mais, en y regardant de plus près, il y a un hic ! TOUS les mots du texte
ont leur première lettre en majuscule, et je me serais bien contenté du premier mot uniquement...Comment corriger le tir ? Sulpice
AV
...je me serais bien contenté du premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) End If End Sub
AV
...je me serais bien contenté du
premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range)
If Not Intersect(zz, [A:A]) Is Nothing Then
zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1)
End If
End Sub
...je me serais bien contenté du premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) End If End Sub
AV
Daniel.M
Bonjour,
On peut aussi supprimer les événements temporairement pour éviter l'effet cascade.
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then Application.EnableEvents = False zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) Application.EnableEvents = True End If End Sub
Salutations,
Daniel M.
Bonjour,
On peut aussi supprimer les événements temporairement pour éviter l'effet
cascade.
Private Sub Worksheet_Change(ByVal zz As Range)
If Not Intersect(zz, [A:A]) Is Nothing Then
Application.EnableEvents = False
zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1)
Application.EnableEvents = True
End If
End Sub
On peut aussi supprimer les événements temporairement pour éviter l'effet cascade.
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then Application.EnableEvents = False zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) Application.EnableEvents = True End If End Sub
Salutations,
Daniel M.
Sulpice
"AV" a écrit dans le message de news:%
...je me serais bien contenté du premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) End If End Sub
AV
Bonjour AV, OK, ça marche. Merci. Je vais essayer de comprendre pourquoi !
Sulpice
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de
news:%23hdfCje5EHA.4004@tk2msftngp13.phx.gbl...
...je me serais bien contenté du
premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range)
If Not Intersect(zz, [A:A]) Is Nothing Then
zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1)
End If
End Sub
AV
Bonjour AV,
OK, ça marche. Merci. Je vais essayer de comprendre pourquoi !
...je me serais bien contenté du premier mot uniquement...Comment corriger le tir ?
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) End If End Sub
AV
Bonjour AV, OK, ça marche. Merci. Je vais essayer de comprendre pourquoi !
Sulpice
Sulpice
"Daniel.M" a écrit dans le message de news:
Bonjour,
On peut aussi supprimer les événements temporairement pour éviter l'effet cascade.
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then Application.EnableEvents = False zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) Application.EnableEvents = True End If End Sub
Salutations,
Daniel M.
Bonjour Daniel,
Effectivement, ça marche également. Il est curieux que cette option n'existe pas dans Excel alors qu'elle existe dans Word. Merci beaucoup Cordialement, Sulpice
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:eEgO66e5EHA.1396@tk2msftngp13.phx.gbl...
Bonjour,
On peut aussi supprimer les événements temporairement pour éviter l'effet
cascade.
Private Sub Worksheet_Change(ByVal zz As Range)
If Not Intersect(zz, [A:A]) Is Nothing Then
Application.EnableEvents = False
zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1)
Application.EnableEvents = True
End If
End Sub
Salutations,
Daniel M.
Bonjour Daniel,
Effectivement, ça marche également. Il est curieux que cette option n'existe
pas dans Excel alors qu'elle existe dans Word.
Merci beaucoup
Cordialement,
Sulpice
On peut aussi supprimer les événements temporairement pour éviter l'effet cascade.
Private Sub Worksheet_Change(ByVal zz As Range) If Not Intersect(zz, [A:A]) Is Nothing Then Application.EnableEvents = False zz = UCase(Left(zz, 1)) & Right(zz, Len(zz) - 1) Application.EnableEvents = True End If End Sub
Salutations,
Daniel M.
Bonjour Daniel,
Effectivement, ça marche également. Il est curieux que cette option n'existe pas dans Excel alors qu'elle existe dans Word. Merci beaucoup Cordialement, Sulpice
Daniel.M
Bonsoir,
Effectivement, ça marche également. Il est curieux que cette option n'existe pas dans Excel alors qu'elle existe dans Word. Merci beaucoup
Word n'a pas un moteur de recalcul automatique qui met à jour les résultats de formules instantanément: on n'a donc pas besoin d'indiquer par VBA qu'il faut supprimer temporairement les événements (le _Change et les recalculs associés) qui sont générés par la saisie d'une nouvelle valeur. Si cette option n'existait pas en Excel, on aurait le cycle suivant : saisie => recalcul => changements de valeurs => recalcul => ... (sans fin) si la procédure _Change continue à rechanger les valeurs.
Il faut donc une instruction qui supprime temporairement les événements, ce qui montre toute la puissance d'Excel. La compétition des logiciels libres (suite OpenOffice, StarOffice) a été capable d'émuler remarquablement bien les autres produits d'Office (Word, PowerPoint, Publisher) mais elle tarde à reproduire adéquatement les fonctionnalités d'un logiciel comme Excel, une preuve supplémentaire de son évolution.
Salutations,
Daniel M.
Bonsoir,
Effectivement, ça marche également. Il est curieux que cette option n'existe
pas dans Excel alors qu'elle existe dans Word.
Merci beaucoup
Word n'a pas un moteur de recalcul automatique qui met à jour les résultats de
formules instantanément: on n'a donc pas besoin d'indiquer par VBA qu'il faut
supprimer temporairement les événements (le _Change et les recalculs associés)
qui sont générés par la saisie d'une nouvelle valeur. Si cette option n'existait
pas en Excel, on aurait le cycle suivant : saisie => recalcul => changements de
valeurs => recalcul => ... (sans fin) si la procédure _Change continue à
rechanger les valeurs.
Il faut donc une instruction qui supprime temporairement les événements, ce qui
montre toute la puissance d'Excel. La compétition des logiciels libres (suite
OpenOffice, StarOffice) a été capable d'émuler remarquablement bien les autres
produits d'Office (Word, PowerPoint, Publisher) mais elle tarde à reproduire
adéquatement les fonctionnalités d'un logiciel comme Excel, une preuve
supplémentaire de son évolution.
Effectivement, ça marche également. Il est curieux que cette option n'existe pas dans Excel alors qu'elle existe dans Word. Merci beaucoup
Word n'a pas un moteur de recalcul automatique qui met à jour les résultats de formules instantanément: on n'a donc pas besoin d'indiquer par VBA qu'il faut supprimer temporairement les événements (le _Change et les recalculs associés) qui sont générés par la saisie d'une nouvelle valeur. Si cette option n'existait pas en Excel, on aurait le cycle suivant : saisie => recalcul => changements de valeurs => recalcul => ... (sans fin) si la procédure _Change continue à rechanger les valeurs.
Il faut donc une instruction qui supprime temporairement les événements, ce qui montre toute la puissance d'Excel. La compétition des logiciels libres (suite OpenOffice, StarOffice) a été capable d'émuler remarquablement bien les autres produits d'Office (Word, PowerPoint, Publisher) mais elle tarde à reproduire adéquatement les fonctionnalités d'un logiciel comme Excel, une preuve supplémentaire de son évolution.