Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Historique excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RomainPOIRET

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterai crée un historique,
j'ai une feuille "SOURCE" où je souhaite avoir les infos suivantes "Jour", "Semaine", "Mois", "Ligne", "Equipe","TRS" dans la feuille "HISTO",

Cependant, 3 choses sont importantes pour moi :
- Le code s'activera lorsque je cliquerai sur l'onglet "HISTO",
- je prend uniquement les valeurs que si la colonne "H" de la feuille "SOURCE" est "non-vide",
- De plus je ne prend en aucun cas la colonne en rouge,

J'espère être assez clair ...

Je reste à disposition au besoin,

Je transmets en copie un exemple, d'avance merci,

Cordialement,

Romain
 

Pièces jointes

Solution
Bonjour RomainPOIRET,

Voyez le fichier joint et cette macro dans le code de la feuille "HISTO" :
VB:
Private Sub Worksheet_Activate()
Dim tablo, resu(), i&, n&
With Feuil1.[A1].CurrentRegion.Resize(, 19) 'Feuil1 : CodeName
    tablo = .Value 'matrice, plus rapide
    ReDim resu(1 To UBound(tablo), 1 To 6)
    For i = 2 To UBound(tablo)
        If .Cells(i, 1).Interior.ColorIndex <> 3 And tablo(i, 8) <> "" Then
            n = n + 1
            resu(n, 1) = tablo(i, 5)
            resu(n, 2) = tablo(i, 1)
            resu(n, 3) = tablo(i, 2)
            resu(n, 4) = tablo(i, 3)
            resu(n, 5) = tablo(i, 4)
            resu(n, 6) = tablo(i, 19)
        End If
    Next
End With
'---restitution---
With [A2] '1ère cellule de...
Bonjour RomainPOIRET,

Voyez le fichier joint et cette macro dans le code de la feuille "HISTO" :
VB:
Private Sub Worksheet_Activate()
Dim tablo, resu(), i&, n&
With Feuil1.[A1].CurrentRegion.Resize(, 19) 'Feuil1 : CodeName
    tablo = .Value 'matrice, plus rapide
    ReDim resu(1 To UBound(tablo), 1 To 6)
    For i = 2 To UBound(tablo)
        If .Cells(i, 1).Interior.ColorIndex <> 3 And tablo(i, 8) <> "" Then
            n = n + 1
            resu(n, 1) = tablo(i, 5)
            resu(n, 2) = tablo(i, 1)
            resu(n, 3) = tablo(i, 2)
            resu(n, 4) = tablo(i, 3)
            resu(n, 5) = tablo(i, 4)
            resu(n, 6) = tablo(i, 19)
        End If
    Next
End With
'---restitution---
With [A2] '1ère cellule de restitution, à adapter
    If n Then .Resize(n, 6) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1).EntireRow.Delete 'RAZ en desous
    .EntireColumn.Resize(, 6).AutoFit 'ajustement largeurs
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active la feuille.

PS : attention il y a un espace superflu dans le nom de l'onglet "SOURCE "...

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
925
Réponses
1
Affichages
590
Réponses
2
Affichages
996
Réponses
6
Affichages
3 K
Réponses
22
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…