Neophyte excel: aide possible sur fichier excel?

Bonjour,

j'ai beaucoup hésité avant de m'inscrire et poster car je suis un utilisateur très occasionnel d'excel mais j'avoue qu'après avoir beaucoup cherché sur le net, j'ai été séduit par la rapidité avec laquelle certains utilisateurs ont pu avoir leur solution toute faite....

je me lance: j'ai intégralement "pompé" un fichier excel sur le site de Jacques Boisgontier qui liste (avec brio) la liste des dossiers et sous dossiers d'un répertoire (choisi préalablement avec un bouton "arborescence répertoire" situé en haut du tableau excel) (cf fichier joint).

Chaque dossier est en fond jaune et comprends 3 à 5 fichiers pdf (colonne A) (dont le nom de l'un contient en principe le mot "signé") ainsi que leur date de création (colonne C).

Ma demande initiale est la suivante:

1- Serait-il possible d'écrire en colonne E (lignes 4,9,14,...etc correspondant au nom du dossier concerné) le "nom et prénom" de la personne sur fond rouge à la double condition "il existe bien un fichier pdf qui contient le mot "signé en colonne A" ET "la date de création de ce fichier "signé" est antérieure au 31/01/2017 en colonne C"?

2- Dans le cas où le fichier pdf avec le mot "signé" n'existe pas (ex: voir lignes 185 à 188), l'idéal serait de mentionner cette anomalie en colonne E en écrivant le "nom et prénom" sur fond d'une autre couleur.

3- Quant aux dossiers qui ne respectent pas les 2 conditions du 1-, on laisse la cellule vide colonne E.

je comprendrais que vous soyez rebuté de répondre à cette demande (qui est une invite à la paresse de l'émetteur...) mais j'avoue qu'à 65 ans, je fatigue de trouver une solution après plusieurs jours de recherche sur le net....

bien cordialement

Bonjour blow,

voyez si le fichier joint vous convient

Bonjour,

edit :bonjour njhub

une proposition

D'abord, je suis "éclaté" de voir à quelle vitesse 2 personnes m'ont répondu sur ce forum )!

D'autre part, je remercie vivement njhub et h2so4 de leur proposition.

Même si je ne connais rien au code VBA, j'avoue que la solution de h2so4 me convient énormément (une fois que le fichier a été activé macro incluse), avec l'utilisation du bouton "vérification signature" et code vba correspondant.

pour finaliser mon fichier, j'aurai qq questions complémentaires à poser à h2so4:

1- si je veux changer la couleur du fond pour le nom prénom qui ne possède pas de fichier avec le mot "signé" (ligne 184), que dois-je changer dans le code vba de la procédure sub "aargh" et à quelle ligne?

2- même question si je veux changer le seuil de la date 31/01/2017 en 31/03/2017 (par exemple)?

3- en fait, ce fichier excel est un tout petit extrait d'un fichier plus vaste qui comporte 1400 noms et prénoms (soit environ 6000 lignes) mais qui garde la même structure: comment modifier le code vba de la procédure sub "aargh" pour la généraliser à tout mon fichier?

avec mes remerciements à tous les contributeurs présents ou à venir, en espérant ne pas abuser de votre temps!

cordialement

bonsoir

j'ai mis des commentaires dans le code

Sub aargh()
    dl = Cells(Rows.Count, 1).End(xlUp).Row + 1    'nombre de lignes à traiter
    i = 3    'on commence à la ligne 3
    Do    'on boucle sur les lignes
        a = Cells(i, 1)    ' on prend le contenu de la ligne i, colonne A (ou 1)
        If Mid(a, 5, 1) = "[" Or i = dl Then    'ligne contenant un nom ou dernière ligne
            If k <> 0 Then    ' si nom à afficher on afficher le nom en ligne k
                Cells(k, "E") = nomprenom    'on met le nom
                Cells(k, "E").Interior.Color = cs    ' on met la couleur
                If i = dl Then Exit Do    'si dernière ligne,on sort de la boucle
            End If
            'on extrait nom prénom du nom du répertoire
            nomprenom = Right(a, Len(a) - InStrRev(a, "\"))
            nomprenom = Left(nomprenom, Len(nomprenom) - 1)
            cs = vbWhite    'par défaut la couleur de fond est blanc
            k = i    ' ligne du nom prénom
        ElseIf Left(a, 5) = String(5, " ") Then    ' si ligne avec nom de fichier
            If InStr(UCase(a), "SIGNÉ") <> 0 Then    'si fichier signé trouvé
                If Cells(i, "C") < DateSerial(2017, 1, 31) Then    'si date < au 31/01/2017
                    cs = vbRed    'couleur de fond = rouge
                Else    'si date >= au 31/01/2017
                    cs = vbYellow    'couleur de fond = jaune
                End If
            End If
        End If
        i = i + 1    'on passe à la ligne suivante
    Loop
    Range("e1").EntireColumn.AutoFit    'on ajuste la largeur de la colonne au nom le plus long
End Sub

1- si je veux changer la couleur du fond pour le nom prénom qui ne possède pas de fichier avec le mot "signé" (ligne 184), que dois-je changer dans le code vba de la procédure sub "aargh" et à quelle ligne?

remplacer cette instruction

 cs = vbWhite    'par défaut la couleur de fond est blanc

parcs=rgb(r,g,b) où r,g,b sont des valeurs de 0 à 255 exprimant la quantité de rouge, de vert et de bleu de la couleur.

ex cs=RGB(255,0,255) 'pour violet

2- même question si je veux changer le seuil de la date 31/01/2017 en 31/03/2017 (par exemple)?

adapter cette instruction

 If Cells(i, "C") < DateSerial(2017, 1, 31) Then    'si date < au 31/01/2017

3- en fait, ce fichier excel est un tout petit extrait d'un fichier plus vaste qui comporte 1400 noms et prénoms (soit environ 6000 lignes) mais qui garde la même structure: comment modifier le code vba de la procédure sub "aargh" pour la généraliser à tout mon fichier?

rien à changer, le code s'adapte au nombre de lignes trouvées.

c'est génial de voir des personnes aussi proactives sur ce genre de sujet (assez abrupt) et postent tard dans la nuit )

dans tous les cas, encore merci pour votre aide; je considère ma demande comme résolue (je ne sais pas où se trouve le petit smiley qui correspond à la question résolue)!

2 Questions facultatives relatives à l'évolution de mon "projet":

en effet, dans un proche avenir, je copierai dans ce tableau colonne F un extract de l'annuaire intra-entreprise qui donnera dans cette colonne les adresses mail de ces 1400 noms. L'objectif sera alors:

a) d'adresser automatiquement un mail aux personnes marquées en fond rouge (c'est a dire ceux qui satisfont les 2 conditions explicitées dans mon 1er post)

b) de dénombrer le nombre de cellules en fond rouge (ainsi que des autres couleurs existantes) afin de gérer les actions qui en découleront: envois de mails, corrections des fichiers pdf où il manque le mot "signé",...etc.

Mes 2 questions facultatives sont alors les suivantes:

1) est ce que excel a la possibilité d'activer une action "extérieure" au fichier joint, qui utilisée en entrée d'une autre application "annuaire interne intra entreprise", permettrait de déclencher l'envoi de mails automatiques aux personnes marquées en fond rouge (le texte standard de l'email automatique serait préconfiguré dans l'appli extérieure "annuaire intra entreprise)?

2) quelles formules excel simples permettent de compter les cellules de différentes couleurs dans la colonne E?

cordialement et bonne journée!

blow a écrit :

2 Questions facultatives relatives à l'évolution de mon "projet":

en effet, dans un proche avenir, je copierai dans ce tableau colonne F un extract de l'annuaire intra-entreprise qui donnera dans cette colonne les adresses mail de ces 1400 noms. L'objectif sera alors:

a) d'adresser automatiquement un mail aux personnes marquées en fond rouge (c'est a dire ceux qui satisfont les 2 conditions explicitées dans mon 1er post)

c'est possible à conditions de pouvoir interfacer le système de messagerie. il y a de nombreux exemples sur le forum (pour outlook, thunderbird voire cdo, ...)

b) de dénombrer le nombre de cellules en fond rouge (ainsi que des autres couleurs existantes) afin de gérer les actions qui en découleront: envois de mails, corrections des fichiers pdf où il manque le mot "signé",...etc.

compter en fonction des couleurs ce n'est pas une bonne idée, excel n'a pas les fonctions pour cela. Mieux vaut ajouter une colonne avec un code et faire les formules sur base de ce code.

Mes 2 questions facultatives sont alors les suivantes:

1) est ce que excel a la possibilité d'activer une action "extérieure" au fichier joint, qui utilisée en entrée d'une autre application "annuaire interne intra entreprise", permettrait de déclencher l'envoi de mails automatiques aux personnes marquées en fond rouge

(le texte standard de l'email automatique serait préconfiguré dans l'appli extérieure "annuaire intra entreprise)?

demander au responsable de l'annuaire d'entreprise si possible et comment faire

2) quelles formules excel simples permettent de compter les cellules de différentes couleurs dans la colonne E?

pas de formule, il faut passer par du vba

merci pour tout!

je demande à l'administrateur de fermer ce post.

bonne continuation

Rechercher des sujets similaires à "neophyte aide possible fichier"