format cellule 1er 2ème

cedric11

XLDnaute Nouveau
Bonjour,
j'aimerai faire afficher automatiquement:
1 sous la forme 1er quand
2 sous le forma 2ème
3 sous la forme 3ème, des que le nombre arrive dans la cellule
MAIS que le er, ou le ème soit sous la forme d'exposant.
J'utilise : format de cellule/personnaliser/###"er"
ça me fait bien 1er mais le er n'est pas sous forme d'exposant.
Si quelqu'un a une solution, je suis preneur!:D
merci par avance.

NB: ci joint doc, si mes explications ne sont pas claires.
 

Pièces jointes

  • exemple_1er.xls
    16 KB · Affichages: 252
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

Salut Cedric,

Je suppose que ca doit pouvoir se faire par les reglages dans les options mais comme je ne sais pas faire, je te propose une macro evenementielle a mettre dans le module de la feuille adéquate (et non un module standard).

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "1er" Then
    With Target.Characters(Start:=2, Length:=2).Font
        .Superscript = True
    End With
ElseIf Right(Target.Value, 3) = "ème" Then
    With Target.Characters(Start:=2, Length:=3).Font
        .Superscript = True
    End With
End If
End Sub

Voili, voilou,

@+
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Bonjour Porcinet82,
merci pour le coup de main.
c'est vrai que se serait plus simple pour moi de modifier : format de cellule/personnaliser/###"er" en rajoutant quelque chose (comme on met [rouge] pour afficher en rouge) qui face que le er s'inscrive sous forme d'exposant... Si quelqu'un sait!!!
je ne sais pas comment il faut que je utilise ce que tu m'as donné. je suis novice en excel. je sais créer une macro mais je ne sais pas utiliser le langage que tu mets...
help ! qu'est ce que je dois faire concrètement??,
 

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

Salut Cedric,

Supposons que ton tableau se trouve sur la feuille 1 comme dans l'exemple de ton fichier. Il faut donc que tu mettes le code dans le module de la feuille que tu vas utiliser. Pour ce faire, tu as 2 possibilités :
  • Click droit sur l'onglet de la feuille, puis visualiser le code. La il ne doit rien y avoir rien, tu colles donc le code que je t'ai donné
  • Alt+F11, vba s'ouvre, dans le menu de gauche (vba project) tu doubles click sur Feuil1 et tu colles le code
Une fois le code collé, la macro fonctionne d'elle même (pour cette feuille seulement) tu peux essayer de taper 1er ou 2ème et ca fonctionne. (Remarque : il faut mettre ème et non eme).

@+
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Bonjour à tous,
bonjour à toi Porcinet82,
merci por ta solution mais j'avais oublié de spécifié un petit paramètre : les nombres viennent d'une autre feuille.
en gros dans une feuille 1 j'ai un classement de 1 à 8 ( par exemple) et j'aimerais que dans une feuille 2, le 1 (puis 2, 3...) apparaissent sous la forme 1er 2ème... avec er et ème en exosant.

Si tu as une idée ou quelqu'un d'autre, je suis très intéressé!!!:D
 

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

Salut Cedric,

Peut etre alors en utilisant un macro toute simple a lancer avec un bouton (je suppose ton tableau dans la plage de cellule A1:A10) :

PHP:
Sub test()
Dim cel As Range
 
Application.Goto Sheets("Feuil2").Range("A1")
For Each cel in Range("A1:A10")
   If cel.Value = "1er" Then
      With cel.Characters(Start:=2, Length:=2).Font
        .Superscript = True
      End With
    ElseIf Right(cel.Value, 3) = "ème" Then
      With cel.Characters(Start:=2, Length:=3).Font
        .Superscript = True
      End With
  End If
Next cel
End Sub

@+
 

Monique

Nous a quitté
Repose en paix
Re : format cellule 1er 2ème

Bonjour,

Sans macro, sans colonne masquée, sans exposant non plus,
simplement un format nombre personnalisé :
[<2]0"er"_m;0"ème"

Barre de menu - Format - Cellule - Onglet "Nombre"
Choisir "Personnalisée" et dans la zone "Type", taper :
[<2]0"er"_m;0"ème"
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Bonjour à tous,
bonjour à tous les 3,

abc, ta solution est intéressante mais cela ne résoud pas le problème de mettre en exposant!

Porcinet82, ta solution de macro me paraissait la plus adéquate, mais mes plages de cellules à modifier (il y en a 8) seront amenées à évoluer sur l'année. Donc à chaque fois, il faudra que je recréé la macro.
De plus, je veux ensuite transformer cette feuille excel en une page web, donc j'aimerai que le bouton n'y figure pas.

c'est pourquoi, je pense qu'un truc du genre format de cellule/personnaliser/###"er" en rajoutant quelque chose (comme on met [rouge] pour afficher en rouge) qui face que le er s'inscrive sous forme d'exposant, serait plus pratique... mais si il faut passer par les macros, il va falloir, m'expliquer comment je créer une macro en texte et que je l'associe à un bouton..; je ne sais les faire qu'en enregistrant manuellement ce que je veux qu'elles fassent.

Monique, c'est presque ça mais, je voudrais que le er et le ème apparaissent sous forme d'exposant

+++
 
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

re, Salut Monique, abc,

Des fois que Monique n'arriverai pas a te trouver une solution sans macro (j'en doute car elle est tres forte) on peut certainement adapter ma macro. Si tes tableaux contiennent une données qui ne change pas au cours du temps (comme un morceau de texte) on peut faire une recherche sur la feuille afin de determiner les plages de cellules?

De plus, le bouton n'est pas obligatoire, j'ai dis ca, mais d'autres possibilités existent.

Peut etre qu'un fichier joint avec exemple de tes tableaux tels qu'ils pourraient eventuellement se présenter pourrait nous aider.

@+
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Bonjour a tous,
effectivement avec le tableau original se serait peut être plus explicite.
le voici
NB: je suis en cours de transformation du tableau (cette année, je le faisais en copier-coller, là j'essaye d'automatiser l'ensemble), seul le plateau 1 est plus ou moins une forme définitive.
J'ai pensé a une autre solution : faire 2 colonnes: l'une avec le classement et l'autre avec le format er ou ème. Mais j'ai un autre critère qui me pose problème dans ce cas là : quand des équipes sont en coupe de France ou Régionale; C'est pourquoi je préfèrerais tout avoir dans une même cellule.
Bon courage et bonne journée :)
 

Pièces jointes

  • exemple plareau.xls
    25.5 KB · Affichages: 130
  • exemple plareau.xls
    25.5 KB · Affichages: 134
  • exemple plareau.xls
    25.5 KB · Affichages: 137

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

Salut Cedric,

Je viens de jeter un oeil a ton fichier, le problème c'est que tes tableaux ne sont pas tous de meme forme, certains ont des formules, d'autres non. La macro suivante fonctionne pour les cellules ne recevant pas de formules, mais il est possible de l'adapter par la suite.

Je te laisse la tester et me dire ce que tu en penses :
PHP:
Sub test()
Dim cel As Range, c As Range
 
Application.Goto Sheets("Feuil1").Range("A1")
For Each cel In Sheets("feuil1").UsedRange
    If cel.Value = "Résultat plateau" Then
        For Each c In Range(Cells(cel.Row + 1, cel.Column), Cells(cel.Row + 10, cel.Column))
            If cel.Value = "1er" Then
                cel.Characters(Start:=2, Length:=2).Font.Superscript = True
            ElseIf Right(cel.Value, 3) = "ème" Then
                cel.Characters(Start:=2, Length:=3).Font.Superscript = True
            End If
        Next c
    End If
Next cel
End Sub

@+
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Salut Porcinet81,
apparament il y a un truc que je dois mal faire, j'ai rien qui se passe...
j'ai copier ton code, fais clique droit sur la feuille en question, visualiser le code et j'ai collé
et si je met des chiffres dans les différentes colonnes rien ne se passe...???
 

porcinet82

XLDnaute Barbatruc
Re : format cellule 1er 2ème

Salut Cedric,

Arffff, c'est normal, le code que je t'ai proposé se lance a partir d'un bouton ou en lancant toi meme la macro. Pour qu'elle se lance des que tu modifie le contenu d'une cellule, il faut la mettre dans un module de feuille (la feuille concernée) et la placer dans l'evenement Worksheet_Change :

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range, c As Range
 
Application.Goto Sheets("Feuil1").Range("A1")
For Each cel In Sheets("feuil1").UsedRange
 
'.....
End Sub

@+
 

cedric11

XLDnaute Nouveau
Re : format cellule 1er 2ème

Bonjour le forum,
salut Porcinet82,
j'ai bien pris note de tes codes, mais comment je fais pour les placer dans l'evenement Worksheet_Change???
Autre petitesquestion, mes tableaux (plateau 1, 2...) sont que des résultats de formules qui recherchent dans d'autres feuilles, donc est ce que tes codes marcheront quand même??? Dans la feuille concernée, je ne rentre aucune données.
Bonne journée:)
 

Discussions similaires

Réponses
3
Affichages
171

Statistiques des forums

Discussions
312 322
Messages
2 087 285
Membres
103 507
dernier inscrit
tapis23