Bonjour,
je suis débutante sur ce forrum et en vba (j'espère donc avoir votre patience, aide et bienveillance tant sur mon code que sur ma façon de poser ma question dans le forum).
J'ai une base donnée excel sur laquelle j'ai un filtre date.
J'utilise ensuite des fonctions countif and countifs pour obtenir le nombre de lignes correspondant aux critères demandés dans countif et countifs.
Mais voilà, cela fonctionne trés bien mis à part le fait que les résultats obtenus tiennent compte des cellules masquées du fait du tri (ce que bien entendu je ne souhaite pas).
Ci dessous la partie du code fonctionnant mais tenant compte des cellules masquées dans les résultats:
With Worksheets("IB_AB5")
Worksheets("FIMIS").Range("B23").Value = WorksheetFunction.CountIf(Range("AH10:AH" & DL), "=4") 'DOMI BE
Worksheets("FIMIS").Range("B33").Value = WorksheetFunction.CountIfs(Range("AF10:AF" & DL), "=4", Range("AH10:AH" & DL), "=4") 'PPE EN BE
End With
‘DL est la dernière ligne qui a été défini plus en amont du code
J’ai bien essayé de combiner ces lignes countif et countifs avec : « .SpecialCells(xlCellTypeVisible) » mais cela ne semble pas être permis et donne des messages d’erreur.
Je pensais alors à un code du genre :
With Worksheets("IB_AB5") 'feuille où sont les données
Worksheets("FIMIS").Range("B23").Value = WorksheetFunction.CountIf(Range("AH10:AH" & DL) .SpecialCells(xlCellTypeVisible), "=4") 'DOMI BE
'"FIMIS" est la feuille sur laquelle le résultats arrive et qui comprend le bouton de lancer la macro complète
Worksheets("FIMIS").Range("B33").Value = WorksheetFunction.CountIfs(Range("AF10:AF" & DL) .SpecialCells(xlCellTypeVisible), "=4", Range("AH10:AH" & DL) .SpecialCells(xlCellTypeVisible) , "=4") 'PPE EN BE
End With
Auriez vous la gentillesse de m’aiguiller afin que je puisse utiliser Countif and countifs uniquement sur les lignes non masquées suite à mon tri svp ?
A noter, que le tri est réalisé par un code vba et non manuel de type (juste pour info) :
critère = InputBox("Année à filtrer:", "FILTRE")
DateFin = CLng(DateValue(critère))
Plage.AutoFilter
Plage.AutoFilter field:=5, Criteria1:="<" & DateFin
Merci à vous tous (par avance)
je suis débutante sur ce forrum et en vba (j'espère donc avoir votre patience, aide et bienveillance tant sur mon code que sur ma façon de poser ma question dans le forum).
J'ai une base donnée excel sur laquelle j'ai un filtre date.
J'utilise ensuite des fonctions countif and countifs pour obtenir le nombre de lignes correspondant aux critères demandés dans countif et countifs.
Mais voilà, cela fonctionne trés bien mis à part le fait que les résultats obtenus tiennent compte des cellules masquées du fait du tri (ce que bien entendu je ne souhaite pas).
Ci dessous la partie du code fonctionnant mais tenant compte des cellules masquées dans les résultats:
With Worksheets("IB_AB5")
Worksheets("FIMIS").Range("B23").Value = WorksheetFunction.CountIf(Range("AH10:AH" & DL), "=4") 'DOMI BE
Worksheets("FIMIS").Range("B33").Value = WorksheetFunction.CountIfs(Range("AF10:AF" & DL), "=4", Range("AH10:AH" & DL), "=4") 'PPE EN BE
End With
‘DL est la dernière ligne qui a été défini plus en amont du code
J’ai bien essayé de combiner ces lignes countif et countifs avec : « .SpecialCells(xlCellTypeVisible) » mais cela ne semble pas être permis et donne des messages d’erreur.
Je pensais alors à un code du genre :
With Worksheets("IB_AB5") 'feuille où sont les données
Worksheets("FIMIS").Range("B23").Value = WorksheetFunction.CountIf(Range("AH10:AH" & DL) .SpecialCells(xlCellTypeVisible), "=4") 'DOMI BE
'"FIMIS" est la feuille sur laquelle le résultats arrive et qui comprend le bouton de lancer la macro complète
Worksheets("FIMIS").Range("B33").Value = WorksheetFunction.CountIfs(Range("AF10:AF" & DL) .SpecialCells(xlCellTypeVisible), "=4", Range("AH10:AH" & DL) .SpecialCells(xlCellTypeVisible) , "=4") 'PPE EN BE
End With
Auriez vous la gentillesse de m’aiguiller afin que je puisse utiliser Countif and countifs uniquement sur les lignes non masquées suite à mon tri svp ?
A noter, que le tri est réalisé par un code vba et non manuel de type (juste pour info) :
critère = InputBox("Année à filtrer:", "FILTRE")
DateFin = CLng(DateValue(critère))
Plage.AutoFilter
Plage.AutoFilter field:=5, Criteria1:="<" & DateFin
Merci à vous tous (par avance)