Macro pour compter le nombre d'apparence d'un caractère
Yasn10
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour ,
Je souhaiterai avoir une macro qui calcule le nombre de fois qu'un mot "NT" figure chaque mois , sachant qu'il y a des cellules vides dans la colonnes des mois ,
Colonne F//Colonne G
01/2016------NT
vide-----------
vide-----------
02/2016------NT
vide-----------NT
vide-----------
02/2016------NT
vide-----------
vide-----------
03/2016------NT
vide
vide
03/2016------NT
vide-----------NT
vide-----------NT
'
'
'
J'ai essayé pas mal de formules et macros mais ça ne me calcule que les NT qui correspondent à une cellule remplie "02/2016" par exemple
Merci et Bonne journée/Soirée à tout le monde
Je souhaiterai avoir une macro qui calcule le nombre de fois qu'un mot "NT" figure chaque mois , sachant qu'il y a des cellules vides dans la colonnes des mois ,
Colonne F//Colonne G
01/2016------NT
vide-----------
vide-----------
02/2016------NT
vide-----------NT
vide-----------
02/2016------NT
vide-----------
vide-----------
03/2016------NT
vide
vide
03/2016------NT
vide-----------NT
vide-----------NT
'
'
'
J'ai essayé pas mal de formules et macros mais ça ne me calcule que les NT qui correspondent à une cellule remplie "02/2016" par exemple
Merci et Bonne journée/Soirée à tout le monde
A voir également:
- Macro pour compter le nombre d'apparence d'un caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Caractere speciaux - Guide
- Créer un compte google - Guide
2 réponses
Bonjour,
Essayez ceci
https://www.cjoint.com/c/GLkizyyIuhw
J'utilise les colonnes J et K pour les résultats.
Cdlt
Essayez ceci
https://www.cjoint.com/c/GLkizyyIuhw
J'utilise les colonnes J et K pour les résultats.
Cdlt
Merci beaucoup !!
j'ai testé mais on me demande de définir la variable "i"
Sub Comptage()
Dim DerLig As Long, DerLigFil As Long, L As Long
Application.ScreenUpdating = False
Columns("J:K").ClearContents 'on efface les précédents résultats
DerLig = [G100].End(xlUp).Row
'On récupère la liste des mois a l'aide d'un filtre avancé que l'on colle en colonne J
Range("F1:F" & DerLig).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True
DerLigFil = [F100].End(xlUp).Row 'Dernière Ligne du filtre
'on effectue un tri ascendant pour exclure les cellules vides
Range("J2:J" & DerLigFil).Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("J2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("J2:J" & DerLigFil)
.Header = xlNo
.Apply
End With
DerLigFil = [F100].End(xlUp).Row 'Dernière Ligne du filtre après triage
For i = 2 To DerLigFil
mois = Cells(i, "J")
'on recherche dans la colonne F le mois à traiter
Set C = Columns("F").Find(mois, LookIn:=xlValues)
L = C.Row
Do While L <= DerLig
If Cells(L, "F") <> "" And Cells(L, "F") <> mois Then GoTo MoisSuivant 'on est sur un autre mois, donc la recherche est finie pour le mois à traiter
If Cells(L, "G") = "NT" Then Cells(i, "K") = Cells(i, "K") + 1
L = L + 1
Loop
MoisSuivant:
Next i
[K1].Select
End Sub
j'ai testé mais on me demande de définir la variable "i"
Sub Comptage()
Dim DerLig As Long, DerLigFil As Long, L As Long
Application.ScreenUpdating = False
Columns("J:K").ClearContents 'on efface les précédents résultats
DerLig = [G100].End(xlUp).Row
'On récupère la liste des mois a l'aide d'un filtre avancé que l'on colle en colonne J
Range("F1:F" & DerLig).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True
DerLigFil = [F100].End(xlUp).Row 'Dernière Ligne du filtre
'on effectue un tri ascendant pour exclure les cellules vides
Range("J2:J" & DerLigFil).Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("J2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("J2:J" & DerLigFil)
.Header = xlNo
.Apply
End With
DerLigFil = [F100].End(xlUp).Row 'Dernière Ligne du filtre après triage
For i = 2 To DerLigFil
mois = Cells(i, "J")
'on recherche dans la colonne F le mois à traiter
Set C = Columns("F").Find(mois, LookIn:=xlValues)
L = C.Row
Do While L <= DerLig
If Cells(L, "F") <> "" And Cells(L, "F") <> mois Then GoTo MoisSuivant 'on est sur un autre mois, donc la recherche est finie pour le mois à traiter
If Cells(L, "G") = "NT" Then Cells(i, "K") = Cells(i, "K") + 1
L = L + 1
Loop
MoisSuivant:
Next i
[K1].Select
End Sub
Bonjour,
Puisqu'il y a au moins 1500 lignes, dans un premier temps, il faut remplacer toutes les valeurs à 100 par 10000 pour être sûr de balayer toutes les lignes. Pas dit que cela soit suffisant pour régler votre problème, mais il faut bien commencer par quelque chose.
Puisqu'il y a au moins 1500 lignes, dans un premier temps, il faut remplacer toutes les valeurs à 100 par 10000 pour être sûr de balayer toutes les lignes. Pas dit que cela soit suffisant pour régler votre problème, mais il faut bien commencer par quelque chose.
Sub Comptage() Dim DerLig As Long, DerLigFil As Long, L As Long, I as long Application.ScreenUpdating = False Columns("J:K").ClearContents 'on efface les précédents résultats DerLig = [G10000].End(xlUp).Row 'On récupère la liste des mois a l'aide d'un filtre avancé que l'on colle en colonne J Range("F1:F" & DerLig).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True DerLigFil = [F10000].End(xlUp).Row 'Dernière Ligne du filtre 'on effectue un tri ascendant pour exclure les cellules vides Range("J2:J" & DerLigFil).Select ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("J2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("J2:J" & DerLigFil) .Header = xlNo .Apply End With DerLigFil = [F10000].End(xlUp).Row 'Dernière Ligne du filtre après triage For i = 2 To DerLigFil mois = Cells(i, "J") 'on recherche dans la colonne F le mois à traiter Set C = Columns("F").Find(mois, LookIn:=xlValues) L = C.Row Do While L <= DerLig If Cells(L, "F") <> "" And Cells(L, "F") <> mois Then GoTo MoisSuivant 'on est sur un autre mois, donc la recherche est finie pour le mois à traiter If Cells(L, "G") = "NT" Then Cells(i, "K") = Cells(i, "K") + 1 L = L + 1 Loop MoisSuivant: Next i [K1].Select End Sub
Là faut attendre un meilleur que moi en VBA
Il s'agit d'un tableau de 1500 lignes et je cherche à compter le nombre de fois les "NT" figure pour chaque mois, le problème c'est que dans la colonnes des mois il y a des cellules vides , mais qui correspondent aussi à des cellules où il y a le "NT"