VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

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 !

YAKA2009

XLDnaute Nouveau
Bonjour,
Je m'explique.
Dans Feuil1 j'ai un tableau dont la longueur peut être variable
J'ai créé une macro pour copier toutes les lignes du tableau.
Là où ça se complique pour moi, il faut agreger les montants dans la colonne 13
si Colonne 3, Colonne 12 et 16, les mêmes valeurs se répentent

Colonne 3 = Dossier
Colonne 12 = (1 = credit , 2 = débit)
Colonne 16 = type de prestation

Donc si pour un même dossier, j'ai plusieurs prestations qui sont en débit ou crédit. Alors dans la feuille 2,
je recopie une seule ligne et j'agrege les montants dans la colonne 13.

J'ai essayé de le faire en faisant d'abord un tri personnalisé puis des macros. La copie des dossiers fonctionne
correctement mais j'ai du mal à agreger les montants quand c'est nécessaire.

Merci pour votre aide.
Je mets en copie le fichier d'exemple, en bleu les colonnes pour les conditions et en vert la colonne 13.
la macro est jointe au fichier.
 

Pièces jointes

Re : VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

Bonjour, Peut-être qu'un simple TCD pourrait résoudre ton pb Je ne vois pas de montant en colonne 13 que tu puisses "agréger" ?!, mais je n'ai sans doute pas compris A+ kjin
 

Pièces jointes

Re : VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

Bonjour kjin,
merci pour ton aide et ton fichier.
Tu as bien compris ma demande, le principe est le même que pour un TCD.
1. Je souhaite faire une macro vba car je n'ai parlé que de la partie qui me pose problème :
les données proviennent d'un fichier plat que je souhaite agréger pour ensuite reconstituer le fichier plat "simplifié". Ce fichier sera ensuite intégré dans une application.

2. Les données ont un format spécifique : pas de séparateur pour les décimales. Il suffit de garder le format tel quel de la Colonne 13 de la Feuil1.
 
Re : VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

Bonsoir Maître Bernard,
Merci beaucoup pour ta solution qui répond parfaitement à mes besoins avec un code concis qui va droit au but désiré.
🙂. Chapeau bas vraiment.

Pour m'aider à progresser pourrais tu STP m'expliquer le principe,
1. Je pense que tu utilises des tableaux ? Je ne comprends pas bien l'enchainement des conditions dans la boucle "for" pourrais tu éclairer ma lanterne ?

2. Ensuite dans la macro "Ecritures" : j'ai compris que tu récupères d'abord les valeurs et que tu les enregistres dans un deuxième temps dans la Feuil2 mais là aussi je ne comprends pas les boucles utilisées pour y arriver.

3. Dernier point, je dois maintenant exporter la Feuil2 dans un fichier .txt en respectant le format du fichier pour chaque colonne:
ex :
position initiale ! position finale ! Longueur ! Type !
1 2 2 Num
3 10 8 Num
11 20 10 Num
21 21 1 Num

ect...
il y a des colonnes plus complexes
ex pour le champs nom et prénom

position initiale ! position finale ! Longueur ! Type !
69 98 30 Texte : sachant que les valeurs sont variables pour le nom et prénom, il faut rajouter
des espaces pour arriver à 30 caractères


position initiale ! position finale ! Longueur ! Type !
40 52 13 Num : les montants font 10 entiers et 3 décimales non signées
On rajoute des zero devant pour faire 13 caractères.

Bernard, cet export est-faisable en adaptant ta macro "Ecritures" pour les 23 colonnes ?
Encore une fois quel que soit ta réponse merci de m'avoir aidé, je vais pouvoir dormir un peu plus tranquille!
 
Dernière édition:
Re : VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

Bonjour YAKA2009, le forum,
J’ai mentionné des explications sur le code, en espérant qu’elles pourront t’aider. Par contre, je pense pouvoir l’améliorer, en cherchant une autre méthode (j’ai une toute petite idée).
Pour exporter la feuille 2 dans un fichier .txt, je pense qu’il faut créer un autre code. Peux-tu m’indiquer sur le fichier les longueurs de chaque colonne et les positions (j’ai mis un début d’exemple sur la feuille 6). Je vais essayer une approche.
Cordialement,
Bernard
 

Pièces jointes

Dernière édition:
Re : VBA : Copier un tableau et ajouter des valeurs en fonctions de conditions

Bonjour Bernard,
Merci beaucoup pour les commentaires et l'aide sur l'export. Je vais lire attentivement ton code.

Pour l'export, il y a des champs textes et des champs numériques.
La plupart des champs quelque soit leur type peuvent commencer par zero

1. Je t'envoie un fichier Excel avec la description du format du fichier tel qu'il doit être exporté : format fichier.xlsx

2. J'envoie également un exemple de fichier tel qu'il arrive (j'ai modifié qq données par sécurité).
fichier_initial.txt
Merci Bernnard cela m'aide à avancer
🙂
 

Pièces jointes

- 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
4
Affichages
479
Retour