Mise en forme donnée avec VBA

MAZETTE

XLDnaute Occasionnel
Bonjour,Bonjou le forum,

Je fait de nouveau appel à votre aide pour mettre en forme des données se trouvant sur Sheets1 vers Base

J'ai déja commencé à écrire un bout de code afin de supprimer tout le superflux (macro1) et écrit un bout de code (macro) avec ce que je souhaiteria obtenir sur la feuille Base.

Le truc c'est que Sheet1 comprend des donnes regroupées en heure et au quart d'heure

ex:

12 h12,12% 00 - 152,29% SUR PLACE86,61EMPORTE6,40DRIVE79,2015 - 303,10% SUR PLACE130,10DRIVE103,2030 - 453,29% SUR PLACE172,60DRIVE74,6045 - 603,44%

et mois je souhaiteria obtenir sur base quelque chose comme ça:


12 h
12,12% 911,7800 - 1512 h00 - 152,29% 172,2115 - 3012 h15 - 303,10% 233,3030 - 4512 h30 - 453,29% 247,2045 - 6012 h45 - 603,44% 259,07

Il s'agit en fait de regrouper les heures avec les quart d'heure me permettant par la suite de traiter les données ailleurs avec un VBA
du genre

Si la cellule A1 est egale à 12 h alors cellule B2 est egale à A1&A2
Si la cellule A1 est egale à 12 h alors cellule B3 est egale à A1&A3
etc...

Avec bien sur tous les crenaux horaires ex:

Si A4 est égale à 13h alors cellule B5 est egale à A4&A5

etc...comme sur la pièce jointe


Merci à vous pour le coup de main
 

Pièces jointes

  • essai.zip
    10.9 KB · Affichages: 26
  • essai.zip
    10.9 KB · Affichages: 29
  • essai.zip
    10.9 KB · Affichages: 28

MAZETTE

XLDnaute Occasionnel
Re : Mise en forme donnée avec VBA

Re à tous,

J'ai écrit ce truc qui marche bien pour une donnée mais comment faire pour créer une boucle ?

Dim c As Integer
Sheets("Base").Select
For c = Range("A5000").End(xlUp).Row To 4 Step -1 '
If Range("A" & c) = "11 h" Then Cells(c + 1, 2) = Range("A" & c) & Range("A" & c + 1)
Next c

merci à tous
 

MAZETTE

XLDnaute Occasionnel
Re : Mise en forme donnée avec VBA

re à tous,

Je suis presque au bout de mon problème avec ce code:

Dim c As Integer
Sheets("Base").Select
For c = 5000 To 4 Step -1 '
If Range("A" & c) = "11 h" Then
Cells(c + 1, 2) = Range("A" & c) & Range("A" & c + 1)
Cells(c + 2, 2) = Range("A" & c) & Range("A" & c + 2)
Cells(c + 3, 2) = Range("A" & c) & Range("A" & c + 3)
Cells(c + 4, 2) = Range("A" & c) & Range("A" & c + 4)
Else
If Range("A" & c) = "12 h" Then
Cells(c + 1, 2) = Range("A" & c) & Range("A" & c + 1)
Cells(c + 2, 2) = Range("A" & c) & Range("A" & c + 2)
Cells(c + 3, 2) = Range("A" & c) & Range("A" & c + 3)
Cells(c + 4, 2) = Range("A" & c) & Range("A" & c + 4)
Else
If Range("A" & c) = "13 h" Then
Cells(c + 1, 2) = Range("A" & c) & Range("A" & c + 1)
Cells(c + 2, 2) = Range("A" & c) & Range("A" & c + 2)
Cells(c + 3, 2) = Range("A" & c) & Range("A" & c + 3)
Cells(c + 4, 2) = Range("A" & c) & Range("A" & c + 4)
Else
If Range("A" & c) = "14 h" Then
Cells(c + 1, 2) = Range("A" & c) & Range("A" & c + 1)
Cells(c + 2, 2) = Range("A" & c) & Range("A" & c + 2)
Cells(c + 3, 2) = Range("A" & c) & Range("A" & c + 3)
Cells(c + 4, 2) = Range("A" & c) & Range("A" & c + 4)
Else
End If
End If
End If
End If
Next c

existe-il un moyen de remplacer les heures par une variable afin de simplifier le code merci à vous ?
 

Discussions similaires

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley