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

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

  • ArchiverDonnéesV01.zip
    16.6 KB · Affichages: 52
Dernière édition:

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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

  • ArchiverDonnées(1).xls
    66 KB · Affichages: 96

job75

XLDnaute Barbatruc
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

  • ArchiverDonnées(2).xls
    70 KB · Affichages: 83

Discussions similaires

Réponses
13
Affichages
153

Statistiques des forums

Discussions
312 239
Messages
2 086 495
Membres
103 234
dernier inscrit
matteo75654548