Copier plusieurs cellules avec pas sur vba

zoubitom

XLDnaute Nouveau
Bonjour,

Je suis nouvel arrivant sur ce forum et dans le monde de VB. Je vais donc essayer d'etre clair sur l'exposer de mon problème:

Problème:

Je récupère des données hygrométrique (humidité/Température) avec un pas de temps de 1 minute (1 donnée par minute) pour une période d'un mois.
J'obtiens donc un fichier excel avec 5 colonnes mais plus de 44000 lignes!!
Pour pouvoir alléger l'exploitation de ces données et notamment extraire des graphiques, j'aimerais réduire le nombre de données par pas de temps de 30mn ou 1h.

Souhait:

1-Copier à partir d'une feuille, plusieurs cellules d'une même colonnes (date/heure) avec un pas de 30 cellules (soit une cellule copiée toutes les 30 cellules) et coller cette selection sur une autre feuille (meme classeur) pour que ces cellules soient à la suite.
2-Faire la moyenne des données correspondantes entre deux pas de temps (soit 30 cellules) et l'insérer sur la meme ligne que la cellule de temps correspondante.

Bon alors je sais bien que ce n'est pas facile de comprendre comme ça donc je vous joint mon fichier xls avec en feuil1 les données de base, en feuil2 les données traitées (j'ai fais trois lignes - sur 1400 - en exemple) et en fueil3 un petit schéma représentatif de ce je souhaite réaliser).

Merci d'avance pour votre aide,

Thomas
 

Pièces jointes

  • Données Septembre 2009.zip
    40.8 KB · Affichages: 63
  • Données Septembre 2009.zip
    40.8 KB · Affichages: 70
  • Données Septembre 2009.zip
    40.8 KB · Affichages: 76
Dernière édition:

zoubitom

XLDnaute Nouveau
Re : Copier plusieurs cellules avec pas sur vba

Bonjour a tous

Une version vba

NB: en feuil2 j'ai modifié les formules lignes 3 (pour etre homogene avec ligne 4 et suivantes)
Bonjour pierrejean,

Cette macro correspond exactement à ce que je voulais! Merci beaucoup!

Si je comprends bien, si j'ajoute une colonne de donnée et que je veux changer le pas de temps (20mn au lieu de 30mn). Je modifie ta macro de la manière ci-après.

Mes connaissances VBA etants très limitées, mais désirant meiux apprendre, pourriez vous m'expliquer brièvement à quoi correspondent les différentes étapes (que fait la machine) ?

Et encore merci!

Macro modifiée:


Sub test()
Sheets("Feuil3").Cells.ClearContents
Sheets("Feuil1").Range("A1:F1").Copy Destination:=Sheets("Feuil3").Range("A1")
ligne = 2
For n = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row
If Int(Sheets("Feuil1").Range("A" & n)) = Sheets("Feuil1").Range("A" & n) Then
debut = n
Exit For
End If
Next n
tablo = Sheets("Feuil1").Range("A1:F" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
For n = LBound(tablo, 1) + 1 To UBound(tablo, 1)
tot1 = tot1 + tablo(n, 2)
tot2 = tot2 + tablo(n, 3)
tot3 = tot3 + tablo(n, 4)
tot4 = tot4 + tablo(n, 5)
tot5 = tot5 + tablo(n, 6)
If (n - debut) Mod 20 = 0 Then
Sheets("Feuil3").Cells(ligne, 1) = tablo(n, 1)
Sheets("Feuil3").Cells(ligne, 2) = tot1 / 20
Sheets("Feuil3").Cells(ligne, 3) = tot2 / 20
Sheets("Feuil3").Cells(ligne, 4) = tot3 / 20
Sheets("Feuil3").Cells(ligne, 5) = tot4 / 20
Sheets("Feuil3").Cells(ligne, 6) = tot5 / 20
tot1 = 0
tot2 = 0
tot3 = 0
tot4 = 0
tot5 = 0
ligne = ligne + 1
End If
Next n
Sheets("Feuil3").Cells(2, 2) = Sheets("Feuil1").Range("B" & debut - 1)
Sheets("Feuil3").Cells(2, 3) = Sheets("Feuil1").Range("C" & debut - 1)
Sheets("Feuil3").Cells(2, 4) = Sheets("Feuil1").Range("D" & debut - 1)
Sheets("Feuil3").Cells(2, 5) = Sheets("Feuil1").Range("E" & debut - 1)
Sheets("Feuil3").Cells(2, 6) = Sheets("Feuil1").Range("F" & debut - 1)

End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Copier plusieurs cellules avec pas sur vba

Re

Voici le fichier avec la macro commentée
Noter la modification
For n = debut To UBound(tablo, 1) au lieu de For n = Lbound(tablo,1)+1 To UBound(tablo, 1)
Qui ne fonctionnerait pas dans d'autres conditions

Pour juger des modifications , le mieux est encore de lancer la macro et d'observer les resultats
 

Pièces jointes

  • Données Septembre 2009.xlsm
    60 KB · Affichages: 69
  • Données Septembre 2009.xlsm
    60 KB · Affichages: 72
  • Données Septembre 2009.xlsm
    60 KB · Affichages: 71

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet