Afficher un numéro en fonction d'une date

Bonjour,

J'ai un problème épineux de planification sur Excel.

Dans le classeur ci-joint la première feuille est ma base de travail.

C'est un listing d'essai avec une date de mise en place de l'essai (colonne G) suivie par des observation dans le temps (date planifié par rapport à la colonne F).

Mon objectif est de faire apparaitre mois par mois sur les autres feuilles du classeur le numéro d'essai colonne E quand la date apparait dans les colonnes H à S.

Mon objectif n'est pas simple, j'espère avoir était clair.

N'hésitez pas à me posez vos question si vous en avez.

D'avance merci pour votre aide

J'ai esayé sans VBA ... un début :

Je vais reprendre car a priori j'avais quelques erreurs (impatience de répondre !!)

Voici la version corrigée (en attendant une autre version VBA mais dont la présentation finale sera très différente)

Salut,

Oui merci, j'avais pas eut le temps de répondre, mais effectivement il y avait quelque erreur.

Ou peut être une mauvaise compréhension de ma demande.

L'idée et la mise en forme me plaise, mais à priorie le formules n'aller pas chercher l'information souhaité.

N'hésite pas à me poser des question.

Merci et à plus.


Salut et merci sa commence à ressembler à ce que je souhaite.

Par contre j'avais pas mit le bon fichier, désolé.

Sa ne change pas beaucoup, mais le numéro d'essai reprend le numéro du protocol et le numéro Essai.

C'est une fusion de la colonne B et D.

Par contre pourquoi avoir mit 5 ligne par 2poque d'application A1 A2 A3 etc?

Il se peut que j'ai plusieurs observation le même jours. Est ce que ta formule peut gérer?

MErci pour ton aide

Orion66 a écrit :

Il se peut que j'ai plusieurs observation le même jours. Est ce que ta formule peut gérer?

C'est la raison pour laquelle j'ai mis 5 lignes car je n'ai pas réussi à amalgamer tous les MEP/A1/A2/...

Je regared ton nouveau fichier


Une version v2

Voici une façon plus simple et plus flexible car elle s'adapte au nombre d'essais par jour à suivre ... mais la présentation n'est pas (du tout) la même !

Via macro, en cliquant sur le bouton RECAP

Salut,

JE viens de regarder ton fichier, il me semble très intéressant.

Comment Fonctionne t'il? A quoi sert la feuille récap?

Si je me à jour les dates dans la base et que je clique sur récap, cela met à jour la feuille récap qui alimente le tableaux croisée dynamique?

Si j'ajoute des colonnes dans la feuilles base? Est ce que ta macro fonctionne toujours?

merci pour le boulot fait, cela va me faire gagner beaucoup de temps.

Bonne nuit

Orion66 a écrit :

Comment Fonctionne t'il? A quoi sert la feuille récap?

Elle met à plat les données pour alimenter le TCD
Orion66 a écrit :

Si je me à jour les dates dans la base et que je clique sur récap, cela met à jour la feuille récap qui alimente le tableaux croisée dynamique?

OUI
Orion66 a écrit :

Si j'ajoute des colonnes dans la feuilles base? Est ce que ta macro fonctionne toujours?

Oui si les colonnes sont ajoutées à droite.

Salut,

Désole pour ma réponse tardive.

J'ai regardé ta dernière version, elle est vraiment chouette, efficace et dynamique.

Si je rajoute des ligne dans la feuille base, elle seront bien prise en compte par ta macro?

C'est ma dernière question. Le fichier est très bien je vais le testé en action dans mon travail.

Après ta réponse je clôture la discussion.

Orion66 a écrit :

Si je rajoute des ligne dans la feuille base, elle seront bien prise en compte par ta macro?

OUI


Voici le code simplissime :

Sub recap()

ligne = 2
With Sheets("recap")
    .Range(.Cells(2, 1), .Cells(.Cells(1, 1).End(xlDown).Row, 3)).ClearContents
    For j = 7 To [A1].End(xlToRight).Column
        For i = 2 To [A1].End(xlDown).Row
            If IsDate(Cells(i, j)) Then
                If Cells(i, j) > 42735 Then 'après le 1/1/2017
                    .Cells(ligne, 1) = Cells(i, j)
                    .Cells(ligne, 2) = Cells(i, 5)
                    .Cells(ligne, 3) = Cells(1, j)
                    ligne = ligne + 1
                End If
            End If
        Next i
    Next j
End With

Sheets("visu").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

End Sub

Les dates commencent en G2 = j = 7 et i = 2

Les "jalons" sont en ligne 1 = Cells(1, j)

Les "essais" sont en colonne E (5ème colonne) = Cells(i, 5)

La macro ira jusqu'à la dernière ligne [A1].End(xlDown).Row et dernière colonne [A1].End(xlToRight).Column

Ne pas mettre de colonne ou de ligne vides au milieu.

Salut,

Oui je l'avais vu le code.

Il est peut être simplissime pour toi, mais pour moi il veut pas dire grands chose.

A l'occasion si tu veut m'en expliquer les grandes lignes se serait un grand plaisir pour moi.

Merci beaucoup pour ton travail et ton aide.

Explication du code

ligne = 2 : ce sera le début de la mise à plat

With Sheets("recap")
...
End With

quand une donnée sera précédée d'un point, elle fera référence à la feuille "recap"

.Range(.Cells(2, 1), .Cells(.Cells(1, 1).End(xlDown).Row, 3)).ClearContents

j'efface les données précédente, depuis la cellule ligne 2 colonne 1 jusque la cellule dernière ligne (End(xlDown).Row) colonne 3

    For j = 7 To [A1].End(xlToRight).Column
        For i = 2 To [A1].End(xlDown).Row
...
        Next i
    Next j

je vais prendre les dates depuis la colonne 7 (j) et la ligne 2 (i) jusqu'à la dernière colonne et dernière ligne

            If IsDate(Cells(i, j)) Then
                If Cells(i, j) > 42735 Then 'après le 1/1/2017
                   .Cells(ligne, 1) = Cells(i, j)
                    .Cells(ligne, 2) = Cells(i, 5)
                    .Cells(ligne, 3) = Cells(1, j)
                    ligne = ligne + 1
                End If
            End If

Si c'est une date après le 1/1/2017, alors je copie les infos dans récap à la ligne que j'incrémente ensuite

et pour terminer :

Sheets("visu").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

réactualise le TCD

Rechercher des sujets similaires à "afficher numero fonction date"