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   -
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
A voir également:

2 réponses

Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ! je l'ai essayé , elle fonctionne bien , mais il faut à chaque fois changer de plage ... il y a plusieurs tableaux ..
0
Utilisateur anonyme
 
Ha si tu ne donnes pas tous les éléments.
Là faut attendre un meilleur que moi en VBA
0
Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
Merci !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir, peux-tu donner tous les éléments?
0
Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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"
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour,
Essayez ceci
https://www.cjoint.com/c/GLkizyyIuhw
J'utilise les colonnes J et K pour les résultats.
Cdlt
1
Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, je pense qu'il suffit d'ajouter
 ,i as long
à la fin de la ligne commençant par
Dim
0
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  
 
Mercii ! j'ai déjà fait ça mais toujours le meme problème, ça fonctionnes sur Excel 2007 mais pas sur 2013 je ne comprend pas pourquoi ..
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338 > Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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.
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Yasn10 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
on continue à te demander de définir la variable "i" ?
0