Bonjour,
J’aimerai pouvoir avec un macro transformer par exemple le mot “caractère” en “CaraCtère” contenu dans une cellule de mon tableur à l’aide d’une macro basic.
Ça fait 2 jours que je cherche sur différent forum et … je cale.
Merci de votre aide.
Pourquoi ne pas utiliser la solution évidente via Rechercher & Remplacer :
Rechercher : c
Remplacer par : C
?
def upper_c(*_):
u_char = (c:='c').upper()
cell = XSCRIPTCONTEXT.getDocument().CurrentSelection
cell.String = cell.String.replace(c, u_char)
Oui, mais non…
J’aurai dû dire “mettre en forme” un ou plusieurs caractères d’un texte.
Exemple : cAracTèrE
Merci pour ton aide mais je ne suis pas encore passé à Python
je préfèrerai une solotion en Basic
Désolé, je ne parle pas français

def upper_aet(*_):
uc_aet = str.maketrans('aet', 'AET')
cell = XSCRIPTCONTEXT.getDocument().CurrentSelection
cell.String = cell.String.translate(uc_aet)
Je crois avoir trouvé la solution
Sub MF_Caractere
Dim oCell As Object , oCursor As Object, i%
oCell=ThisComponent.CurrentSelection
oCursor = oCell.createTextCursorByRange(oCell)
For i = 1 To Len(oCell.String)
With oCursor
.goToStart(False)
.goRight(1,true) 'déplace le curseur d'un (1) )caractere vers la droite et selectionne
'Modifie le formatage du caractère
Select Case .String
Case chr(216),"C"
.CharHeight = "20"
Case 5,7,9
.CharEscapement=33
.CharEscapementHeight=50
End Select
.goLeft(0,false)
Next
End With
End Sub
Merci quand même
Bonjour,
Peut-être.
Mais surtout, avez-vous compilé votre macro ? Pour l’instant, un message d’erreur apparaît :
Erreur de syntaxe BASIC.
Symbole inattendu : Next.
oups !
Sub MF_Caractere
Dim oCell As Object , oCursor As Object, i%
oCell=ThisComponent.CurrentSelection
oCursor = oCell.createTextCursorByRange(oCell)
For i = 1 To Len(oCell.String)
With oCursor
.goToStart(False)
.goRight(1,true) 'déplace le curseur d'un (1) )caractere vers la droite et selectionne
'Modifie le formatage du caractère
Select Case .String
Case chr(216),"C"
.CharHeight = "20"
Case 5,7,9
.CharEscapement=33
.CharEscapementHeight=50
End Select
.goLeft(0,false)
End With
Next
End Sub
Bonjour,
La macro permet de modifier les propriétés du premier caractère uniquement…
heu non… dans un texte avec plusieurs “C” par exemple “ABCDEC5ACD” les lettres “C” sont bien agrandies
du moins pour moi c’est bon
Sub MF_Caractere
Dim oCell As Object , oCursor As Object, i%
oCell=ThisComponent.CurrentSelection
oCursor = oCell.createTextCursorByRange(oCell.Start)
For i = 1 To Len(oCell.String)
With oCursor
.goRight(1,true) 'déplace le curseur d'un (1) )caractere vers la droite et le selectionne
'Modifie le formatage du caractère
Select Case .String
Case "C"
.CharHeight = "20"
Case 5,7,9
.CharEscapement=33
.CharEscapementHeight=50
End Select
.goLeft(0,false) 'fixe le curseur pour une nouvelle sélection
End With
Next i
End Sub
