Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraire nom en gras ok mais avec séparateur ?

6 réponses
Avatar
jipeache
bonjour
tr=E8s "novice" en macro ;-))) , je bute sur celle ci :

Sub copieGras()
For Each c In Selection

For i =3D 1 To c.Characters.Count
If c.Characters(i, 1).Font.FontStyle =3D "Gras" Then _
mavaleur =3D mavaleur & c.Characters(i, 1).Text
Next

c=2EOffset(0, 1) =3D mavaleur
mavaleur =3D ""
Next

End Sub

qui m'avait =E9t=E9 transmise pour extraire les noms en gras dans une
cellule.
Elle fonctionne mais tous les noms sont coll=E9s, or je souhaite avoir
une s=E9paration entre les noms (espace, virgule, peu importe). Comment
faire ? que rajouter ou nouvelle macro ?
merci d'avance

6 réponses

Avatar
JpPradier
Bonjour jipeache

Peux-tu détailler un peu plus ou donner un petit exemple ?

j-p
Avatar
jipeache
Ok. en G1 par ex j'ai :
"Armentières-sur-Avre : IPCAR Odile, élevage cunicole (1979).
Arnières-sur-Iton : CERALIT/Fabrication de produits céramiques, SARL,
extension de l'activité (1978). Asnières : DARDEL Jean,
agrandissement de la pisciculture (1977-1978) ; GAUTIER-LEVASSEUR
Fromageries, SA, transfert (1979-1980). Avrilly : PELEY Michel,
exploitation d'un chenil de garderie (1975-1980). Bâlines : DUMORTIER
Roger, création d'un élevage porcin (1977-1978) etc...etc..."
Les noms de commune (avant les ":") sont en gras, exemple : Asnières
Avrilly etc...
je veux les recopier en H1 pour créer un index nom de commune.
la macro utilisée me donne "AsnièresAvrllyBâlines ..." et je
souhaiterais "Asnières Avrilly Bâlines..." ou "Asnières,Avrilly,..."
Il me faut une séparation entre les noms de commune obtenus.
J'ai un gros gros fichier à traiter...
Merci
Avatar
JpPradier
Ok, si j'ai bien compris :

Sub copieGras()

separateur= ","
For Each c In Selection

For i = 1 To c.Characters.Count
If c.Characters(i, 1).Font.FontStyle = "Gras" Then _
mavaleur = mavaleur & c.Characters(i, 1).Text & separateur
Next

mavaleur=left(mavaleur,len(mavaleur)-1)
c.Offset(0, 1) = mavaleur
mavaleur = ""
Next

End Sub


j-p
Avatar
jipeache
Merci, mais cela ne fonctionne pas, j'obtiens ceci : (copier-coller)
"A,r,m,e,n,t,i,è,r,e,s,-,s,u,r,-,A,v,r,e,A,r,n,i,è,r,e,s,-,s,u,r,-,I,t, o,n,
,A,s,n,i,è,r,e,s,A,v,r,i,l,l,y,B,â,l,i,n,e,s," etc...
Bizarre...
Avatar
JpPradier
Effectivement, j'ai modifié comme cela :

Sub copieGras()

For Each c In Selection
separateur=""
For i = 1 To c.Characters.Count
If c.Characters(i, 1).Font.FontStyle = "Gras" Then
mavaleur = mavaleur & separateur & c.Characters(i, 1).Text
separateur=""

else
separateur=","
end if
Next

mavaleur=left(mavaleur,len(mavaleur)-1)
c.Offset(0, 1) = mavaleur
mavaleur = ""
Next

End Sub


j-p
Avatar
jipeache
Ok, merci beaucoup, ça fonctionne.
Seul petit bémol, pour pinailler : dans chaque cellule cible, la
dernière lettre de la dernière commune est effacée ; pas dramatique,
je la remets après...
Encore merci, cela va me faciliter le boulot et me permettre de créer
un bel index de recherche.