Association recherche aide pour macro Excel

Résolu/Fermé
Signaler
Messages postés
4
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
3 novembre 2007
-
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
-
Bonjour,

En carge d'une partie de la gestion d'une association, je suis confronté à un problème que je ne saurais résoudre sans une aide...

Nous avons deux fichier Excel distincts
FichierA: qui contient les fiches adhérants
FichierB: qui contient le suivi mensuel des abonnements payés

FichierA contient les données suivantes:
N°Adhérent - Nom - Prénom - Adresse - CP - Ville - Tel - eMail- Pseudo - Abonné - MembreActif/Passif - etc...

FichierB contient les données suivantes:
Pseudo - eMail- AbMoisPayé-

Le FichierA contient tous les adhérents, même ceux qui n'ont pas d'abonnement
Le FichierB contient que les Abonnés et les paiements honorés du mois en cours.

Le lien entre les deux fichier et le pseudo
Tous les pseudo existants dans FichierB existent dans le FichierA

OBJECTIF...
Je dois transmettre à notre webmaster pour une mise en ligne un FichierC en CSV.
Le FichierC doit être le contenu complet du FichierA auquel un colonne supplémentaire est ajoutée et qui contient "Payé" pour tous adhérents à jour de l'abonnenet.
Cette information est prise dans le FichierB en utilisant les pseudo comme référence

Cette action doit être faite par une macro.
Voici un exemple

FichierA
1 - DUPONT - Pierre - 11 rue Foch - 75000 - Paris - 0112548765 - dupont@pierre.fr - Dupontpierre - Yes - Actif -
2 - MARTIN - Justin - 13 rue Verte - 75000 - Paris - 0122884577 - martin@justin.fr - MartinJus - yes - Passif -

FichierB
Dupontpierre -dupont@pierre.fr - Yes -
MartinJus - martin@justin.fr -


FichierC (pour exportation CSV)
1 - DUPONT - Pierre - 11 rue Foch - 75000 - Paris - 0112548765 - dupont@pierre.fr - Dupontpierre - Yes - Actif - Payé -
2 - MARTIN - Justin - 13 rue Verte - 75000 - Paris - 0122884577 - martin@justin.fr - MartinJus - yes - Passif - Non -


Il y a URGENCE pour nous...
Soyez remercié pour votre aimable assistance.

12 réponses

Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Dis donc, où as-tu vu que les bénévoles qui répondent sur ce site avaient une quelconque obligation de réponse ???
Je te rappelle que tu es en état de demande et en aucun cas en position d'exiger quoi que ce soit.
Figure toi que chacun a une vie personnelle et que l'on prend (par plaisir mais parfois il est absent) sur notre temps de loisir pour chercher et répondre si l'on peut.
Je m'interroge sur la pertinence de tes propos sur la loi du plus fort et du baton...

Malgré tout une solution à ton pb:
http://www.cijoint.fr/cij83539056430639.zip

eric
2
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Bonsoir,

Ben ça aurait été dommage, pour une fois que les besoins ont été clairement définis dès le départ...
Bonne soirée
eric
1
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Bonjour,

Il faut arreter de créer un nouveau fil de discussion pour la même question. Ca doit faire au moins le 3 ème et je t'avoue, même si je comprend ton urgence, ça ne donne pas envie d'y répondre .

Choisi donc une des discussion et met les autres en résolu, .
Et si tu veux la faire ré-apparaitre en tête, ajoute juste un message up, tout le monde comprendra
Merci
eric
0
Messages postés
4
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
3 novembre 2007

Si l'esprit d'entraide pronné sur ce forum fonctionne... Nous ne serions pas obligé de passer par des multiples demandes....
Mais il est plus facile semble t-il de réprimer que d'aider....

Soit c'est la loi du plus fort qui l'emporte...
Les autres demandes font être cochées résolues... Bien que ce ne soit pas le cas...

GROSSE DÉCEPTION ET DÉSILLUSION DE CE FORUM....

On recherche du soutien et l'on recois du baton...
0
Bonjour,

Je ne suis pas spécialiste en macro excel, mais pourquoi ne pas directement ajouter une colonne au fichier A avec la formule suivante pour chaque rangée:

Soit "n" le numéro de la rangée:
=SI(RECHERCHEV(In;[B.xls]Feuil1!$A$1:$C$3;3)="YES";"PAYE";"NON")

- example pour la rangée 2:
=SI(RECHERCHEV(I2;[B.xls]Feuil1!$A$1:$C$3;3)="YES";"PAYE";"NON")

Remplacer "Feuil1" par le nom donné à la feuille contenant les données du fichier "B"
- example, si le nom de la feuille est "Paiements", la formule deviendra:
=SI(RECHERCHEV(I2;[B.xls]Paiements!$A$1:$C$3;3)="YES";"PAYE";"NON")

La colonne I contenant les pseudos dans le fichier A, la formule va chercher dans la 3ème colonne "AbMoisPayé" de la table $A$1:$C$3 du fichier B si la valeur correspondant au pseudo est "Yes", auquel cas la cellule affichera: "Payé" et dans les cas contraire "Non".

