Excel-VBA recherche verticale du 1er mot gras

Résolu/Fermé
Signaler
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
-
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
-
Bonjour,
Je voudrais récupérer dans une colonne le 1er mot écrit en gras par une recherche verticale vers le haut.
J'explique: dans la colonne A j'ai des noms qui sont inscrit et certaine fois se sont des mots en gras, ainsi:
[A]
RdC
Salle video
salle chimie
Niv 1
Salle info
..
Je récupère dans un tableau en colonne H les noms de certaine salle mais je voudrais aussi récupérer le nom du niveau qui est en gras pour le mettre en colonne G, ainsi:
[G] [H]
RdC Salle

Quelqu'un peut-il m'écrire comment le faire en vba SVP ?

Merci

4 réponses

Messages postés
10616
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
28 novembre 2021
1 239
Bonjour,
Une petite procédure pour trouver les cellules en gras.
Il suffit de l'adapter selon vos besoin.
Sub trouverGras()
' boucle sur la colonne A de la ligne 50 à 1
' attention, commence par la fin
For c = 50 To 1 Step -1
If Cells(c, 1).Font.Bold = True Then
MsgBox "la cellule " & Cells(c, 1).Address & " est en gras"
End If
Next c
End Sub
--

Salutations.
Jean-Pierre
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
52
Bonsoir Le Pingou,

Je ne peux malheureusement pas adapter votre solution, se serait trop long pour l'expliquer (a cause du double clic), mais existe une formule qui ressemblerait à celle-ci, SVP ?

livide = Cells(Columns(1).Cells.Count, [“A”]).End(xlUp).Row - 1

Si j'essaie: motgras = cells(columns(1).font.bold, ["A"]).End(xlUp).Row -1

est-ce possible ?
Messages postés
10616
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
28 novembre 2021
1 239
Bonjour,
Désolé, pas de formule de ce type à ma connaissance.
Par contre mon code est facile à intégrer, vous devriez avoir ses lignes dans votre procédure:
livide = Cells(Columns(1).Cells.Count, ["A"]).End(xlUp).Row - 1
For c = livide To 1 Step -1
If Cells(c, 1).Font.Bold = True Then
MsgBox "la cellule " & Cells(c, 1).Address & " est en gras"
End If
Next c

Vous récupérez l'adresse de la cellule au niveau de la [MsgBox] !
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
52
Merci Le Pingou!