Microsoft 365 Concaténer du texte sous conditions en VBA

gillmo

XLDnaute Occasionnel
bonjour la communauté,

Je vais essayer d'expliciter le plus simplement possible, la difficulté que je rencontre.
J'ai un fichier avec un onglet Base, dans lequel je collecte des infos. Ensuite, j'ai différents onglets (référencé dans un onglet sommaire) sur lesquels je souhaite récupérer les infos indiqués dans l'onglet Base.

Par exemple, dans l'onglet base j'ai une colonne compte et une colonne analytique, ainsi qu'un montant et parfois un commentaire associé.
Dans les onglets de restitution (nommé pour l'exemple A B C, mais il peut y en avoir plus), je cherche à récupérer pour chaque ligne, le montant et le ou les commentaire s'il y en a un.
Je n'ai aucun problème pour récupérer la somme des montants par ligne en VBA, cela fonctionne dans mon fichier de travail. Là ou je bloque, c'est pour récupérer le ou les commentaires, en fonction des critères compte et analytique, et s'il y en a plusieurs pour le même compte même analytique, je souhaite les concaténer avec un séparateur "/"
S'il n'y a pas de commentaire, il ne doit rien indiquer dans la cellule de destination

J'ai fait un fichier test qui est une version très simplifiée de mon fichier de travail, mais c'est uniquement pour vous donner le principe de ma recherche, j'adapterai à mon fichier de travail par la suite. Je n'ai pas mis l'onglet sommaire dans mon fichier test, je ne pense pas qu'il apporte grand chose au problème

j'espère avoir été clair dans mes explications. Je souhaite passer par VBA, parce que la base peut être actualisée, et que je souhaite mettre à jour en même temps les montants et les commentaires, et surtout c'est un fichier de travail lourd, et je ne voudrais pas l'alourdir avec des formules

Merci.
 

Pièces jointes

  • test.xlsx
    30.9 KB · Affichages: 7

Wayki

XLDnaute Occasionnel
Bonjour,
Vu que vous maîtrisez un peu excel et VBA, je vous ai préparé une macro pour la feuille A. Je vous laisse le soin de l'appliquer aux autres feuilles.
Je ne sais pas si vous voulez que la macro travaille sur toutes les feuilles ou une par une donc j'ai fais ça.
La macro est dans le module 1 et s'appelle test.
J'ai remarqué que des comptes n'existent pas dans le test, j'ai fais un système pour afficher une boite de dialogue si jamais Excel se met à chercher un compte inconnu. Mais il renvoie quand même une erreur si 2 comptes à la suite ne sont pas trouvés, j'i pas réussi à débuguer ça.
Idem, j'ai laissé la possibilité d'effacer ou pas les commentaires éventuellement déjà présent au lancement de la macro (pour éviter les doublons).

A +
 

Pièces jointes

  • test (1).xlsm
    36.2 KB · Affichages: 4

gillmo

XLDnaute Occasionnel
Bonjour Wayki,

Merci pour votre retour, votre macro est un très bon début, j'ai tenté d'adapter votre macro, mais je bute sur un léger soucis. Dans votre macro, la recherche se fait sur le compte, mais j'ai besoin que la recherche se fasse par le croisement du compte et de l'analytique, et pour l'instant je n'arrive pas à inscrire ça dans la macro, je continue de chercher.

Cdlt.
 

Wayki

XLDnaute Occasionnel
Bonjour,
C'est effectivement le plus compliqué à faire.
Je saurais le faire via formules mais pour appliquer en VBA ça impliquerait la fonction evaluate et c'est assez tendu à faire avec des variables.
Une solution serait peut être de jouer avec des offset 🤷‍♂️
Je suis hyper occupé en ce moment, mais je jète un coup d'œil dès que peut se faire 🙂
A +
 

gillmo

XLDnaute Occasionnel
bonjour,

Merci encore, en adaptant ta macro, et en passant par une colonne supplémentaire en concaténant le compte et l'analytique, j'ai réussi à obtenir ce que je veux.
Peut être que ma macro demanderait à être optimisé, mais elle fonctionne correctement.

Merci encore du temps passé pour trouver une solution. :)

A+
 

Discussions similaires

Statistiques des forums

Discussions
294 039
Messages
1 935 784
Membres
187 447
dernier inscrit
Harvedo