IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Synthèse d'un tableau excel [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Femme Profil pro
    Secrétaire technique
    Inscrit en
    Janvier 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 15
    Par défaut Synthèse d'un tableau excel
    Bonjour,

    Je viens demander de l'aide pour effectuer une synthèse d'un classeur excel.
    J'ai un classeur excel composé de 15 feuilles.
    Dans chaque feuilles on retrouve un tableau répertoriant les données qui me permettent de calculer automatiquement les dates de validation après réception d'un documents et lorsque j'indique la date réelle de validation cela me donne la date à laquelle mon fournisseur doit me retourner le document modifié.
    Malheureusement c'est fichiers sont lourds et chaque début de semaine il faut que je transmette une synthèse rapide des documents qui sont en retard. Etant très novice sur Excel, si quelqu'un pouvait m'aider? si une solution existe ça serait fort sympathique.

    Vous trouvez une image de mon tableau en PJ.

    Merci par avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour JULATR,
    Mets ton fichier en pièce jointe et j'y regarderai de plus près, les autres membres également.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Bonjour, sans trop m'avancer oui il existe des solutions.Consolidation, Tableau Croisé Dynamique, Macro. Mais eric à raison, joignez un fichier avec un exemple du résultat attendu.

    Cordialement,

  4. #4
    Membre habitué
    Femme Profil pro
    Secrétaire technique
    Inscrit en
    Janvier 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 15
    Par défaut Merci
    Bonsoir,

    Merci pour votre aide.

    Je vous transmets le fichier Excel, je ne l'avais pas mis sur mon premier post car trop volumineux, j'ai donc supprimé quelques données pour le joindre.

    WOLF: comme exemple de résultat attendu il faudrait que la synthèse comporte ces renseignements :

    - Les colonnes de A à F (correspondent à la référence du document)
    - qu'elle m'affiche uniquement les documents en retard et/ou J-3
    - J'ai aussi besoin de la date d'échéance et le nb de jour de retard par rapport à celle-ci.

    Cela pour chaque feuille de calcul.

    Encore merci et si besoin de plus de précisions n'hésitez pas
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, regarde ici et adapte à ton contexte

  6. #6
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Merci d'avoir donné des explications mais des dates il y en 3 ou 4 sur une même ligne...Difficile de savoir (quand on est extérieur au contexte) lesquelles donneront le résultat escompter.

    A première vu, vous pouvez simplifier vos feuilles en rajoutant deux colonnes et en groupant les autres comme dans l'exemple ci-dessous (j'ai pris comme formule L4-M4 ne sachant pas trop qui fait quoi dans votre fichier).

    Formule pour la colonne "Etat" à étirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(N4<>"";N4-L4>-3);"Retard";SI(N4="";"Non validée";""))
    Formule pour la colonne Délai/j
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(G4="";"";SI(G4="Non validée";"";SI(ET(G4="Retard";N4-L4>0);N4-L4;SI(N4-L4<0>-3;N4-L4))))
    Cordialement

  7. #7
    Membre habitué
    Femme Profil pro
    Secrétaire technique
    Inscrit en
    Janvier 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 15
    Par défaut
    Bonjour WOLF,

    Merci pour vos formules à première vue c'est tout à fait ce que je recherche.

    Effectivement j'aurais du être plus explicite concernant les dates à utiliser car lorsqu'on connait pas le contexte c'est un peu du chinois tout ça...

    Je vais essayer d'adapter vos formules aux bonnes colonnes qui sont (J (date au + tard validation), L (date réelle de validation) et M (état validation)

    Dans le tableau lorsque je renseigne H4, J4 me donne une date automatiquement, lorsque je renseigne L4 je vais avoir une date automatique sur R4 et en fonction de l’état de validation mentionné dans M4 la date de R4 se reporte dans la colonne AY4 si le document doit être transmis en BPE.

    Je ne sais pas si c'est plus clair.

    Concernant vos formules si j'ai bien compris le principe, il faut que je créé un autre classeur avec les mêmes feuilles mais simplifiés et que j’adapte les formules sur celui ci ? et les colonnes à utiliser sont J4-L4? ce qui me donnerais cette formule POUR LA COLONNE ETAT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(L4<>"";L4-J4>-3);"Retard";SI(L4="";"Non validée";""))
    ET POUR LA COLONNE DELAIS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(G4="";"";SI(G4="Non validée";"";SI(ET(G4="Retard";L4-J4>0);L4-J4;SI(L4-J4<0>-3;L4-J4))))
    G correspond à la colonne ETAT qui a été rajoutée?

    Et petite question vous me dites avoir utilisé les colonnes L4 -M4 mais dans la formule c'est N4 qui ressort ?(je suppose une erreur de frappe dans votre explication)

    Désolé de poser pleins de questions mais je veux comprendre le fonctionnement des formules.

    Merci encore
    Cordialement

  8. #8
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Bonjour, recréer un autre classeur n'est pas obligatoire, l'exemple de l'image c'est l'onglet 20 avec un filtrage sur les dossiers en retard et ceux qui sont non validé (dans mon calcul de date j'ai pris date réelle de validation - date au plus tard). + un groupage du reste des colonnes inutiles. voir dans le classeur ci-joint pour l'exemple.

    L'avantage pourrait-on dire de cette forme là, c'est d'avoir toutes les données sous la main. Quand vous présentez votre synthèse, si celui qui fait toujours ch* le monde vous demande précisément tel ou tel dossier ou il en est, vous n'avez plus qu'à enlever le filtre et dégrouper les colonnes (en 3 clic votre feuille redevient entière).

    Sinon si vous préférez avoir un onglet supplémentaire dédié qu'à la synthèse avec strictement que ce que vous avez demandez et avoir les infos de toutes les feuilles réunies, alors on fera une petite macro pour rappatrier tous se beau monde mais il faudra quoi qu'il en soit un marqueur dans la feuille (retard ou quelque chose d'autres) pour que la macro sache quelle information venir chercher

    http://cjoint.com/?3AukxFfjKnk

  9. #9
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour,
    Il y a un moyen d'effectuer une macro avec vérification de toute tes feuilles, j'y travaille.
    Peux me confirmer si j'ai bien saisi
    Si il y a une différence entre la date colonne J et la date colonne L supérieure à 3 jours et si la colonne S est vide => on reporte l'info dans l'onglet synthèse
    Si il y a une différence entre la date colonne R et la date colonne S supérieure à 3 jours et si la colonne M n'a pas la valeur VSO => on reporte l'info dans l'onglet synthèse
    Est-ce bien cela ?
    Y aurait-il d'autres anomalies à reporter dans l'onglet "Synthèse"?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  10. #10
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Bonjour eric, du coup vous me devancez mais ce n'est pas grave, je vous laisse la main pour éviter les doublons

  11. #11
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour WOLF,
    Tu peux également proposer un code qui sera de toute façon différent du miens, cela permet de comparer , faire évoluer une idée et bien sur approfondir ses connaissances, une des raisons pour laquelle nous sommes sur ce forum
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  12. #12
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Entièrement d'accord avec toi. Aujourd'hui n'est pas mon jour je crois. D'abord datediff me renvoie "vrai" (ah ha) et ensuite quand je fais une boucle sur toutes les feuilles j'ai deux pauvres lignes toutes minables qui s'affiche dans la synthèse :/ ! hum...J'ai besoin de repose je crois.

  13. #13
    Membre habitué
    Femme Profil pro
    Secrétaire technique
    Inscrit en
    Janvier 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 15
    Par défaut
    WOLF et Eric vous êtes au top

    Alors pour essayer d'être un peu plus clair sur mes besoins par écrit ce n’est pas forcément facile de bien exprimer les attentes.
    Donc Éric en fait il faut que la synthèse me donne :
    Si la date J et = a -3 date jour qui se trouve en F1
    Si date J est > à F1 et dans ce cas me donner en plus le nombre de jour de retard
    Par contre lorsque je renseigne L ne plus me le transmettre dans la synthèse car cela signifie que la tâche a été réalisée, enfin pour la 1ère soumission par contre si dans la colonne M la mention DEF apparaît reproduire les mêmes formules sur les colonnes U (qui correspond à J) et la colonne W (qui correspond à L)
    Ça c'est pour la synthèse correspondant à la charge de travail affectée à ma société.
    Par contre les dates en R et en S correspondent aux attributions de nos fournisseurs, pour lequel il me faudrait également une synthèse pour pouvoir faire un comparatif et un état démontrant que si ma société est en retard sur la validation « est-ce parce que le fournisseur la eu du retard dans sa livraison vice et versa »
    Concernant la macro je suis preneuse, et effectivement si je peux avoir des explications sur son fonctionnement ça serait top. Effectivement je suis novice mais j’aime élargir mes connaissances c’est pour cela que je suis venue sur le forum.
    Par contre si besoin je peux vous communiquer mes coordonnées en MP(si c'est possible) car de vive voix parfois les messages passent mieux

  14. #14
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    flute ! ici --> http://cjoint.com/?3AuoZENZFc0 j'ai mis votre fichier avec une macro pour faire comme dans la photo (mais pour tous les onglets) et sur une nouvelle feuille (la feuille synthèse). Il suffisait de faire ctrl + K et tout marchais mais je vois qu'il va falloir que je revois ce que j'ai fais au vu de votre précédent post...

    RhoooOOo

    Oui enfin moi là je suis top perdu et ne sais plus trop ce qu'il faut calculer :/

  15. #15
    Membre habitué
    Femme Profil pro
    Secrétaire technique
    Inscrit en
    Janvier 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 15
    Par défaut
    Oups désolé je vous donne du fil à retordre avec mon fichier!!! lol

  16. #16
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Même pas peur...On va y arriver et vous allez avoir un super beau fichier !

  17. #17
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour JULATR

    Voici le code que j'ai créé avec quelques explications qui,j'espère, te seront utiles pour la compréhension.
    J'espère également avoir bien compris tes souhaits.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    Option Explicit
    Sub Suivi_Validation()
    Dim sh As Worksheet
    Dim STS As Worksheet
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim Der1 As Integer
    Dim Der2 As Integer
    Dim RG As Range
    Dim STH As Range
    i = 1
    k = 1
     
    Set STS = ThisWorkbook.Sheets("Synthèse")
    Set sh = ThisWorkbook.Sheets(i)
     
    Set STH = ThisWorkbook.Sheets("Synthèse").Range("A1")
    STH = STH.Offset(0)
     
     
    For i = 1 To ThisWorkbook.Worksheets.Count 'Ici on réalise une boucle sur chacun des onglet
    With Sheets("Synthèse")
    Der2 = .Cells(.Rows.Count, 2).End(xlUp).Row ' Ici on compte le nombre de ligne de l'onglet "Synthèse"
    End With
     
     
        If Worksheets(i).Name <> ("Synthèse") Then 'On ne prend pas en compte l'onglet "Synthèse"
        Set RG = ThisWorkbook.Sheets(i).Range("A4") ' On prend la cellule A4  de chaque feuille comme référence
        RG = RG.Offset(0)
            With Sheets(i)
            Der1 = .Cells(.Rows.Count, 2).End(xlUp).Row 'Ici on compte le nombre de ligne de chaue onglet (le nombre de données valide)
            End With
     
                For j = 0 To Der1 - 4 'Ici on boucle sur les lignes de chaque onglet
     
                    If (RG.Offset(j, 9) - sh.Range("F1")) > 0 And (RG.Offset(j, 9) - sh.Range("F1")) <= 3 And RG.Offset(j, 11) = "" Then ' ici on compare la date de validation prévue et la date du jour pour la 1ère soumission
                                                                                            ' si il y a moins de 3 jours entre les deux dates => Alerte
                        If STH.Offset(k, 1) = "" Then 'si la première ligne de l'onglet "Synthèse" est vide on colle les données
                        STH.Offset(k, 0) = RG.Offset(j, 0)
                        STH.Offset(k, 1) = RG.Offset(j, 1)
                        STH.Offset(k, 2) = RG.Offset(j, 2)
                        STH.Offset(k, 3) = RG.Offset(j, 3)
                        STH.Offset(k, 4) = RG.Offset(j, 4)
                        STH.Offset(k, 5) = RG.Offset(j, 5)
                        STH.Offset(k, 6) = RG.Offset(j, 9)
                        STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                        STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 9) - sh.Range("F1")) & " jours !"
                        Else
                        k = Der2 'Si la première ligne de l'onglet "Synthèse" n'est pas vide on colle sur la 1ère ligne vide
                        STH.Offset(k, 0) = RG.Offset(j, 0)
                        STH.Offset(k, 1) = RG.Offset(j, 1)
                        STH.Offset(k, 2) = RG.Offset(j, 2)
                        STH.Offset(k, 3) = RG.Offset(j, 3)
                        STH.Offset(k, 4) = RG.Offset(j, 4)
                        STH.Offset(k, 5) = RG.Offset(j, 5)
                        STH.Offset(k, 6) = RG.Offset(j, 9)
                        STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                        STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 9) - sh.Range("F1")) & " jours !"
                        End If
                    End If
     
                    If RG.Offset(j, 11) <> "" And RG.Offset(j, 18) = "" And (RG.Offset(j, 9).Value - sh.Range("F1").Value) >= 3 Then 'ici on compare la date de validation prévue et la date du jour
                                                                                                                                       ' pour la 1ère soumission
                                                                                                                                       'si il y a plus de 3 jours de différences => Alerte et nb de jours de retard
                        If STH.Offset(k, 1) = "" Then
                        STH.Offset(k, 0) = RG.Offset(j, 0)
                        STH.Offset(k, 1) = RG.Offset(j, 1)
                        STH.Offset(k, 2) = RG.Offset(j, 2)
                        STH.Offset(k, 3) = RG.Offset(j, 3)
                        STH.Offset(k, 4) = RG.Offset(j, 4)
                        STH.Offset(k, 5) = RG.Offset(j, 5)
                        STH.Offset(k, 6) = RG.Offset(j, 9)
                        STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                        STH.Offset(k, 7) = (RG.Offset(j, 9) - sh.Range("F1")) & " jours de retard"
                        Else
                        k = Der2
                        STH.Offset(k, 0) = RG.Offset(j, 0)
                        STH.Offset(k, 1) = RG.Offset(j, 1)
                        STH.Offset(k, 2) = RG.Offset(j, 2)
                        STH.Offset(k, 3) = RG.Offset(j, 3)
                        STH.Offset(k, 4) = RG.Offset(j, 4)
                        STH.Offset(k, 5) = RG.Offset(j, 5)
                        STH.Offset(k, 6) = RG.Offset(j, 9)
                        STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                        STH.Offset(k, 7) = (RG.Offset(j, 9) - sh.Range("F1")) & " jours de retard"
                        End If
                    End If
     
                    If RG.Offset(j, 20) <> "" Then
                        If (RG.Offset(j, 20) - sh.Range("F1")) > 0 And (RG.Offset(j, 20) - sh.Range("F1")) <= 3 And RG.Offset(j, 22) = "" Then ' ici on compare la date de validation prévue et la date du jour pour la 2ème soumission
                                                                                                ' si il y a moins de 3 jours entre les deux dates => Alerte
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 20) - sh.Range("F1")) & " jours !"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 20) - sh.Range("F1")) & " jours !"
                            End If
                        End If
     
                        If RG.Offset(j, 22) <> "" And RG.Offset(j, 29) = "" And (RG.Offset(j, 20).Value - sh.Range("F1").Value) >= 3 Then ' ici on vérifie la 2nde soumission
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 20)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 20) - sh.Range("F1")) & " jours de retard"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 20)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 20) - sh.Range("F1")) & " jours de retard"
                            End If
                        End If
                    End If
     
                    If RG.Offset(j, 31) <> "" Then
                        If RG.Offset(j, 31) - sh.Range("F1") > 0 And RG.Offset(j, 31) - sh.Range("F1") <= 3 And RG.Offset(j, 33) = "" Then ' ici on compare la date de validation prévue et la date du jour pour la 3ème soumission
                                                                                                ' si il y a moins de 3 jours entre les deux dates => Alerte
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 31) - sh.Range("F1")) & " jours !"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 31) - sh.Range("F1")) & " jours !"
                            End If
                        End If
     
                        If RG.Offset(j, 33) <> "" And RG.Offset(j, 40) = "" And (RG.Offset(j, 31).Value - sh.Range("F1").Value) >= 3 Then ' ici on vérifie la 3ème soumission
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 31)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 31) - sh.Range("F1")) & " jours de retard"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 31)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 31) - sh.Range("F1")) & " jours de retard"
                            End If
                        End If
     
                    End If
     
                    If RG.Offset(j, 42) <> "" Then
                        If RG.Offset(j, 42) - sh.Range("F1") > 0 And RG.Offset(j, 42) - sh.Range("F1") <= 3 And RG.Offset(j, 51) = "" Then ' ici on compare la date de validation prévue et la date du jour pour la 4ème soumission
                                                                                                ' si il y a moins de 3 jours entre les deux dates => Alerte
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 42) - sh.Range("F1")) & " jours !"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 9)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = "Attention document à valider dans " & (RG.Offset(j, 42) - sh.Range("F1")) & " jours !"
                            End If
                        End If
     
     
                        If RG.Offset(j, 44) <> "" And RG.Offset(j, 51) = "" And (RG.Offset(j, 44).Value - RG.Offset(j, 42).Value) >= 3 Then 'ici on vérifie la 4ème soumission
                            If STH.Offset(k, 1) = "" Then
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 42)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 42) - sh.Range("F1")) & " jours de retard"
                            Else
                            k = Der2
                            STH.Offset(k, 0) = RG.Offset(j, 0)
                            STH.Offset(k, 1) = RG.Offset(j, 1)
                            STH.Offset(k, 2) = RG.Offset(j, 2)
                            STH.Offset(k, 3) = RG.Offset(j, 3)
                            STH.Offset(k, 4) = RG.Offset(j, 4)
                            STH.Offset(k, 5) = RG.Offset(j, 5)
                            STH.Offset(k, 6) = RG.Offset(j, 42)
                            STH.Offset(k, 6).NumberFormat = "[$-410]dd-mm-yyyy;@"
                            STH.Offset(k, 7) = (RG.Offset(j, 42) - sh.Range("F1")) & " jours de retard"
                            End If
                        End If
                    End If
     
                    If STH.Offset(k, 0) = "" Then
                         k = k
                    Else
                         k = k + 1
                    End If
                Next j
        End If
      Der1 = 0
      Der2 = 0
    Next i
    End Sub
    Si cela ne répond pas exactement à ce que tu voulais n'hésites pas à revenir sur le post avec tes remarques ou commentaires.

    Voici le fichiers avec la macro:

    Suivi Documentaire EEV.xlsm

    Eric

    Nom : Je suis Charlie.jpg
