With...End : appeler l'objet "racine"

Stakov

XLDnaute Nouveau
Bonjour à tous,

Malgré mes recherches je n'ai pas trouvé de topic traitant ce sujet alors je me lance : est-il possible dans un traitement With...End With d'appeler l'objet servant de racine au With ?

Je m'explique :

Mon code vise à remplir un tableau de données (appelons le tb_Data) et dans une sous partie de ce code je parcours un range source (appelons le rg_Source) sur lequel je souhaite faire des sommes conditionnelles.

Ainsi, dans une boucle, je dois réaliser 5 ou 6 sommes.si.ens (sumifs en vab) dans une même itération de ladite boucle. Les deux critères de la somme ne changent pas, seule la colonne de mon rg_Source doit être différente.

Du coup j'ai pensé à articuler ma boucle comme suit :


Code:
For i = 1 To q_brand
    st_brand = dc_Brands_C_i.Item(i)

    With rg_Source.Resize(, 1)
        tb_Data(i, 4) = Application.WorksheetFunction.SumIfs(.Offset(, 18), .Offset(, 2), dt_Month, [HELP], st_brand)
        tb_Data(i, 5) = Application.WorksheetFunction.SumIfs(.Offset(, 19), .Offset(, 2), dt_Month, [HELP], st_brand)
        tb_Data(i, 6) = Application.WorksheetFunction.SumIfs(.Offset(, 43), .Offset(, 2), dt_Month, [HELP], st_brand)
        tb_Data(i, 7) = Application.WorksheetFunction.SumIfs(.Offset(, 44), .Offset(, 2), dt_Month, [HELP], st_brand)
    End With
Next i

Pour info, st_brand est un paramètre string issu du dictionnaire dc_Brands_C_i que j'ai généré plus tôt.

L'idée est donc d'entamer mon With avec un rg_Source.resize(,1) pour n'avoir ensuite qu'à rajouter le .offset(,X) dans mon argument en fonction de la colonne dans laquelle je souhaite réaliser la somme.

Le problème est au niveau du deuxième critère de somme, là où j'ai mis [HELP]. Le critère se trouve en effet dans la première colonne de mon rg_Source et je n'ai donc pas besoin de faire un .Offset (ou alors un .Offset(,0) )

Ma question est donc : comment puis-je rédiger cet argument de manière à appeler l'objet "racine" de mon With sans le modifier ?

J'espère vraiment avoir été clair... (après une journée de boulot là dessus je n'ai plus les idées très claires... ::) )

Merci pour votre aide!
Stakov
 

Stakov

XLDnaute Nouveau
Re : With...End : appeler l'objet "racine"

Bonjour Pierrot93,

Merci pour l'aide, malheureusement ce paramètre doit être un objet range, .Value génère une erreur.

Quelles infos manquent pour pouvoir m'aider ?

Pour le moment, je contourne le problème en mettant ".Offset(0)" à l'endroit du [HELP] dans ma formule. C'est moche, mais ça fonctionne...
 

Discussions similaires

Réponses
5
Affichages
416

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet