Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 12/02/20 à 13:50, Roland Miller a écrit :
Bonjour, Par exemple il y a le texte "Pour le 1er décembre." Je cherche à mettre le er du 1er en exposant. - J'ai pensé faire saisir par l'usager … disons … Exp:erExp: dans la celule. Par la suite par un bouton lancer une macro qui modifie Exp:erExp: en er en exposant. Évidemment il manque quelque chose au code suivant. Auriez-vous une suggestion? Merci à l'avance. Range("A1").Replace what:="Exp:*Exp:", replacement:=Superscript("*")
Bonjour, Essaie comme cela : '------------------------------ Dim P As Long With Range("G1") 'En G1, le texte : "Le 1er du mois" 'P = la position de er dans la chaine de caractères P = Application.Find("er", .Value, 1) 'Mise en exposant à partir de la position p pour 2 caractères With .Characters(Start:=P, Length:=2).Font .Superscript = True End With End With '------------------------------ MichD
Le 12/02/20 à 13:50, Roland Miller a écrit :
Bonjour,
Par exemple il y a le texte "Pour le 1er décembre."
Je cherche à mettre le er du 1er en exposant.
- J'ai pensé faire saisir par l'usager … disons … Exp:erExp: dans la celule.
Par la suite par un bouton lancer une macro qui modifie Exp:erExp: en er en exposant.
Évidemment il manque quelque chose au code suivant. Auriez-vous une suggestion? Merci à l'avance.
With Range("G1") 'En G1, le texte : "Le 1er du mois"
'P = la position de er dans la chaine de caractères
P = Application.Find("er", .Value, 1)
'Mise en exposant à partir de la position p pour 2 caractères
With .Characters(Start:=P, Length:=2).Font
.Superscript = True
End With
End With
'------------------------------
Bonjour, Par exemple il y a le texte "Pour le 1er décembre." Je cherche à mettre le er du 1er en exposant. - J'ai pensé faire saisir par l'usager … disons … Exp:erExp: dans la celule. Par la suite par un bouton lancer une macro qui modifie Exp:erExp: en er en exposant. Évidemment il manque quelque chose au code suivant. Auriez-vous une suggestion? Merci à l'avance. Range("A1").Replace what:="Exp:*Exp:", replacement:=Superscript("*")
Bonjour, Essaie comme cela : '------------------------------ Dim P As Long With Range("G1") 'En G1, le texte : "Le 1er du mois" 'P = la position de er dans la chaine de caractères P = Application.Find("er", .Value, 1) 'Mise en exposant à partir de la position p pour 2 caractères With .Characters(Start:=P, Length:=2).Font .Superscript = True End With End With '------------------------------ MichD
MichD
Le 12/02/20 à 17:08, Roland Miller a écrit :
Merci. Mais je ne sais à l'avance ce que l'usager voudra en exposant.
Là, je ne comprends pas. Tu veux mettre en exposant un texte, mais tu n'as aucun repère pour déterminer ce que sera ce texte, sa longueur, etc. Moi, je ne sais pas dire à une macro quelque chose dont je n'arrive pas à définir. MichD
Le 12/02/20 à 17:08, Roland Miller a écrit :
Merci.
Mais je ne sais à l'avance ce que l'usager voudra en exposant.
Là, je ne comprends pas. Tu veux mettre en exposant un texte, mais tu
n'as aucun repère pour déterminer ce que sera ce texte, sa longueur, etc.
Moi, je ne sais pas dire à une macro quelque chose dont je n'arrive pas
à définir.
Merci. Mais je ne sais à l'avance ce que l'usager voudra en exposant.
Là, je ne comprends pas. Tu veux mettre en exposant un texte, mais tu n'as aucun repère pour déterminer ce que sera ce texte, sa longueur, etc. Moi, je ne sais pas dire à une macro quelque chose dont je n'arrive pas à définir. MichD
MichD
Le 12/02/20 à 20:26, Roland Miller a écrit :
Désolé je vais tenter d'être plus précis. Disons que le texte est "pour le 1er décembre" Je veux arriver à mettre ce que l'usager veut mettre en exposant … dans ce cas "er". Mais ça pourrait être ième etc. Alors … je demanderais à l'usager de taper Exp: avant et après le texte qu'il veut mettre en exposant. Alors dans mon exemple une fois qu'il aura inscrit les Exp: le texte serait pour le 1Exp:erExp: décembre. Alors … une fois seulement qu'il aura inscrit ceci … il peut lancer la macro. Car après la ligne .Superscript = True … je pourrai enlever les Exp:. Alors ce que je veux mettre en exposant … est Exp:erExp: ou juste er … mais que je ne connais pas au départ … soit avant que l'usager aura inscrit les Exp:. Les Exp: serait comme une convention ou??
Au lieu de faire une macro pour cela, pourquoi ne pas dire aux usagers comment procéder? A ) Sélection du texte à mettre en exposant dans une cellule B ) Clic droit sur la cellule, commande "Format de cellule" C ) Cocher la case à cocher "Exposant". Si tu tiens à une macro, celle-ci va mettre en "Exposant" le mot suivant l'expression "exp:". Il pourrait en avoir plusieurs dans la même cellule. SEUL le mot attaché suivant l'expression "exp:" sera mis en exposant, comme dans l'expression "exp:toto". Si tu veux mettre plusieurs mots en exposant dans la même cellule, chacun de ces mots doit être précédé par "exp:" '------------------------------------- Sub test() Dim D As Long, A As Long, F As Long With ActiveCell If .Value <> "" Then For A = 1 To Len(.Value) D = InStr(A, .Value, "exp", vbTextCompare) If D = 0 Then Exit Sub F = Application.Find(" ", .Value, D) With .Characters(Start:=D + 4, Length:=F - (D + 4)).Font .Superscript = True End With A = F D = 0 Next End If End With End Sub '------------------------------------- MichD
Le 12/02/20 à 20:26, Roland Miller a écrit :
Désolé je vais tenter d'être plus précis.
Disons que le texte est "pour le 1er décembre"
Je veux arriver à mettre ce que l'usager veut mettre en exposant … dans ce cas "er". Mais ça pourrait être ième etc.
Alors … je demanderais à l'usager de taper Exp: avant et après le texte qu'il veut mettre en exposant. Alors dans mon exemple une fois qu'il aura inscrit les Exp: le texte serait pour le 1Exp:erExp: décembre.
Alors … une fois seulement qu'il aura inscrit ceci … il peut lancer la macro.
Car après la ligne .Superscript = True … je pourrai enlever les Exp:.
Alors ce que je veux mettre en exposant … est Exp:erExp: ou juste er … mais que je ne connais pas au départ … soit avant que l'usager aura inscrit les Exp:. Les Exp: serait comme une convention ou??
Au lieu de faire une macro pour cela, pourquoi ne pas dire aux usagers
comment procéder?
A ) Sélection du texte à mettre en exposant dans une cellule
B ) Clic droit sur la cellule, commande "Format de cellule"
C ) Cocher la case à cocher "Exposant".
Si tu tiens à une macro, celle-ci va mettre en "Exposant" le mot suivant
l'expression "exp:". Il pourrait en avoir plusieurs dans la même
cellule. SEUL le mot attaché suivant l'expression "exp:" sera mis en
exposant, comme dans l'expression "exp:toto". Si tu veux mettre
plusieurs mots en exposant dans la même cellule, chacun de ces mots doit
être précédé par "exp:"
'-------------------------------------
Sub test()
Dim D As Long, A As Long, F As Long
With ActiveCell
If .Value <> "" Then
For A = 1 To Len(.Value)
D = InStr(A, .Value, "exp", vbTextCompare)
If D = 0 Then Exit Sub
F = Application.Find(" ", .Value, D)
With .Characters(Start:=D + 4, Length:=F - (D + 4)).Font
.Superscript = True
End With
A = F
D = 0
Next
End If
End With
End Sub
'-------------------------------------
Désolé je vais tenter d'être plus précis. Disons que le texte est "pour le 1er décembre" Je veux arriver à mettre ce que l'usager veut mettre en exposant … dans ce cas "er". Mais ça pourrait être ième etc. Alors … je demanderais à l'usager de taper Exp: avant et après le texte qu'il veut mettre en exposant. Alors dans mon exemple une fois qu'il aura inscrit les Exp: le texte serait pour le 1Exp:erExp: décembre. Alors … une fois seulement qu'il aura inscrit ceci … il peut lancer la macro. Car après la ligne .Superscript = True … je pourrai enlever les Exp:. Alors ce que je veux mettre en exposant … est Exp:erExp: ou juste er … mais que je ne connais pas au départ … soit avant que l'usager aura inscrit les Exp:. Les Exp: serait comme une convention ou??
Au lieu de faire une macro pour cela, pourquoi ne pas dire aux usagers comment procéder? A ) Sélection du texte à mettre en exposant dans une cellule B ) Clic droit sur la cellule, commande "Format de cellule" C ) Cocher la case à cocher "Exposant". Si tu tiens à une macro, celle-ci va mettre en "Exposant" le mot suivant l'expression "exp:". Il pourrait en avoir plusieurs dans la même cellule. SEUL le mot attaché suivant l'expression "exp:" sera mis en exposant, comme dans l'expression "exp:toto". Si tu veux mettre plusieurs mots en exposant dans la même cellule, chacun de ces mots doit être précédé par "exp:" '------------------------------------- Sub test() Dim D As Long, A As Long, F As Long With ActiveCell If .Value <> "" Then For A = 1 To Len(.Value) D = InStr(A, .Value, "exp", vbTextCompare) If D = 0 Then Exit Sub F = Application.Find(" ", .Value, D) With .Characters(Start:=D + 4, Length:=F - (D + 4)).Font .Superscript = True End With A = F D = 0 Next End If End With End Sub '------------------------------------- MichD
MichD
Un fichier exemple : https://www.cjoint.com/c/JBpqsZBxJFj MichD
Un fichier exemple : https://www.cjoint.com/c/JBpqsZBxJFj