Macro Excel - Retrouver la date en fonction d'une référence

Résolu/Fermé
JB - 15 mars 2013 à 21:51
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 18 mars 2013 à 22:36
Bonjour,

Je crée ce post afin de solliciter vos envies de programmation en VB pour Excel.
Je m'explique, afin d'éviter un travail long et fastidieux, je voudrais créer une macro Excel dans le but d'automatiser cette tâche.

BUT:
L'objectif de cette macro serait, à partir d'une référence de la forme AAABCCCDDEEE:
1. extraire la partie concernant la date, ici: CCC pour le numéro du jour et DD pour l'année (voir excel ci-joint: Colonne A de la feuille Données)
2. trouver la valeur CCCDD correspondante dans une table (colonne A de la feuille Calendriers)
3. sortir la date correspondante à la valeur CCCDD au format YYYY-MM-DD (colonne B de la feuille Calendriers)
4. copier cette date en face de la référence correspondante (Colonne B de la feuille Données)

Fichier Test.xls : http://www.gigaup.fr/?g=VGR7I5JDV8

J'avais réussi à créer une macro me permettant d'afficher CCC et DD de deux couleurs différentes sur les cellules sélectionnées afin de mieux voir visuellement ces chiffres et ainsi sortir la date manuellement avec les calendriers. Seulement, ayant énormément de références je voudrais automatiser ce travail afin de gagner du temps. Cependant, je ne connais pas le language VB et n'ai pas assez de temps pour l'apprendre actuellement. C'est pourquoi je fais ma demande ici, si quelqu'un aurait l'amabilité de m'aider.

Voici la première macro que j'ai créé à l'aide de rapides recherches sur le net:

Sub Coloration_Date_n°Série()
' Le coloriage s'applique à l'ensemble de cellules sélectionnées
Dim c As Range
For Each c In Selection
     ' Tout le texte en noir
    Selection.Characters.Font.ColorIndex = 0
    ' Le numéro du jour en vert - Characters(à partir du n°X, pendant Y charactère(s))
    Selection.Characters(5, 3).Font.Color = RGB(0, 0, 255)
    ' L'année en rouge
    Selection.Characters(8, 2).Font.Color = RGB(255, 0, 0)
Next c
End Sub



Je vous remercie d'avance pour votre aide.

Cordialement.


A voir également:

3 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 16/03/2013 à 23:48
Bonjour,

Tu veux vraiment une macro ?
Parce que tu peux le faire par une formule simple et sans ton tableau :
=DATE(STXT(A2;8;2)+2000;1;STXT(A2;5;3))
date que tu mets au format que tu veux.

eric

PS : d'ailleurs 29410 c'est le 21/10/2010 et non le 24

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
Je voulais une macro parce que je n'avais pas trouvé de formule pour le faire. Apparemment j'ai mal cherché. Peux-tu expliquer le fonctionnement de ta formule stp.

En tout cas, merci beaucoup ça fonctionne parfaitement.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 mars 2013 à 18:14
Bonjour,
Les 2 Stxt() récupèrent le quantième et l'année.
=Date(année;janvier;quantième) me fabrique la date.
Le 32 janvier se trouve transformé en 1er février etc.

eric
0
Très instructif.
Merci bien.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 mars 2013 à 22:36
ok, je met en résolu pour toi (en haut vers ton titre, pour la prochaine fois)
eric
0