Suivi Recherches d'Emploi

Bonjour,

Je souhaiterais créer un fichier de suivi de recherche d'emploi et automatiser certaines tâches comme celles des relances à J + 15.

J'ai plusieurs colonnes dont :

Date d'envoi du courrier :

Date de réception d'une réponse :

Nbre de jours depuis l'envoi du courrier : (qui pourra disparaitre par la suite)

Statut : (avec plusieurs états : en attente (couleur orange), à relancer (couleur rouge) et ok (couleur verte) lorsque une réponse a été reçue ou une relance effectuée)

Date de relance :

J'ai commencer un script VBA mais je patauge déjà au démarrage. Si quelqu'un peut y jeter un coup d'oeil. Merci d'avance.

J'ai remis le fichier en essayant d'appliquer une mise en forme simple. Mais cela ne marche pas.

Sub suiviRelance()
   Dim dl As Date 'déclare la variable dl (Date du Jour)
   dl = Now()
   Range("G1").Value = dl

   Dim pl As Range 'déclare la variable pl (PLage)
   Dim cel As Range 'déclare la variable cel (CELlule)

   Set pl = Range("F4:F" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne F en commençant à la ligne 4)
      For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
         Range(Cells(cel.Row, 1), Cells(cel.Row, 15)).Interior.ColorIndex = 3 'colore la ligne de rouge
      Next cel 'prochaine cellule de la boucle

End Sub

Une idée ?

Bonjour Yes-Papa

Il faut rajouter un test pour savoir si la ligne doit être colorée

Sub suiviRelance()
   Dim dl As Date 'déclare la variable dl (Date du Jour)
   dl = Now()
   Range("G1").Value = dl

   Dim pl As Range 'déclare la variable pl (PLage)
   Dim cel As Range 'déclare la variable cel (CELlule)

   Set pl = Range("F4:F" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne F en commençant à la ligne 4)
      For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
         If Cells(cel.Row, 6) < Date - 14 Then'fait un test pour savoir s'il faut relancer
                    Range(Cells(cel.Row, 1), Cells(cel.Row, 15)).Interior.ColorIndex = 3 'colore la ligne de rouge
         End If
      Next cel 'prochaine cellule de la boucle

End Sub

Cordialement et bon courage pour la recherche d'emploi

Merci de la réponse, je vais mettre en pratique illico.

Bon j'avance,

Une nouvelle version qui marchaute ...

Le test sur les réponses reçus ne marche pas en autres.

Il ne faut pas hésiter à corriger ma syntaxe car je débute ou à simplifier.

Sub suiviRelance()

Dim dj As Date 'déclare la variable dj (Date du Jour)
dj = Now()
Range("G1").Value = dj

Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
    Set pl = Range("F4:F" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne F en commençant à la ligne 4)
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl

        'regarde si une date d'envoi est supérieur à la date du jour
        If DateDiff("d", cel, dj) < 0 Then
            cel.Interior.ColorIndex = 3 'colore la cellule de rouge
        End If 'fin de la condition

        ' regarde si une date de réception est saisie
        If cel.Offset(0, 1) <> "" Then
            cel.Offset(0, 3).Interior.ColorIndex = 4 'colore la cellule de vert
        End If 'fin de la condition

        ' regarde si l'écart entre la date d'envoi et la date du jour est supérieur à 15 jours
        If DateDiff("d", cel, dj) < 15 Then
            cel.Offset(0, 3).Interior.ColorIndex = 46 'colore la cellule d'orange
        End If 'fin de la condition

        If DateDiff("d", cel, dj) > 15 Then
            cel.Offset(0, 3).Interior.ColorIndex = 3 'colore la cellule de rouge
        End If 'fin de la condition

    Next cel 'prochaine cellule de la boucle

End Sub

L'ordre des tests fait que ta cellule est colorée une première fois puis une deuxième fois

Il faut donc mettre le test sur la date de la réponse en fin de macro si c'est la couleur que tu veux voir apparaitre

Ok merci. Peut être du coup faire une comparaison pour voir si la cellule est pleine ou non ?

Bon cela avance. Je crois que c'est bon et que la simplification est correcte. Une remarque d'un expert est la bienvenue. Peut être que ce n'est pas assez optimisé ou maladroit. ou que j'ai oublié une possibilité.

Sub suiviRelance()

Dim dj As Date 'déclare la variable dj (Date du Jour)
dj = Now()
Range("G1").Value = dj

Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
    Set pl = Range("F4:F" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne F en commençant à la ligne 4)
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl

        If DateDiff("d", cel, dj) < 0 Then
            cel.Interior.ColorIndex = 3 'colore la cellule de rouge

            ElseIf DateDiff("d", cel, dj) < 15 And IsEmpty(cel.Offset(0, 1)) = True Then
                cel.Offset(0, 3).Interior.ColorIndex = 46 'colore la cellule d'orange

            ElseIf DateDiff("d", cel, dj) > 15 And IsEmpty(cel.Offset(0, 1)) = True Then
                    cel.Offset(0, 3).Interior.ColorIndex = 3 'colore la cellule de rouge

            ElseIf IsEmpty(cel.Offset(0, 1)) = False Then
            cel.Offset(0, 3).Interior.ColorIndex = 4 'colore la cellule de vert

        End If 'fin de la condition

    Next cel 'prochaine cellule de la boucle

End Sub

Regarde si ça te va

C'est normal que je ne vois pas le code ?

Le code est dans le fichier

Cela dit si le tien marche comme tu veux, laisse le tel quel.

Il vaut mieux un code qu'on a travaillé que celui d'un autre

Cordialement

J'ai regardé mais c'est blanc dans module 1.

Tu peux peut être me faire une copie ici. C'est toujours instructif de regarder le code d'un autre pour voir ces erreurs.

Merci en tout cas de ton aide.

Sub suiviRelance()

Dim dj As Date 'déclare la variable dj (Date du Jour)
dj = Now()
Range("G1").Value = dj

Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
   Set pl = Range("F4:F" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne F en commençant à la ligne 4)
   For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl

        'regarde si une date d'envoi est supérieur à la date du jour
       If DateDiff("d", cel, dj) < 0 Then
            cel.Interior.ColorIndex = 3 'colore la cellule de rouge
       Else 'fin de la condition

        ' regarde si une date de réception est saisie
             If IsEmpty(cel.Offset(0, 1)) = False Then
                 cel.Offset(0, 3).Interior.ColorIndex = 4 'colore la cellule de vert
            Else 'fin de la condition

        ' regarde si l'écart entre la date d'envoi et la date du jour est supérieur à 15 jours
                  If DateDiff("d", cel, dj) < 15 Then
                        cel.Offset(0, 3).Interior.ColorIndex = 46 'colore la cellule d'orange
                 End If 'fin de la condition

                 If DateDiff("d", cel, dj) > 15 Then
                        cel.Offset(0, 3).Interior.ColorIndex = 3 'colore la cellule de rouge
                End If 'fin de la condition
            End If
     End If
    Next cel 'prochaine cellule de la boucle

End Sub

 

Merci pour le code.

J'aime ta logique du coup en fixant d'abord les dates de réception en vert puis en déroulant le reste.

Une petite question comme je vais exécuter au lancement du fichier comment réinitialiser la couleur des cellules par leur couleur par défaut ?

Rechercher des sujets similaires à "suivi recherches emploi"