XL 2019 Macro suppr. esp. gras et encadrer mots en gras par signe

Vince35000

XLDnaute Nouveau
Bonjour à tous,

Je travaille sur un gros fichier excel avec de multiples colonnes comprenant des mots en gras.

Afin de faciliter la reconnaissance des mots gras dans le cadre d'un futur publipostage (qui ne conserve pas les formats...), je souhaite réaliser une macro me permettant de réaliser les 2 actions suivantes sur tout le classeur, exemple de texte à gauche, actions souhaitées à droite :

Inflorescence 5-15 cm restant étalée même après floraison (rameaux primaires, secondaires et pédicelles des épillets), ≈ égaux ; épillets 2-3,5 mm à 1 fleur, pédicellés.=> remplacer tous les espaces en gras par des espaces non gras
=> faire débuter tous les mots en gras par un caractère type "<"
Ce doit être une formalité pour la grande majorité d'entres-vous, mais je n'y connais rien en VBA...

Merci beaucoup pour votre aide !!!!
 

Vince35000

XLDnaute Nouveau
Mes bonshommes qui sourient ont disparus dee ma réponse :):):)
re
d'accords c'est plus complexe tu fait plusieurs passe c'est ca ?

Pardon, je ne comprends pas "plusieurs passes". J'ai besoin de distinguer ces mots en gras pour pouvoir les sélectionner sous Word (rechercher mots encadrés par "signe") pour pouvoir les remettre en gras. Ma conversion d'excel en publipostage supprime le format en gras et j'en aurais un paquet à remettre à la main o_O

N'hésitez pas si je ne suis pas clair.

Merci !
 

fanch55

XLDnaute Barbatruc
Bonjour à tous .
Salut Patrick.

Je ne comprends pas trop la problèmatique :

Si on copie la cellule complète Excel et qu'on la colle dans Word en tant que format Html (option par défaut), tous les formats sont conservés .

Si on ne copie que le texte de la cellule, effectivement ce texte est copié sans mise en forme dans Word .

Comment faites-vous le copier coller entre Excel et Word ?
 

Vince35000

XLDnaute Nouveau
Bonjour, mon Excel mis en forme passe par un publipostage Pdf par publisher qui élimine la mise en forme gras. Je compte transformer le Pdf avec les repères des mots en gras issus d'excel, en Word, puis rechercher les repères et remettre en gras.
En espérant être clair o_O
 

fanch55

XLDnaute Barbatruc
Oki, vous ne faites pas le publipostage par Word mais par Publisher.
Peut-être par exporter/créer un document Pdf/Xps ?

Je vais peut-être paraitre obtus, ou il y a un fil que je ne vois pas
Comment collez-vous les données d'Excel dans publisher ?
 

fanch55

XLDnaute Barbatruc
Sinon, le fichier de Patrick est bien ce qu'il vous faut, à vous de choisir les symboles :
Private Sub CommandButton1_Click()
Symbole_Début = "{"
Symbole_Fin = "}"
For Each cel In ActiveSheet.UsedRange.Cells
cel.Replace Symbole_Début, ""
cel.Replace Symbole_Fin, ""
fin = 0: deb = 0
For i = 1 To Len(cel.Value)
If deb = 0 And cel.Characters(i, 1).Font.Bold = True Then deb = i
If deb > 0 And cel.Characters(i, 1).Font.Bold = 0 Then fin = i - deb: Exit For
Next
If deb > 0 And fin > 0 Then
If Mid(cel, deb, 1) = " " Then deb = deb + 1
cel.Replace Mid(cel, deb, fin), Symbole_Début & Mid(cel, deb, fin) & Symbole_Fin
cel.Characters(deb, fin + 1).Font.Bold = True
End If
Next
End Sub
 

Vince35000

XLDnaute Nouveau
Bonjour, j'ai pu faire un test et cela fonctionne presque parfaitement sauf pour des cas comme ci-dessous :

- Plusieurs textes en gras dans la même cellule, seul le premier est pris en compte et le format gras des suivants est supprimé :

Texte initial Texte post macro
Inflorescence ample et lâche ≈ unilatérale, à longs rameaux étalés portant chacun 1-8 épillets, réunis par (1-)2(-3) à écaille ciliée à leur base ; épillets 2-3,5 cm, étroitement allongés et rugueux, pendants, à 6-8 fleurs toujours imbriquées.Inflorescence ample et lâche ≈ unilatérale, à {longs rameaux étalés} portant chacun 1-8 épillets, réunis par (1-)2(-3) à écaille ciliée à leur base ; épillets 2-3,5 cm, étroitement allongés et rugueux, pendants, à 6-8 fleurs toujours imbriquées.

- Un autre exemple ci-dessous que je ne m'explique pas, seul un mot est pris en compte dans une suite de texte en gras :
Glume infér. à plusieurs nervures ; lemmes faibl. bidentées ≈ l'arête droite, certaines insérées à > 1,5 mm du sommet ; palea ≈ lemme.Glume infér. à plusieurs nervures ; lemmes faibl. bidentées ≈ l'arête droite, {certaines} insérées à > 1,5 mm du sommet ; palea ≈ lemme.

Je vous joins un fichier avec des exemples variés de ce que j'ai dans mon document pour test si possible.

Merci encore de votre aide :D!!, ce n'est pas évident o_O
 

Pièces jointes

  • Ex_textes.xlsm
    13 KB · Affichages: 2

fanch55

XLDnaute Barbatruc
Bonsoir,

Glume infér. à plusieurs nervures ; lemmes faibl. bidentées ≈ l'arête droite, certaines insérées à > 1,5 mm du sommet ; palea ≈ lemme.Glume infér. à plusieurs nervures ; lemmes faibl. bidentées ≈ l'arête droite, {certaines} insérées à > 1,5 mm du sommet ; palea ≈ lemme.
L'espace originel entre certaines et insérées n'est pas en gras,

A tester ( avec parcimonie car comme un grand nombre de cellules bien remplies sont à traiter caractère par caractère, l'exécution est relativement longue )
La sub à exécuter est TEST
 

Pièces jointes

  • Copie de Ex_textes.xlsm
    26.7 KB · Affichages: 9
Dernière édition:

Statistiques des forums

Discussions
312 151
Messages
2 085 783
Membres
102 973
dernier inscrit
docpod