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

  • Initiateur de la discussion Initiateur de la discussion Stakov
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
4 K
Retour