OVH Cloud OVH Cloud

Dénombrer suivant format

6 réponses
Avatar
Fred C.
Je cherche une méthode pour compter le nb de cellule comportant 2
bordures inclinées ( en forme de croix)dans une selection de cellules.
...
Je n'ai pas le choix car la cellule peut être renseignée ou pas et avoir
un fond de couleur.

Merci d'avance ...;

6 réponses

Avatar
michdenis
Bonjour Fred,

Tu sélectionnes ladite plage et tu lances la macro.

Tu peux être plus spécifique dans ton critère de recherche
tel que je l'ai indiqué dans la procédure.

'-----------------------------------------
Sub TrouverFormat()

Dim Rg As Range, Nb As Long, Adr As String
Dim LeCellFormat As CellFormat, C As Range

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
With .Borders(xlDiagonalDown)
.LineStyle = xlContinuous
'Si nécessaire comme critère de recherche
'pour un format donné...
'.Weight = xlThick 'Épaisseur de la ligne
'.ColorIndex = xlAutomatic 'Couleur de la ligne
End With
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
'.Weight = xlThick
'.ColorIndex = xlAutomatic
End With
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = Selection
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set c = .Find(What:="", SearchFormat:=True)
If Not c Is Nothing Then
Adr = c.Address
Do
Nb = Nb + 1
'pour passer à la cellule suivante ...
Set c = .Find(What:="", after:=c, SearchFormat:=True)
Loop Until c.Address = Adr Or c Is Nothing
End If
End With
MsgBox Nb
Set Rg = Nothing: Set C = Nothing
End Sub
'-----------------------------------------


Salutations!



"Fred C." a écrit dans le message de news: dphide$2ug$
Je cherche une méthode pour compter le nb de cellule comportant 2
bordures inclinées ( en forme de croix)dans une selection de cellules.
...
Je n'ai pas le choix car la cellule peut être renseignée ou pas et avoir
un fond de couleur.

Merci d'avance ...;
Avatar
Daniel
Bonjour.
Essaie cette macro :

Sub test()
Dim c As Range, Ctr As Long
For Each c In Selection
If c.Borders(xlDiagonalDown).LineStyle <> xlLineStyleNone And _
c.Borders(xlDiagonalUp).LineStyle <> xlLineStyleNone Then
Ctr = Ctr + 1
End If
Next c
MsgBox "Nombre de cellules : " & Ctr
End Sub

Cordialement.
Daniel
"Fred C." a écrit dans le message de news:
dphide$2ug$
Je cherche une méthode pour compter le nb de cellule comportant 2 bordures
inclinées ( en forme de croix)dans une selection de cellules.
...
Je n'ai pas le choix car la cellule peut être renseignée ou pas et avoir
un fond de couleur.

Merci d'avance ...;


Avatar
Jacky
Bonsoir,

Ceci peut-être...
'-------
Sub jj()
For Each c In Selection
If c.Borders(xlDiagonalDown).LineStyle <> xlNone And
c.Borders(xlDiagonalUp).LineStyle <> xlNone Then nombre = nombre + 1
Next
MsgBox nombre
End Sub
'---------
Salutations
JJ

"Fred C." a écrit dans le message de news:
dphide$2ug$
Je cherche une méthode pour compter le nb de cellule comportant 2 bordures
inclinées ( en forme de croix)dans une selection de cellules.
...
Je n'ai pas le choix car la cellule peut être renseignée ou pas et avoir
un fond de couleur.

Merci d'avance ...;


Avatar
JB
Bonjour,

Sous forme de fonction:

Dans le tableur : =CompteCroix(C3:D8)

Dans un module: Alt+F11 puis Insertion/Module

Function CompteCroix(champ As Range)
Application.Volatile
CompteCroix = 0
For Each c In champ
If c.Borders(xlDiagonalUp).LineStyle <> xlLineStyleNone And _
c.Borders(xlDiagonalDown).LineStyle <> xlLineStyleNone Then
CompteCroix = CompteCroix + 1
Next c
End Function

Cordialement JB
Avatar
Fred C.
Merci, la solution de JB avec la fonction me va tout à fait.

Bravo et merci à tous

Fred
Avatar
AV
| Bravo et merci à tous

Je voudrais pas jouer les rabats-joie mais toute fonction perso visant à
dénombrer/additionner....des cellules en se basant sur le format n'est
ABSOLUMENT pas fiable puisque un changement de format n'entraine aucun recalcul
automatique !

AV