Il suffit ensuite de sauvegarder le fichier "A" sous le nom "C" au format CSV.

En espérant que cela puisse vous aider.
François
0
Messages postés
4
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
3 novembre 2007

Merci Messieurs et particulièrement à eriic, qui se méprant sur mes réflexions, mais qui malgrè tout m'apporte son aide....
Merci aussi à François, qui effectivement a bien compris que nous aimerions une macro...

Dans l'attente nous allons utiliser vos indications et formules, jusqu'à ce que l'on nous propose une solution macro...

Amicalement,
Josiel
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Pourquoi vouloir mettre une macro lorsque c'est faisable facilement par formule ?
Quel est l'impératif ?
eric
0
Messages postés
4
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
3 novembre 2007

Le fichier de nos adhérents représente plusieurs millier de personnes et subit plusieurs traitements par macro.
Au départ notre fichier est une exportation du site Internet, puis tous les traitements et interventions se font par macros
pour repartir sous forme de CSV vers un autre site Internet pour un autre affichage des résultats sur autre site.

Alors les formules obligent une intervention manuelle, puis son étirement pour toutes lignes concernées du fichier.

Nous partons du FichierA qui est l'exportation du site publique, puis le FichierB qui lui est résidant sur notre informatique pour le suivi des abonnements mensuels et le tout créé par macros le FichierC qui sera importé vers le site d'affichage des résutats....

L'association a pour activité le recencement, l'achat et la location de matériel médical à prix réduit voire très bas pour les familles aux moyens limités...

Si tout cela peut vous aider à mieux comprendre nos besoins et pourquoi nous tentons de nous appuyer sur l'aide bénévole.
0
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Bonsoir,

Voici un fichier qui peut repondre à ta demande : http://www.cijoint.fr/cij35303428930724.zip

la génération du .csv se fait avec le bouton situé sur le ficher TabA.xsl. Je suis aussi parti du principe que le fichier TabA.xls et TabB.xls sont situés dans le meme repertoire. Si cela n'etait pas le cas, il faudrait modifier le code en conséquence.

Dans ce zip je me suis servi de la structure de fichier défini pas Eric (que je remercie au passage).

Si tu as des questions n'hésites pas.

@+
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
BonsoirJosiel,

Voilà une réponse, tu vois, fallait pas s'impatienter
http://www.cijoint.fr/cij32543837730755.zip

Sauvegarder les 3 fichiers dans un répertoire.

Le fichier à lancer (macro) est Asso_RecapitulatifCSV.xls (les 2 autres sont les fichiers de données exemple).

Une fois lancé, renseigner les répertoires, noms de fichiers, nom de la feuille ayant les données dans les cellules dédiées.
Si ces noms sont permanents sauvegarder le fichier.
Cliquer sur le bouton 'Générer le .csv'.

J'espère que les position des champs des fichiers de données sont corrects sinon tout sera décalé.
Teste avec les fichiers exemples puis les fichiers réels et dit moi si c'est ok

Bonne soirée
eric
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Complément:
- Je retourne 3 valeurs: 'Payé', 'non' et j'ai ajouté 'inconnu' si non trouvé dans le 2nd fichier.
- J'ai pris comme clé l'email et je viens de voir qu'il fallait prendre le pseudo, je corrigerai plus tard, si tu peux commencer à tester comme ça car il y aura peut-être d'autres modifs à faire.

eric
0
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
(euhhh ... je crois que l'on s'est croisé)
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Pas grave, comme ça il aura le choix... :-)

Voici la version corrigée qui utilise le pseudo en clé.
http://www.cijoint.fr/cij36161862130825.zip

eric
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026
Joli travail, bien rigoureux (plus que moi ;-) )
0
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
euhhh ... ton code est pas mal non plus ;p
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026 >
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009

J'ai l'impression que chaque fois que l'on utilise Set il faut libérer la mémoire.
Ca doit être systématique ? Ou quelles sont les règles ?
0
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49 >
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022

C'est une ancienne regle issu de VB. Un objet alloué par "set" doit etre desalloué par "nothing". C'est aussi un reste de "C", par les alloc, malloc, realloc ... ;)))

Sur que maintenant, avec un minimum de 1Go de ram sur les PC, cela ne sert peut etre plus à rien. Mais c'est plus propre ;p (pas d'effet de bord).
0
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Comment as tu fait pour creer tes fonctions ?

Je n'arrive pas à les visualiser.
0
Messages postés
24261
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 janvier 2022
7 026 >
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009

Mes fonctions ? un seul sub...
0
Bonjour,

A tous....
Encore un grand merci....
Absent pendant quelques jours pour affaires, je constate que les solutions sont arrivées à maturité
et que notre problème à trouvé sa solution....

Encore nos excuses pour l'urgence, mais mon déplacement m'imposait de terminer le CSV dans un délai cours.

J'apprécie de beaucoup l'esprit d'ériic et le félicite pour son travail, même si l'amateur que je suis
n'a pas assez de compétences pour l'évaluer, j'en reste pas moins émerveillé du résultat ....

Josiel
0