Association recherche aide pour macro Excel

Résolu/Fermé
Josiel Messages postés 4 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 3 novembre 2007 - 3 nov. 2007 à 13:10
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 7 nov. 2007 à 18:44
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.
A voir également:

12 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
3 nov. 2007 à 15:20
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
7 nov. 2007 à 18:44
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
3 nov. 2007 à 13:45
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
Josiel Messages postés 4 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 3 novembre 2007
3 nov. 2007 à 14:23
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Josiel Messages postés 4 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 3 novembre 2007
3 nov. 2007 à 16:32
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
3 nov. 2007 à 17:01
Pourquoi vouloir mettre une macro lorsque c'est faisable facilement par formule ?
Quel est l'impératif ?
eric
0
Josiel Messages postés 4 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 3 novembre 2007
3 nov. 2007 à 18:03
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
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
4 nov. 2007 à 23:09
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
4 nov. 2007 à 20:28
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
4 nov. 2007 à 20:49
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
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
4 nov. 2007 à 23:11
(euhhh ... je crois que l'on s'est croisé)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
5 nov. 2007 à 00:03
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
5 nov. 2007 à 00:13
Joli travail, bien rigoureux (plus que moi ;-) )
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
5 nov. 2007 à 00:29
euhhh ... ton code est pas mal non plus ;p
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
5 nov. 2007 à 00:31
Comment as tu fait pour creer tes fonctions ?

Je n'arrive pas à les visualiser.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249 > ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009
5 nov. 2007 à 00:35
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249 > ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009
5 nov. 2007 à 00:36
Mes fonctions ? un seul sub...
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
5 nov. 2007 à 00:41
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
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