Macro de trie

Bonjour forum,

Les extraits de nos logiciels de gestion et comptabilité donnent les données en différents formats.

Par exemple : sous l’onglet LAMal : la même personne dans la colonne 4 « Brun Hans Rudolf 27.01.1940 » et dans la colonne 18 elle est « Brun Hans Rudolf 27-JAN-40 ». Mais, je dois comparer ces 2 colonnes. Et pour le faire, j’aimerais copier la 18ème en format de 4ème dans la colonne 37, car c’est la base de données jusqu’à colonne 35 et il est préférable de faire tout le travail à la fin.

De plus, si le nom de la personne (colonne 4) est différent de celui de la colonne 37, comme c’est le cas des 2 derniers dossiers (les mamans avec leur enfants mineurs, un ou plusieurs), il faut ajouter ces enfants, ligne par ligne, dans l’onglet « Tab.-Job », juste après leur mères. C'est mon onglet de travail.

Est-ce que c’est faisable ? Si cela vous paraît trop compliqué, vos idées sont bienvenues.

En fait, je prépare la liste de notre personnel qui devra changer leur assurance maladie pour l’an 2018. On ne connaît pas les futures primes, c’est juste les préparatifs, pour pouvoir les imprimer via Publipostage plus tard.

Merci d’avance.

PS : ce fichier est trop gros pour le télécharger sur forum. Voici la mini-copie.

182018-test.xlsx (93.64 Ko)

Bonjour,

voici pour la 1è partie

sous l’onglet LAMal : la même personne dans la colonne 4 « Brun Hans Rudolf 27.01.1940 » et dans la colonne 18 elle est « Brun Hans Rudolf 27-JAN-40 ». Mais, je dois comparer ces 2 colonnes. Et pour le faire, j’aimerais copier la 18ème en format de 4ème dans la colonne 37

=GAUCHE(D9;NBCAR(D9)-10)&TEXTE(DROITE(R9;9);"jj.mm.aaaa")

je continue a chercher pour l'autre demande.

Merci Isabelle.

Ça marche, mais il y a un souci.

Si la date de naissance est dans les mois où il y a un accent dans les 3 premiers lettres (FEV ; AOU et DEC), ça donne FAUX dans la colonne 38.

Comment égaliser les « FEV » et « FÉV », par exemple, sans apporter les modifications à l'extrait même, c'est-à-dire dans la colonne 18?

Merci.

Bonvin.

Bonjour,

Voici la correction,

[barrer]=GAUCHE(D9;NBCAR(D9)-10)&TEXTE(SUBSTITUE(SUBSTITUE(DROITE(R9;9);"E";"É");"U";"Û");"jj.mm.aaaa")[/barrer]

plutot

=GAUCHE(D9;NBCAR(D9)-10)&TEXTE(SUBSTITUE(SUBSTITUE(SUBSTITUE(DROITE(R9;9);"DE";"DÉ");"FE";"FÉ");"OU";"OÛ");"jj.mm.aaaa")

Bonsoir,

Merci bcp, ça marche.

Mais, ça change le nom du bénéficiaire.

J'aimerais garder son nom exact et changer seulement le format de sa date de naiss. en jj.mm.aaaa.

Donc, je pense que c'est mieux comme ça, si vous êtes d'accord:

=GAUCHE(LC(-19);NBCAR(LC(-19))-9)&TEXTE(SUBSTITUE(SUBSTITUE(SUBSTITUE(DROITE(LC(-19);9);"DEC";"DÉC");"FEV";"FÉV");"AOU";"AOÛ");"jj.mm.aaaa")

Et après, tous ce qui sont sous FAUX selon le test, sont à traiter.

ça peut aussi être,

=GAUCHE(R9;NBCAR(R9)-10)&TEXTE(SUBSTITUE(SUBSTITUE(SUBSTITUE(DROITE(R9;9);"DE";"DÉ");"FE";"FÉ");"OU";"OÛ");"jj.mm.aaaa")

Bonjour,

J'essaie de changer la formule selon nos dernière conversation et ça marche pas, je ne comprends pas pourquoi.

Le résultat est juste dans la barre d'insertion de formule.

