Mofification de la présentation des données

Bonjour,

J'ai un problème de présentation des données afin de pouvoir en tirer un graphique :

Mon but : tirer une courbe de températures en fonctions de la date et de l'heure.

Facile, seulement les données que je j'extraie de mon logiciel de suivi ressemblent à ca (à imaginer dans un classeur ) :

8h00 9h00 10h00 11h00

01/08/2013 21.5 22.0 23.4 24.2

02/08/2013 24.5 19.4 22.8 23.7

je voudrais les transformer en :

01/08/2013 8h00 21.5

01/08/2013 9h00 22.0

01/08/2013 10h00 23.4

01/08/2013 11h00 24.2

02/08/2013 8h00 24.5

02/08/2013 9h00 19.4

02/08/2013 10h00 22.8

02/08/2013 11h00 23.7

Afin de pouvoir en sortir une courbe...

Merci de votre expertise

Phil

Bonjour, as-tu essayé en sélectionnant ton tableau, puis clic droit copier, puis clic droit collage spécial : transposé (en bas à droite de la fenêtre) ?

Bonjour Phil974

Si comme je le pense, tes valeurs sont dans la même cellule, voici un code qui va t'être utile

Sub MeF_Données()
  Dim ShtD As Worksheet
  Dim DLig As Long, Lig As Long, NLig As Long
  Dim Inc As Integer, Ind As Integer, TabHeure() As String, TabDon() As String
  ' Définir la feuille de destination
  Set ShtD = Sheets("Feuil2")
  ' Avec la feuille Source
  With Sheets("Feuil1")
    ' Créer un tableau des heures
    TabHeure = Split(.Range("A1").Value, " ")
    ' Trouver la dernière ligne de la feuille source
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne en commençant par la 2ème, la première contenant les heures
    For Lig = 2 To DLig
      ' Créer un tableau des données qui sont séparées par un espace
      TabDon = Split(.Range("A" & Lig).Value, " ")
      ' Pour chaque valeur du tableau, les inscrire dans la feuille de destination
      For Ind = 0 To UBound(TabDon) - 1
        ' Prochaine ligne vide de la feuille de destination
        NLig = ShtD.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
        ' Inscrire les valeurs
        ShtD.Range("A" & NLig).Value = Format(TabDon(0), "mm/dd/yyyy")
        ShtD.Range("B" & NLig).Value = TabHeure(Ind)
        ShtD.Range("C" & NLig).Value = TabDon(Ind + 1)
      Next Ind
    Next Lig
  End With
End Sub

A+

mamine a écrit :

Bonjour, as-tu essayé en sélectionnant ton tableau, puis clic droit copier, puis clic droit collage spécial : transposé (en bas à droite de la fenêtre) ?

j'ai bien cherché à utiliser transpose mais je n'y arrive pas

Merci BrunoM45

Les valeurs sont dans des cellules différentes (difficile de le montrer ici)

BrunoM45 a écrit :

Bonjour Phil974

Si comme je le pense, tes valeurs sont dans la même cellule, voici un code qui va t'être utile

Sub MeF_Données()
  Dim ShtD As Worksheet
  Dim DLig As Long, Lig As Long, NLig As Long
  Dim Inc As Integer, Ind As Integer, TabHeure() As String, TabDon() As String
  ' Définir la feuille de destination
  Set ShtD = Sheets("Feuil2")
  ' Avec la feuille Source
  With Sheets("Feuil1")
    ' Créer un tableau des heures
    TabHeure = Split(.Range("A1").Value, " ")
    ' Trouver la dernière ligne de la feuille source
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne en commençant par la 2ème, la première contenant les heures
    For Lig = 2 To DLig
      ' Créer un tableau des données qui sont séparées par un espace
      TabDon = Split(.Range("A" & Lig).Value, " ")
      ' Pour chaque valeur du tableau, les inscrire dans la feuille de destination
      For Ind = 0 To UBound(TabDon) - 1
        ' Prochaine ligne vide de la feuille de destination
        NLig = ShtD.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
        ' Inscrire les valeurs
        ShtD.Range("A" & NLig).Value = Format(TabDon(0), "mm/dd/yyyy")
        ShtD.Range("B" & NLig).Value = TabHeure(Ind)
        ShtD.Range("C" & NLig).Value = TabDon(Ind + 1)
      Next Ind
    Next Lig
  End With
End Sub

A+

Re-bonjour,

La marche à suivre est la suivante :

1/ Tu sélectionnes tout ton tableau

2/ Tu fais clic droit avec ta souris, tu sélectionnes "Copier".

3/ Tu cliques dans une cellule vide, tu fais clic droit avec ta souris et tu sélectionnes Collage spécial.

4/ Lorsque tu auras cliqué sur Collage spécial, une fenêtre va s'ouvrir, tu dois cocher "Transposé" en bas à droite de cette fenêtre.

5/ Clique sur OK.

Normalement tu devrais obtenir le résultat que tu recherches.

Re,

phil974 a écrit :

Merci BrunoM45

Les valeurs sont dans des cellules différentes (difficile de le montrer ici)

Ca m'appendra à répondre à un post sans détail explicite

Bonne chance

Rechercher des sujets similaires à "mofification presentation donnees"