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

dg62

XLDnaute Accro
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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas