Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
j'ai récupéré un fichier de boulot (1750 lignes) dans lequel je dois extraire d'une colonne, le texte barré (présent dans certaines lignes), pour le copier dans une autre colonne.
je poste un fichier modèle.
je n'ai pas trouvé de sujet correspondant.
avec quel fonction pourrait on différencier le texte barré?
merci d'avance
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libreoffice Version : 7.2.7.2.M8 (x64) sous windows 10
contrainte boulot
Il n'existe pas de fonction native permettant un tel exercice. Il faudra passer par une macro pour repérer les textes barré afin de les extraire vers une autre colonne.
critoune a écrit : ↑30 déc. 2022 16:42
Ah ok, bon je vais chercher du côté des macros lundi prochain.
Cela risque de ne pas être si facile que cela car dans calc je crois que l'on ne peut pas rechercher quelque chose par attribut.
Peut-être une piste :
Copier la cellule dans le presse-papier.
Coller dans un document writer vierge (les attributs sont présents).
Faire une recherche sur l'attribut barré.
Récupérer ce qui est trouvé. Le copier dans le presse-papier.
Effacer le document writer vierge.
Coller le presse-papier dans la cellule désirée du document calc.
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Bonjour,
Je n'ai pas les connaissances suffisantes pour vous aider dans ce domaine, mais vous trouverez ici une solution de Piaf sur la recherche de caractères barrés dans un fichier Calc mais qui concerne des cellules entières.
Dernière modification par Michel JANZEF le 31 déc. 2022 11:07, modifié 1 fois.
AOo 4.1.16 (Oracle JRE x86 - 1.8.0_471) et LibO 25.8.6.2 (Oracle JRE x64 - 1.8.0_471) - Windows 11 Famille 25H2 (26200.6725) 64 bits
Jurassic Pork a écrit : ↑31 déc. 2022 08:36
Cela risque de ne pas être si facile que cela car dans calc je crois que l'on ne peut pas rechercher quelque chose par attribut.
L'objet curseur (maCellule.createTextCursor) dispose d'une propriété CharCrossedOut. Du coup :
à peaufiner pour gérer plusieurs occurrences de texte barré dans la même cellule
Ajout : Code optimisé pour gérer plusieurs occurrences de texte barré dans la même cellule (plus compact que le précédent que j'ai volontairement supprimé)
Sub Main
x = 1
oSheet = Thiscomponent.Sheets(0)
cell = oSheet.GetCellByPosition(0,x)
While cell.String <> ""
bavard = ""
otc = cell.createTextCursor
otc.gotoStart(False)
Do While otc.goRight(1,False)
if otc.CharCrossedOut then
otc.goLeft(1,False) : otc.goRight(1,True)
Do While otc.CharCrossedOut
if not otc.goRight(1,True) then
otc.goRight(1,True)
exit do
end if
Loop
bavard = bavard & otc.string
otc.string = ""
end if
loop
oSheet.GetCellByPosition(1,x).SetString(bavard)
x = x + 1
cell = oSheet.GetCellByPosition(0,x)
Wend
msgBox("Terminé !")
End Sub
Avant.png
Après.png
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.