compter des lignes visibles

F

francis

Guest
Bonjour Philippe et le forum
Excuse moi pour ton nom, je devais être fatigué hier soir ou trop absorbé par mon application.
Ton idée de phrase est pas mal , je vais essayer de travailler dessus. Je te tiendrais au courant.
Merci
Francis
 
F

francis

Guest
Bonjour Philippe et le forum
Tout d’abord excuse-moi pour ton erreur sur ton nom. Je devais être trop fatigué hier soir ou trop absorbé par mon application.
Ton idée de phrase est pas mal, je vais travailler dessus et je te tiendrais au courant.
Encore merci pour ton aide
A+
Francis
 
F

francis

Guest
Bonjour Philippe et le forum
Tout d’abord excuse-moi pour ton erreur sur ton nom. Je devais être trop fatigué hier soir ou trop absorbé par mon application.
Ton idée de phrase est pas mal, je vais travailler dessus et je te tiendrais au courant.
Encore merci pour ton aide
A+
Francis
 
F

francis

Guest
Bonsoir le forum.
Je désire trier et compter des lignes suivant un critère de combobox.
Dans ces lignes, il y a des lignes rouges et des noires.
Que faut il ajouter dans l’application ci-dessous pour ne compter que les lignes visibles noires ?

J’ai fait les lignes suivantes :
' Range(Cells(11, 4), Cells(RealLastRow, 4)).Select 'sélectionne _
la dernière ligne de la colonne 'position' (RealLastRow)'
vLigneCachée = 0
For Each vcellule In Selection 'tri sur le n°de la pièce'
If InStr(vcellule.Formula, ComboBox1.Value) = 0 Then
vcellule.EntireRow.Hidden = True 'si ok on garde la ligne sinon on la masque'
vLigneCachée = vLigneCachée + 1 'calcul du nombre de Lignes Cachées'
End If
vligne = RealLastRow - 1 'décremente la dernière ligne(RealLastRow) _
de la colonne 'position''
If vligne = 1 Then Exit For 'ligne analysée de la colonne 'position''
Next '
Merci d’avance.
Francis
 

Hellboy

XLDnaute Accro
francis écrit:
Bonsoir le forum.
Je désire trier et compter des lignes suivant un critère de combobox.
Dans ces lignes, il y a des lignes rouges et des noires.
Que faut il ajouter dans l’application ci-dessous pour ne compter que les lignes visibles noires ?

J’ai fait les lignes suivantes :
' Range(Cells(11, 4), Cells(RealLastRow, 4)).Select 'sélectionne _
la dernière ligne de la colonne 'position' (RealLastRow)'
vLigneCachée = 0
For Each vcellule In Selection 'tri sur le n°de la pièce'
If InStr(vcellule.Formula, ComboBox1.Value) = 0 Then
vcellule.EntireRow.Hidden = True 'si ok on garde la ligne sinon on la masque'
vLigneCachée = vLigneCachée + 1 'calcul du nombre de Lignes Cachées'
End If
vligne = RealLastRow - 1 'décremente la dernière ligne(RealLastRow) _
de la colonne 'position''
If vligne = 1 Then Exit For 'ligne analysée de la colonne 'position''
Next '
Merci d’avance.
Francis

Bonjour

Dernière chose, est-ce que tu veut que les lignes VISIBLE en Noire soit compté APRÈS le traitement que tu effectue dans le code ci-haut ou AVANT.

Merci !

Phil ;)
 
F

francis

Guest
bonsoir Xldnaute et le forum
Prenons un exemple, après le tri j’ai 12 lignes noires et 15 lignes rouges. Avec l’application que j’ai faites, j’ai comme résultat : ' 27 '
Je voudrais avoir 12 ( car si j’ai 12 j’aurai le 15).
Donc c'est après.
Merci Xldnaute
Francis
 
H

Hellboy

Guest
Bonsoir Francis

En passant, regarde au-dessus de xlDnaude, tu verra c,est quoi le vrai nom que j'utilise sur le forum. :silly:

Je suis a la maison présentement et je n'ai pas installé Excel encore. :whistle: Mais je vais te répondre demain, c'est sur.

En attendant, sans avoir testé, je dirait que après cette partie de code:
If InStr(vcellule.Formula, ComboBox1.Value) = 0 Then
vcellule.EntireRow.Hidden = True 'si ok on garde la ligne sinon on la masque'
vLigneCachée = vLigneCachée + 1 'calcul du nombre de Lignes Cachées'
End If


j'utiliserais ceci:

if (vcellule.EntireRow.Hidden = False) and (vcellule.font.color =3) then
conteur_ de_ cellule_ a_ police_ noire = conteur_ de_ cellule_ a_ police_ noire + 1
end if

et reste de ton code.

Philippe
 

Hellboy

XLDnaute Accro
Hellboy écrit:
Bonsoir Francis

En passant, regarde au-dessus de xlDnaude, tu verra c,est quoi le vrai nom que j'utilise sur le forum. :silly:

Je suis a la maison présentement et je n'ai pas installé Excel encore. :whistle: Mais je vais te répondre demain, c'est sur.

En attendant, sans avoir testé, je dirait que après cette partie de code:
If InStr(vcellule.Formula, ComboBox1.Value) = 0 Then
vcellule.EntireRow.Hidden = True 'si ok on garde la ligne sinon on la masque'
vLigneCachée = vLigneCachée + 1 'calcul du nombre de Lignes Cachées'
End If


j'utiliserais ceci:

if (vcellule.EntireRow.Hidden = False) and (vcellule.font.color =3) then
conteur_ de_ cellule_ a_ police_ noire = conteur_ de_ cellule_ a_ police_ noire + 1
end if

et reste de ton code.

Philippe

Bonjour Francis

Je veux corriger une partie du code que je t'ai suggéré hier:


Font.ColorIndex = 0
Code:
if (vcellule.EntireRow.Hidden = False) and (vcellule.Font.ColorIndex = 0) then
conteur_ de_ cellule_ a_ police_ noire =    conteur_ de_ cellule_ a_ police_ noire + 1
end if

Philippe

Message édité par: Hellboy, à: 27/04/2005 15:38
 

Francis

XLDnaute Junior
Bonsoir Philippe et le forum.
Suite à ton aide, j’ai essayé ta phrase et je n’y suis pas arrivé. J’ai complètement changé d’idée et suis parti sur ' SpecialCells(xlCellTypeVisible ' et ça donne ceci qui marche bien.
Il y a sûrement plus simple et plus beau. Si quelqu'un veut me corriger, je suis preneur.
Merci encore pour ton aide.
Francis

Sub tri()
valtest = 'bureau'

lignetotal = 0
lignerouge = 0
Derligne = Cells(rows.Count, 'f').End(xlUp).Row
Range(Cells(11, 2), Cells(Derligne, 2)).EntireRow.Hidden = True
Application.ScreenUpdating = False

'trie les articles
For l = Derligne To 11 Step -1
MotCherche = Application.Find(valtest, Cells(l, 4))
If Not (IsError(MotCherche)) Then
lignetotal = lignetotal + 1
Cells(l, 4).EntireRow.Hidden = False
End If
Next
'compte et cache les lignes rouges
Set MaPlage = Range(Cells(11, 2), Cells(Derligne, 2))
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
For Each cell In MaPlage
If cell.Font.ColorIndex = 3 Then
lignerouge = lignerouge + 1
cell.EntireRow.Hidden = True
End If
Next

'reaffiche les lignes rouges
For Each cell In MaPlage
If cell.Font.ColorIndex <> 1 Then
cell.EntireRow.Hidden = False
End If
Next


[e6] = lignetotal & ' articles au total'
[e7] = lignerouge & ' articles rouges'
[e8] = lignetotal - lignerouge & ' articles noirs'
End Sub
 

Hellboy

XLDnaute Accro
Francis écrit:
Bonsoir Philippe et le forum.
Suite à ton aide, j’ai essayé ta phrase et je n’y suis pas arrivé. J’ai complètement changé d’idée et suis parti sur ' SpecialCells(xlCellTypeVisible ' et ça donne ceci qui marche bien.
Il y a s&ucirc;rement plus simple et plus beau. Si quelqu'un veut me corriger, je suis preneur.
Merci encore pour ton aide.
Francis

Sub tri()
valtest = 'bureau'

lignetotal = 0
lignerouge = 0
Derligne = Cells(rows.Count, 'f').End(xlUp).Row
Range(Cells(11, 2), Cells(Derligne, 2)).EntireRow.Hidden = True
Application.ScreenUpdating = False

'trie les articles
For l = Derligne To 11 Step -1
MotCherche = Application.Find(valtest, Cells(l, 4))
If Not (IsError(MotCherche)) Then
lignetotal = lignetotal + 1
Cells(l, 4).EntireRow.Hidden = False
End If
Next
'compte et cache les lignes rouges
Set MaPlage = Range(Cells(11, 2), Cells(Derligne, 2))
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
For Each cell In MaPlage
If cell.Font.ColorIndex = 3 Then
lignerouge = lignerouge + 1
cell.EntireRow.Hidden = True
End If
Next

'reaffiche les lignes rouges
For Each cell In MaPlage
If cell.Font.ColorIndex <> 1 Then
cell.EntireRow.Hidden = False
End If
Next


[e6] = lignetotal & ' articles au total'
[e7] = lignerouge & ' articles rouges'
[e8] = lignetotal - lignerouge & ' articles noirs'
End Sub

Bonjour Francis

C'est bonne aproche que tu as pris. Je ne te l'ai pas suggéré, parce que je voulais respecter le plus possible le code que tu avais commencé.

Y as quelque chose qui me tracasse dans la dernière partie de ton code. La variable MaPlage, je ne suis pas sur si elle tien compte des nouvelles lignes que tu a caché dans la boucle précèdente!!! Je croit que tu dois la réinitialiser avant de rentrer une autre fois dans ta dernière boucle. Et aussi, je suis un peut confus sur les lignes que tu comptes maintenant. Je croyais que tu voulais compter les lignes noires et pas les rouges ???


Bonne journée

Philippe
 

Statistiques des forums

Discussions
312 436
Messages
2 088 403
Membres
103 839
dernier inscrit
Patounet66