Comptage de ligne
Résolu
Akalia
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai beau me torturer l'esprit, chercher sur des sites, j'ai toujours autant de mal avec les comptages de lignes avec des conditions.
J'ai plusieurs tris à faire sur plusieurs colonnes, mais pour récupérer la valeur de ligne. Sur mon exemple, je veux connaître le nombre de lignes qui ont comme condition les suivantes:
Colonne D = GMR.GM400. et colonne E = Ordre de fabrication. Ensuite la même chose avec
Colonne D = GMR.GM400. et colonne E = OF non standard. Puis le total sur les GM400:
Colonne D = GMR.GM400.
Les valeurs des lignes je veux les renvoyer dans la colonne K sur les cellules qui leur sont dédiées: pour le 1er GM400 en standard (qui correspond à ordre de fabrication) pour le 2e GM400 en non standard(qui correspond à OF non standard) et le dernier tout les GM400.
Mon idée est de passer par de la condition, mais je n'arrive strictement pas à récupérer ces valeurs, sachant que je dois aussi le faire sur d'autres GM.
Je procède comme cela.
Option explicit
------------------
'Déclaration des variables
Dim Statut, Stat, TypOF As String
Dim La_date As Date
Dim dernligneBDDCommune, dernligneBDDOFND, Idx, Lg, Lig, Nbre, NbLgOFND As Integer, T_statut
Dim TypGM As String
'Cache les traitements et défilements
Application.CutCopyMode = False
Application.ScreenUpdating = False
'Définition des variables pour la première et dernière ligne
Lig = 1
dernligneBDDOF = Sheets("BDD OF").Range("D" & Rows.Count).End(xlUp).Row
'Boucle sur les lignes
For Lig = 2 To dernligneBDDOF
'Définition des variables sur les colonnes
TypOF = Sheets("BDD Commune").Range("AP" & Lig).Value
TypGM = Sheets("BDD Commune").Range("T" & Lig).Value
If (TypOF = "Ordre de fabrication" And TypGM = "GMR.GM400." Then
'Ici Il faut que je réalise le comptage et la récupération du nombre de ligne respectant la condition au dessus
End If
Next
End Sub
Les codes qui suivent me permettaient de faire le comptage après un copier coller pour le 3e ou pour récupérer le nombre de lignes par rapport au total sur la BDD pour le 2e code.
--------------------------------------------------------------
'Comptage et récupération du nombre de ligne pour les OF standard et non standard
dernligneBDDOFND = Sheets("BDD OF FF").Range("B" & Rows.Count).End(xlUp).Row
T_statut = Application.Transpose(Range("E2:E" & dernligneBDDOFND))
'Boucle pour reporter compter et reporter les données
For cptr = 1 To 2
Statut = Choose(cptr, "Ordre de fabrication", "OF non standard")
For Idx = 1 To UBound(T_statut)
If T_statut(Idx) = Statut Then Nbre = Nbre + 1
Next
With Sheets("Indicateur OF FF")
.Cells(8 + ((cptr - 1) * 3), "D") = Nbre
Nbre = 0
End With
Next
---------------------------------------------------------------
'Récupération du nombre total de ligne des OF non déclarés en FF
NbLgOFND = Sheets("BDD OF FF").Range("B1", [B1].End(xlDown)).Rows.Count
'Copie dans l'indicateur des OF
Sheets("Indicateur OF FF").Select
Range("D14").Select
Selection.Value = NbLgOFND - 1
Selection.Copy
Le problème c'est qu'il faut soit que j'ai la façon de compter et récupérer le nombre de lignes après la condition du tout premier code, soit que j'arrive à mettre la condition avant le 2e code.
J'espère avoir été clair, je bloque sur ce qui me dépannerait sûrement de tout.
Voici le fichier visuellement pour montrer comment s'agencent les éléments, mais le code dans les modules et userform n'est pas bon, ce n'était que pour montrer visuellement.
https://www.cjoint.com/?DHgpTGcwWoN
C'est un peu énervant car j'arrive à faire beaucoup de trucs sympas et je bloque trop souvent sur des petites subtilités :(
J'ai beau me torturer l'esprit, chercher sur des sites, j'ai toujours autant de mal avec les comptages de lignes avec des conditions.
J'ai plusieurs tris à faire sur plusieurs colonnes, mais pour récupérer la valeur de ligne. Sur mon exemple, je veux connaître le nombre de lignes qui ont comme condition les suivantes:
Colonne D = GMR.GM400. et colonne E = Ordre de fabrication. Ensuite la même chose avec
Colonne D = GMR.GM400. et colonne E = OF non standard. Puis le total sur les GM400:
Colonne D = GMR.GM400.
Les valeurs des lignes je veux les renvoyer dans la colonne K sur les cellules qui leur sont dédiées: pour le 1er GM400 en standard (qui correspond à ordre de fabrication) pour le 2e GM400 en non standard(qui correspond à OF non standard) et le dernier tout les GM400.
Mon idée est de passer par de la condition, mais je n'arrive strictement pas à récupérer ces valeurs, sachant que je dois aussi le faire sur d'autres GM.
Je procède comme cela.
Option explicit
------------------
'Déclaration des variables
Dim Statut, Stat, TypOF As String
Dim La_date As Date
Dim dernligneBDDCommune, dernligneBDDOFND, Idx, Lg, Lig, Nbre, NbLgOFND As Integer, T_statut
Dim TypGM As String
'Cache les traitements et défilements
Application.CutCopyMode = False
Application.ScreenUpdating = False
'Définition des variables pour la première et dernière ligne
Lig = 1
dernligneBDDOF = Sheets("BDD OF").Range("D" & Rows.Count).End(xlUp).Row
'Boucle sur les lignes
For Lig = 2 To dernligneBDDOF
'Définition des variables sur les colonnes
TypOF = Sheets("BDD Commune").Range("AP" & Lig).Value
TypGM = Sheets("BDD Commune").Range("T" & Lig).Value
If (TypOF = "Ordre de fabrication" And TypGM = "GMR.GM400." Then
'Ici Il faut que je réalise le comptage et la récupération du nombre de ligne respectant la condition au dessus
End If
Next
End Sub
Les codes qui suivent me permettaient de faire le comptage après un copier coller pour le 3e ou pour récupérer le nombre de lignes par rapport au total sur la BDD pour le 2e code.
--------------------------------------------------------------
'Comptage et récupération du nombre de ligne pour les OF standard et non standard
dernligneBDDOFND = Sheets("BDD OF FF").Range("B" & Rows.Count).End(xlUp).Row
T_statut = Application.Transpose(Range("E2:E" & dernligneBDDOFND))
'Boucle pour reporter compter et reporter les données
For cptr = 1 To 2
Statut = Choose(cptr, "Ordre de fabrication", "OF non standard")
For Idx = 1 To UBound(T_statut)
If T_statut(Idx) = Statut Then Nbre = Nbre + 1
Next
With Sheets("Indicateur OF FF")
.Cells(8 + ((cptr - 1) * 3), "D") = Nbre
Nbre = 0
End With
Next
---------------------------------------------------------------
'Récupération du nombre total de ligne des OF non déclarés en FF
NbLgOFND = Sheets("BDD OF FF").Range("B1", [B1].End(xlDown)).Rows.Count
'Copie dans l'indicateur des OF
Sheets("Indicateur OF FF").Select
Range("D14").Select
Selection.Value = NbLgOFND - 1
Selection.Copy
Le problème c'est qu'il faut soit que j'ai la façon de compter et récupérer le nombre de lignes après la condition du tout premier code, soit que j'arrive à mettre la condition avant le 2e code.
J'espère avoir été clair, je bloque sur ce qui me dépannerait sûrement de tout.
Voici le fichier visuellement pour montrer comment s'agencent les éléments, mais le code dans les modules et userform n'est pas bon, ce n'était que pour montrer visuellement.
https://www.cjoint.com/?DHgpTGcwWoN
C'est un peu énervant car j'arrive à faire beaucoup de trucs sympas et je bloque trop souvent sur des petites subtilités :(
A voir également:
- Comptage de ligne
- Partage de photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Formulaire en ligne de meta - Guide
- Site de vente en ligne particulier - Guide
3 réponses
Bonjour,
ai pas tres bien compris vos explications, vous ai modifie votre fichier pour remplir les cellules colonne K du tableau de droite
https://www.cjoint.com/c/DHgrdg0IW5h
a vous de voir.
A+
ai pas tres bien compris vos explications, vous ai modifie votre fichier pour remplir les cellules colonne K du tableau de droite
https://www.cjoint.com/c/DHgrdg0IW5h
a vous de voir.
A+