Microsoft 365 Compter et afficher un numéro correspondant à un filtre sélectionné

Legendre

XLDnaute Nouveau
Bonjour,
Je souhaiterai compter le nombre de modes (Nombre de lignes de ma feuille Excel) puis sélectionner les chiffres entre 40000 et 49999 (inclus)
La macro doit également pouvoir m'afficher le numéro commençant par 4 le plus élevé afin de pouvoir incrémenter la numérotation dans un combobox

Mon code présente le défaut d’être partiel (manque l'affichage du n° de mode le plus élevé) et il nécessite une modification du nombre de lignes (ex :3000) contenues dans l'onglet.
Le code est le suivant :
-------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Compteur_Modes()
If ActiveWorkbook.Name <> ThisWorkbook.Name Then ThisWorkbook.Activate
ApplicationScreenUpdating = False

Sheets("Numéro").Select
'Suppression des filtres
Selection.AutoFilter

'ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=10 ' 3000 correspond à l'estimation du nombre de ligne

'Nombre de Modes
MsgBox "Nombre de Modes : " & Application.Subtotal(3, Range("A2:A" & Rows.Count))

'Filtre sur les numéros compris entre 40000 et 49999
ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=1, Criteria1:=">=40000", Operator:=xlAnd, Criteria2:="<50000"
MsgBox "Nombre de modes compris entre 40000 et 50000 : " & Application.Subtotal(3, Range("A2:A" & Rows.Count))

'Suppression des filtres
Selection.AutoFilter

'Rajout des filtres
Range("A1:BD1").Select
Selection.AutoFilter
Range("A1").Select

ApplicationScreenUpdating = True
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------

Pouvez_vous me donner un coup de pouce
Merci
Jacques
 
Dernière édition:

jpb388

XLDnaute Accro
Bonjour à tous
essayes
VB:
Sub Compteur_Modes()
If ActiveWorkbook.Name <> ThisWorkbook.Name Then ThisWorkbook.Activate
ApplicationScreenUpdating = False

'Suppression des filtres
Sheets("Numéro").AutoFilter

'ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=10 ' 3000 correspond à l'estimation du nombre de ligne

'Nombre de Modes
MsgBox "Nombre de Modes : " & Application.Subtotal(3, Range("A2:A" & Rows.Count))

'Filtre sur les numéros compris entre 40000 et 49999
ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=1, Criteria1:=">=40000", Operator:=xlAnd, Criteria2:="<50000"
MsgBox "Nombre de modes compris entre 40000 et 50000 : " & WorksheetFunction.Max(ActiveSheet.Range("$A$1:$BD$3000").SpecialCells(xlCellTypeVisible).Value)

'Suppression des filtres
Selection.AutoFilter

'Rajout des filtres
Range("A1:BD1").Select
Selection.AutoFilter
Range("A1").Select

ApplicationScreenUpdating = True
End Sub
 

Legendre

XLDnaute Nouveau
Bonjour à tous
essayes
VB:
Sub Compteur_Modes()
If ActiveWorkbook.Name <> ThisWorkbook.Name Then ThisWorkbook.Activate
ApplicationScreenUpdating = False

'Suppression des filtres
Sheets("Numéro").AutoFilter

'ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=10 ' 3000 correspond à l'estimation du nombre de ligne

'Nombre de Modes
MsgBox "Nombre de Modes : " & Application.Subtotal(3, Range("A2:A" & Rows.Count))

'Filtre sur les numéros compris entre 40000 et 49999
ActiveSheet.Range("$A$1:$BD$3000").AutoFilter Field:=1, Criteria1:=">=40000", Operator:=xlAnd, Criteria2:="<50000"
MsgBox "Nombre de modes compris entre 40000 et 50000 : " & WorksheetFunction.Max(ActiveSheet.Range("$A$1:$BD$3000").SpecialCells(xlCellTypeVisible).Value)

'Suppression des filtres
Selection.AutoFilter

'Rajout des filtres
Range("A1:BD1").Select
Selection.AutoFilter
Range("A1").Select

ApplicationScreenUpdating = True
End Sub
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 113
Messages
2 085 427
Membres
102 889
dernier inscrit
monsef JABBOUR