Mais, dans la cellule même c'est la formule qui s'affiche et pas le résultat (toujours sous l'onglet LAMAL colonne 37).

Que-ce que j'ai fait de faux???

Merci.

Bonjour,

cela peut arriver si les cellules ont été formater en Texte,

voici un exemple,

Bonjour,

Oui, justement, c’était sous Texte.

J'ai tout mis en Standard et s'est bon maintenant.

Merci bcp.

Bonvin.

Rebonjour Isabelle,

La 1ère partie donne parfois des FAUX dans la colonne 38, quand c'est VRAIS en réalité.

Et je ne vois pas où est l'erreur.

La 2ème partie sera difficile à faire pour moi. Puis-je vous demander de la diviser en deux.

D'abord, avec une macro, dans l'onglet LAMal (voir ci-attaché) il faut créer nouvel onglet LAMal-Trié qui va contenir une seule ligne par dossier, s'il y a une seule personne dans ce dossier. C’est-à-dire, le résultat donne VRAIS sous colonne 38. Si ça donne FAUX, il faut ajouter ces lignes (les enfants) juste au-dessous de parent.

Les valeurs qu'il faut utiliser et dans la macro:

Dossier (col. 1), puis par Date de début et de fin de prime (col. 19 et 20: prendre que 2017) et puis par Montant de déduction (col. 29: prendre le plus grand). Parfois, ces cellules sont vides. Ça veut dire que notre logiciel est mal remplit, mais je suis sensé de l'utiliser tel quel.

Ça va être plus facile après pour l'onglet Tab.-Job.

Merci d'avance.

PS: puis-je vous envoyer par email prive le vrai tab, car il est trop gros (8Mo). ça rentre pas sur le cite.

Pardon Isabelle,

J'ai trouvé.

C'est quand la date de naissance est 1927, par exemple, ça donne 2027, de 1000 ans de plus (col. 37).

Et ça fait FAUX dans la 38ème colonne.

Merci.

Bonjour,

les lignes qui devrait donner un résultat vrai, mais qui sont faux sont causés par la différence du siècle, excel ne peut deviner si une date

18-MAR-14 est 18.03.1914 ou 18.03.2014 je ne vois pas d'autre solution que de corriger ces erreurs à la mimine.

pour le transfert de données dans l'autre onglet, pourriez-vous me donner un exemple du résultat attendu ?

Bonsoir,

Pour partie une :

D’accord pour les date de naissance, mais ça va être dur de faire cela pour plus que 4’000 lignes. Si vous avez d’autres idées pour faciliter cela, je les ai accepterais avec plaisir.

Pour partie deux :

J’envoie le fichier-exemple dans votre boite privée, car il contienne des données confidentielles. Cette macro, qui va créer nouvel onglet LAMal-Trié où il n’aura qu’une seule ligne par n° de dossier (colonne 1). J’ai mis en jaune quelques lignes qui doivent disparaitre, car on laisse que le plus grand montant de déduction selon la colonne 29 et le reste on supprime. Tout cela, pour les dossiers où le nom de la Personne suivie (colonne 4) est égal au nom du Bénéficiaire (colonne 18).

Par contre, si les noms sont différents, il faut garder les deux (en vert).

J’ai fait colorer une quarantaine de lignes, pour vous montrer le futur résultat. Regardez svp le dossier 131, par exemple. Il y a 3 lignes. 1ère – la maman, 2ème – l’enfant et 3ème à supprimer. On peut avoir 3-4 lignes à supprimer dans un dossier.

Je vous remercie par avance de votre aide.

une solution pour réduire les lignes d'erreur du au date de naissance, serait de faire un test sur les nom,

à tester,

=GAUCHE(D20;NBCAR(D20)-11)=GAUCHE(R20;NBCAR(R20)-10)

cela réduit les erreur à près de 40%

sabV a écrit :

ça peut aussi être,

=GAUCHE(R9;NBCAR(R9)-10)&TEXTE(SUBSTITUE(SUBSTITUE(SUBSTITUE(DROITE(R9;9);"DE";"DÉ");"FE";"FÉ");"OU";"OÛ");"jj.mm.aaaa")

Bonjour Isabelle,

Merci. Mais, j’ai une idée.

La différence entre 01.01.1930 et 01.01.2030 est de 36525 jours.

J’essayais d’ajouter la fonction SI dans votre formule, à la colonne 37, mais ça pas marché.

Test logique : aaaa<1930

Si vrai : jj.mm.aaaa + 36525

Si faux : jj.mm.aaaa

Est-ce que c’est faisable ?

Merci.

Bon weekend.

Bonjour,

j'ai ajouté 4 colonnes pour le test date, dit-moi ce que tu en pense ?

3bonvin-lamal-1.xlsx (314.89 Ko)
Rechercher des sujets similaires à "macro trie"