Afficher un numéro en fonction d'une date Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'214
Appréciations reçues : 652
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 24 mars 2017, 05:21

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.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
O
Orion66
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 16 mars 2017
Version d'Excel : 2017 FR

Message par Orion66 » 24 mars 2017, 08:39

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.

:sp: :sp: :sp: :sp: :sp: :sp: :sp: :sp:
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'214
Appréciations reçues : 652
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 24 mars 2017, 17:31

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

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'214
Appréciations reçues : 652
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 25 mars 2017, 03:36

et pour terminer :
Sheets("visu").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
réactualise le TCD

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message