Microsoft 365 Utiliser une variable dans Application.[Subtotal(3, F:F)]

dg62

XLDnaute Barbatruc
Bonjour le Forum
Je souhaiterai remplacer F:F par la variable FirstCol qui est égale à F:F.
VB:
sexeF = Application.[Subtotal(3, Firstcol)] - 1
Ça ne veut pas fonctionner. Peut-on le faire ? Y-a-t-il une autre méthode ?

Merci
firstcol est bien déclaré en string si je déclare en range j'ai une erreur sur la ligne firstcol

VB:
plage = LO.DataBodyRange.Address                     
firstcel = Mid(plage, 2, 1) & Mid(plage, 4, 1)       
firstcol = Mid(plage, 2, 1) & ":" & Mid(plage, 2, 1)

LO.DataBodyRange.AutoFilter Field:=4, Criteria1:="F" 
sexeF = Application.[Subtotal(3, F:F)] - 1
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, dg62

•>dg62
Test OK pour les deux macros (XL2K13 32bits /W10 64bits)
VB:
Sub Test_A()
Dim LO As ListObject
Set LO = ActiveSheet.ListObjects(1)
LO.DataBodyRange.AutoFilter Field:=4, Criteria1:="F"
sexeF = Application.Subtotal(3, LO.DataBodyRange.Columns(4))
MsgBox sexeF
End Sub
Sub Test_B()
Dim LO As ListObject, fCol&
Set LO = ActiveSheet.ListObjects(1)
LO.DataBodyRange.AutoFilter Field:=4, Criteria1:="M"
fCol = CLng(InputBox("N°col?", "Test", 4))
sexeF = Application.Subtotal(3, LO.DataBodyRange.Columns(fCol))
MsgBox sexeF
End Sub
 

chris

XLDnaute Barbatruc
Bonjour
En formule c'est INDIRECT

En VBA c'est un non sens de travailler sur un ListObject et d'utiliser F:F ou même de décomposer l'adresse

VB:
sexeF=Application.WorksheetFunction.Subtotal(3, LO.ListColumns(1).DataBodyRange)

Edit trop tard, salut Staple
 

Staple1600

XLDnaute Barbatruc
Bonjour chris

Une autre pour parier les vlaisirs ;)
(confinement oblige ;))
VB:
Sub Test_C()
Dim LO As ListObject, fCol, COL$
Set LO = ActiveSheet.ListObjects(1)
LO.DataBodyRange.AutoFilter Field:=4, Criteria1:="M"
COL = LO.DataBodyRange.Columns(4).Address(0, 0)
sexeF = Evaluate("=SUBTOTAL(3," & COL & ")")
MsgBox sexeF
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG