OVH Cloud OVH Cloud

Faire la somme des cellules dont le contenu n'est pas en gras

2 réponses
Avatar
Papiauche
Bonjour,

dans une feuille, je mets en gras des cellules dont la valeur est plausible,
en italique celles dont la valeur est éventuelle et sans enrichissement
celles dont la valeur est certaine.
J'ai écrit les deux fonctions

Function estGras(cellule As Range)
Application.Volatile
If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End Function
Function estItalique(cellule As Range)
Application.Volatile
If cellule.Font.Italic Then estItalique = 1 Else estItalique = 0
End Function

Je souhaite faire les trois sommes par ligne et par colonne
normal
normal ou gras
tout (normal ou gras ou ital).

Est-il possible de réaliser par fonction ou fonction matricielle?
J'ai du commettre une erreur dans la fonction
estgras(a1:c5) me renvoie 1 si toutes les cellules sont en gras, ce qui
n'arrange pas mes affaires.

Merci d'avance

2 réponses

Avatar
papou
Bonjour
Modifie tes deux fonctions en partant de cette modification :
If cellule.Cells.Count > 1 Then
Dim y&
For Each c In cellule.Cells
If c.Font.Bold Then y = y + 1
Next c
estGras = y
Else: If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End If

Cordialement
Pascal

"Papiauche" a écrit dans le message de news:
%
Bonjour,

dans une feuille, je mets en gras des cellules dont la valeur est
plausible, en italique celles dont la valeur est éventuelle et sans
enrichissement celles dont la valeur est certaine.
J'ai écrit les deux fonctions

Function estGras(cellule As Range)
Application.Volatile
If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End Function
Function estItalique(cellule As Range)
Application.Volatile
If cellule.Font.Italic Then estItalique = 1 Else estItalique = 0
End Function

Je souhaite faire les trois sommes par ligne et par colonne
normal
normal ou gras
tout (normal ou gras ou ital).

Est-il possible de réaliser par fonction ou fonction matricielle?
J'ai du commettre une erreur dans la fonction
estgras(a1:c5) me renvoie 1 si toutes les cellules sont en gras, ce qui
n'arrange pas mes affaires.

Merci d'avance




Avatar
Papiauche
Salut je m'en suis sorti comme ça en créant les trois fonctions

Function CompteGras(champ As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Font.Bold Then temp = temp + 1
Next c
CompteGras = temp
End Function

Function estGras(cellule As Range)
Application.Volatile
If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End Function

Function SommeGras(champ As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Font.Bold Then temp = temp + c.Value
Next c
SommeGras = temp
End Function

Par curiosité, je cherche encore comment on peut écrire la fonction est gras
pour faire que
somme(a1:a5*estgras(a1:a5))
donne la somme des cellules en gras.

En tous cas merci beaucoup c'est dépanné
"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Modifie tes deux fonctions en partant de cette modification :
If cellule.Cells.Count > 1 Then
Dim y&
For Each c In cellule.Cells
If c.Font.Bold Then y = y + 1
Next c
estGras = y
Else: If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End If

Cordialement
Pascal

"Papiauche" a écrit dans le message de news:
%
Bonjour,

dans une feuille, je mets en gras des cellules dont la valeur est
plausible, en italique celles dont la valeur est éventuelle et sans
enrichissement celles dont la valeur est certaine.
J'ai écrit les deux fonctions

Function estGras(cellule As Range)
Application.Volatile
If cellule.Font.Bold Then estGras = 1 Else estGras = 0
End Function
Function estItalique(cellule As Range)
Application.Volatile
If cellule.Font.Italic Then estItalique = 1 Else estItalique = 0
End Function

Je souhaite faire les trois sommes par ligne et par colonne
normal
normal ou gras
tout (normal ou gras ou ital).

Est-il possible de réaliser par fonction ou fonction matricielle?
J'ai du commettre une erreur dans la fonction
estgras(a1:c5) me renvoie 1 si toutes les cellules sont en gras, ce qui
n'arrange pas mes affaires.

Merci d'avance