[VBA] Range.(("xxx").column)) ??

SkinDash

XLDnaute Nouveau
Bonjour,

Je cherche à définir une Range grâce à l'intitulé d'une colonne, je m'explique. Pour le moment j'ai le code suivant qui fonctionne très bien:

Code:
Application.CountA(Workbooks(ExtractTCD).Sheets("Source - TCD").Range("C:C").SpecialCells(xlCellTypeVisible)) - 1

et

Code:
WorksheetFunction.Sum(Sheets("Source - TCD").Range("N:N").SpecialCells(xlCellTypeVisible))


Je souhaiterais à la place de Range("C:C") et Range("N:N") avoir quelque chose comme:

Code:
Application.CountA(Workbooks(ExtractTCD).Sheets("Source - TCD").Range(("ID").Column).SpecialCells(xlCellTypeVisible)) - 1

et

Code:
WorksheetFunction.Sum(Sheets("Source - TCD").Range(("Montant brut").Column).SpecialCells(xlCellTypeVisible))


En clair faire référence à l'intitulé d'une colonne plutôt qu'à une position fixe.

J'ai aussi essayé de cette façon mais ça ne fonctionne pas non plus:

Code:
WorksheetFunction.Sum(Sheets("Source - TCD").Range(Rows(1).Find("Montant brut", LookAt:=xlWhole).Column).SpecialCells(xlCellTypeVisible))



Si quelqu'un a une idée, d'avance merci et bonne journée ! :)

Je ne peux pas poster le fichier qui fait plus de 45MO...
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Range.(("xxx").column)) ??

Bonjour,

peut être comme ceci, non testé...

Code:
With Sheets("Source - TCD")
    WorksheetFunction.Sum(.Columns(.Rows(1).Find("Montant brut", LookAt:=xlWhole).Column)).SpecialCells (xlCellTypeVisible)
End With

bonne journée
@+
 

SkinDash

XLDnaute Nouveau
Re : [VBA] Range.(("xxx").column)) ??

Bonjour Pierrot,

Merci pour cette réponse rapide :)

Avec cette solution j'ai un message d'erreur "Erreur de compilation: Qualificateur incorrect" et le .Sum est surligné.

Peut-être est-ce dû à une erreur de ma part, je positionne les balises With...End With de la sorte:

Code:
With x = Sheets("Source - TCD")
WorksheetFunction.Sum(.Columns(.Rows(1).Find("Montant brut", LookAt:=xlWhole).Column)).SpecialCells (xlCellTypeVisible)
End With
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Range.(("xxx").column)) ??

Re,

positionne le ainsi :
Code:
With Sheets("Source - TCD")
 x =    WorksheetFunction.Sum(.Columns(.Rows(1).Find("Montant brut", LookAt:=xlWhole).Column)).SpecialCells (xlCellTypeVisible)
 End With
 

SkinDash

XLDnaute Nouveau
Re : [VBA] Range.(("xxx").column)) ??

Re,

Malheureusement même message d'erreur quand j'essaye de lancer la macro en me surlignant le ".sum"

"Erreur de compilation: Qualificateur incorrect" :(

Tant pis, merci pour ton aide en tout cas !
 

SkinDash

XLDnaute Nouveau
Re : [VBA] Range.(("xxx").column)) ??

Re,

ceci fonctionne chez moi....
Code:
With Sheets("Source - TCD")
    x = WorksheetFunction.Subtotal(109, .Columns(.Rows(1).Find("Montant brut", LookAt:=xlWhole).Column))
End With

Effectivement, j'ai supprimé le ".SpecialCells (xlCellTypeVisible)" et ça fonctionne aussi très bien chez moi.

Merci pour ton aide ! :)

Si j'ai bien compris l’argument '109' de Subtotal fait la somme en ignorant les valeurs masquées, alors que l'argument '9' va lui faire la somme en incluant les valeurs masquées ?

Bonne journée.

Skin'
 

Statistiques des forums

Discussions
312 361
Messages
2 087 604
Membres
103 605
dernier inscrit
gabriel morency