XL 2010 VBA : Boucle verticale dans boucle horizontale

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 !

DESTAB83

XLDnaute Nouveau
Bonjour les amis,
je cherche depuis un moment, mais je n'arrive à rien.
Je remercie par avance la personne qui pourra me donner le petit coup de pouce qui me manque !

Voilà :
Je dois créer un tableau de bord de suivi de budget.
Ce budget global est réparti entre plusieurs postes d'achat (fournitures de bureau, gaz, etc) et plusieurs porteurs (nommés ACN, RIT, RE) auxquels on fixe un plafond de dépense.
Dans l'exemple joint, ces données se trouvent dans le tableau figurant dans l'onglet "CARTE ACHAT 2020".
Les postes d'achat sont disposés en colonne, les porteurs en entête de colonnes, au centre les fameux plafonds de dépense à ne pas dépasser.
NB : je ne peux absolument pas modifier la structure de ce tableau, lequel sert de ressource à d'autres.

J'arrive bien à rapatrier dans mon tableau de bord les données à l'intersection lignes/colonnes à l'aide de ma liste déroulante, mais la macro ne me ramène que la première occurrence de porteurs.
Or, lorsque le même porteur apparait plusieurs fois avec des montants différents (par exemple "ACN") il faudrait que je puisse faire la somme de tous ces montants par postes dans mon tableau de bord, dans la colonne "Plafond"

Merci encore de votre aide. Je patauge pitoyablement, et pourtant je pressens que ce n'est pas grand chose à faire.

Amitiés.
 

Pièces jointes

Merci infiniment CHALET53 !
C'est exactement ça (et pourtant je me rends compte que mes explications n'étaient pas super claires!)
Il y a vraiment des esprits éclairés sur ce forum, c'est génial!
Il me reste à bien piger ta macro.
Merci encore, et bonne journée à toi !
 
lcolumn = .Cells(6, Columns.Count).End(xlToLeft).Column
Dernière colonne de la ligne 6 (permet de délimiter la plage de recherche)

lettre = Split(Columns(lcolumn).Address(ColumnAbsolute:=False), ":")(1)
Recherche de la lettre correspondant à la colonne (lcolumn)

Set plage = .Range("F6:" & lettre & 6)
Définition de la plage de recherche

With plage
Set jour = .Find(formations.Value, , lookat:=xlWhole)
Recherche de la valeur exacte dans la plage

Les variables a, b et c peuvent être supprimées (je les avais utilisées pour contrôle)

La variable cumul est par contre importante
 
MERCIIII !
Oui, j'ai compris, et te remercie pour ce complément d'explications que tu as pris le temps de m'écrire, c'est vraiment très sympa.
C'est maintenant évident : je n'y serais pas parvenu tout seul, l'utilisation de "split" (entre autres), m'était complètement inconnue.
Bref, il me reste du chemin à faire, mais grâce à des sages comme toi, ce chemin me parait moins innaccessible ! 🙂
 
- 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
5
Affichages
406
Réponses
2
Affichages
417
Retour