Affichages : 398
Taille : 11,5 Ko
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  18. #18
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour,
    Petites corrections (pas très orthodoxes je l'avoue) dans les formules pour répondre, je crois cette fois, à ta demande et ajout d'un bouton pour lancer la macro.
    Suivi Documentaire 2 EEV.xlsm

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  19. #19
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Bon,nous n'avons pas les même résultat mais nous n'avons pas les mêmes dates dans certaines cellules , exemple le numéro 24055, Eric a une échéance au 22 Janvier et moi une échéance au 27 (?!)

    Pour ma part voici ce que donne mon code de façon brute (sans avoir pris le temps de faire du coloriage de cellules etc)

    Bon maintenant, que faut-il calculer cher patron ?

  20. #20
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonsoir,
    Si les résultats sont différent c'est probablement parce que j'ai modifié certaines données pour mes tests.
    Wolf, peux_tu poster ton code ? Cela permettra de comparer et d'éventuellement ajuster nos codes respectifs.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2010] Tableau Excel réalisant la synthèse de plusieurs fichiers Excel
    Par Phil_57 dans le forum Excel
    Réponses: 8
    Dernier message: 05/10/2014, 00h00
  2. Réponses: 3
    Dernier message: 06/08/2013, 14h20
  3. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06
  4. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31
  5. [VC++6]intégrer un tableau excel
    Par albireo29 dans le forum MFC
    Réponses: 2
    Dernier message: 16/09/2004, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo