Macro pour archiver les données d'un tableau...

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour l'écriture d'une macro afin d'archiver les données d'un tableau.

Le problème est que le tableau contient des titres annonçant des données fluctuentes....

voir fichier.

Je vous remercie du temps que vous voudrez bien vouloir m'accorder.

Bien amicalement,

Christian
 

Pièces jointes

Dernière édition:
Re : Macro pour archiver les données d'un tableau...

Bonjour Christian,

Problème pas très difficile mais très casse-bonbons, ce n'est donc pas ma tasse de thé.

Juste pour vous aider sur ceci :

donc comment faire pour archiver vers la feuille 'Archives' ces données fluctuentes. ?
il faut bien sûr passer en revue les données, les rubriques étant repérées par leur couleur de police.

A+
 
Re : Macro pour archiver les données d'un tableau...

Bonjour Christian,

J'avais tord hier, ce n'est pas du tout casse-bonbons :

Code:
Sub Archiver()
Dim lig As Long, c As Range, col As Integer
With Feuil2
  lig = .[B65536].End(xlUp).Row
  For Each c In Feuil1.[B5:B65536,E5:E65536].SpecialCells(xlCellTypeConstants)
    If c.Font.ColorIndex = 5 Then 'police bleue
      lig = lig + 1
      .Cells(lig, "B") = Feuil1.[B1]
      Intersect(.Rows(lig), .[C:D,F:F]) = Feuil1.[B2]
      .Cells(lig, "E") = DatePart("ww", Feuil1.[B2], 2, 1) 'N° de semaine
      .Cells(lig, "G") = Feuil1.Cells(4, c.Column)
      .Cells(lig, "H") = c
      col = 9
    Else
      .Cells(lig, col) = c
      .Cells(lig, col + 1) = c(1, 2)
      col = col + 2
    End If
  Next
  .Activate 'facultatif
End With
End Sub

Sub Test()
'Voir l'Aide VBA pour comprendre DatePart
MsgBox "N° de semaine du 1er type => " & DatePart("ww", "1/1/2012", 2, 1)
MsgBox "N° de semaine du 2ème type => " & DatePart("ww", "1/1/2012", 2, 2)
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : Macro pour archiver les données d'un tableau...

Re,

Pour faire bonne mesure, j'ai ajouté quelques lignes de code :

Code:
v1 = Feuil1.[B1].Text
v2 = Feuil1.[B2]
If v1 = "" Or Not IsDate(v2) Then _
  MsgBox "Les cellules B1 et B2 doivent être renseignées...": Exit Sub
With Feuil2
  '---suppression de l'archivage s'il existe déjà---
  lig = .[B65536].End(xlUp).Row
  t = .Range("B1:C" & lig) 'matrice, plus rapide
  For i = lig To 2 Step -1
    If t(i, 1) = v1 And t(i, 2) = v2 Then .Rows(i).Delete
  Next
  '---nouvel archivage---
  lig = .[B65536].End(xlUp).Row
Un archivage (défini par les cellules B1 et B2) ne peut donc être entré qu'une fois.

Et s'il était erroné on peut donc ainsi le modifier.

Fichier (2).

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
15
Affichages
636
Retour