IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Rechercher des valeurs en colonnes et les mettre en lignes sous condition [XL-2010]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Par défaut Rechercher des valeurs en colonnes et les mettre en lignes sous condition
    Bonjour à tous,
    J'ai un tableau ou je souhaiterais mettre sous format de liste pour construire un TDC à la fin.
    Mon tableau de départ

    date/heure 00:00 00:30 01:00 01:30 02:00 02:30 03:00 03:30 04:00
    01/08/2014 0 0 12 50 25 60 30 79 102
    02/08/2014 1 0 0 60 56 41 02 30 28
    03/08/2014 0 2 0 45 8 23 55 68 78
    04/08/2014 1 0 0 60 56 12 36 54 89

    je veux avoir ça:
    date heure valeur
    01/08/2014 00:00 0
    01/08/2014 00:30 0
    01/08/2014 01:00 12
    01/08/2014 01:30 50
    01/08/2014 02:00 25
    01/08/2014 02:30 60
    01/08/2014 03:00 30
    01/08/2014 03:30 79
    01/08/2014 04:00 102
    02/08/2014 00:00 1
    02/08/2014 00:30 0
    02/08/2014 01:00 0
    02/08/2014 01:30 60
    02/08/2014 02:00 56
    02/08/2014 02:30 41
    02/08/2014 03:00 02
    02/08/2014 03:30 30
    02/08/2014 04:00 28
    03/08/2014 00:00 0
    03/08/2014 00:30 2
    03/08/2014 01:00 0
    03/08/2014 01:30 45
    03/08/2014 02:00 8
    03/08/2014 02:30 23
    03/08/2014 03:00 55
    03/08/2014 03:30 68
    03/08/2014 04:00 78
    04/08/2014 00:00 1
    04/08/2014 00:30 0
    04/08/2014 01:00 0
    04/08/2014 01:30 60
    04/08/2014 02:00 56
    04/08/2014 02:30 12
    04/08/2014 03:00 36
    04/08/2014 03:30 54
    04/08/2014 04:00 89
    Sachant que dans mon vrai fichier j'ai toutes les tranches horaires et tous les jours du mois
    Merci d'avance à tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution possible avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Sub TransposerALaLigne()
     
    Dim AireSource As Range
    Dim CelluleSource As Range
     
    Dim LigneDeTitreSource As Long
    Dim DerniereColonneSource As Long
    Dim DerniereLigneSource As Long
     
    Dim LigneEnCoursCible As Long
     
    Dim CtrJ As Long
     
     
        Sheets("Cible").Cells.ClearContents
     
        With Sheets("Source")
             LigneDeTitreSource = 10 ' Adapter
             DerniereColonneSource = .Cells(LigneDeTitreSource, .Columns.Count).End(xlToLeft).Column
             DerniereLigneSource = .Cells(.Rows.Count, 1).End(xlUp).Row
             Set AireSource = .Range(.Cells(LigneDeTitreSource + 1, 1), .Cells(DerniereLigneSource, 1))
        End With
     
        With Sheets("Cible")
             .Range(.Cells(1, 1), .Cells(1, 3)) = Array("Date", "Heure", "Valeur")
             .Cells.HorizontalAlignment = xlCenter
             LigneEnCoursCible = 2
             For Each CelluleSource In AireSource
                   For CtrJ = 1 To DerniereColonneSource - 1
                          With .Cells(LigneEnCoursCible, 1)
                                .Value = CelluleSource
                                .NumberFormat = "dd/mm/yyyy"
                          End With
                          With .Cells(LigneEnCoursCible, 2)
                                .Value = AireSource.Cells(1, 1).Offset(-1, CtrJ)
                                .NumberFormat = "h:mm;@"
                          End With
                          With .Cells(LigneEnCoursCible, 3)
                                .Value = CelluleSource.Offset(0, CtrJ)
                                .NumberFormat = "0"
                                .HorizontalAlignment = xlRight
                          End With
                          LigneEnCoursCible = LigneEnCoursCible + 1
     
                 Next CtrJ
     
            Next CelluleSource
            .Activate
        End With
        Set AireSource = Nothing
     
    End Sub
    Cordialement.

  3. #3
    Membre confirmé
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Par défaut
    Bonjour,
    Merci du retour.
    Je souhaite une solution sans code de préférence...
    Merci

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je souhaite une solution sans code de préférence...
    Malheureusement, dans ce cas précis le Copier/Collage Special - Transpose ne peux pas fonctionner, il n'y a donc pas d'autres solutions à mon avis qu'une procédure VBA
    Eric a été plus rapide que moi car j'allais te proposer une solution également en VBA proposée ici http://www.developpez.net/forums/d14...s/#post8123943
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,
    Une proposition sans VBA dans le classeur joint
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour Claude,
    C'est vrai qu'avec la formule DECALER associée à LIGNE, cela fonctionne parfaitement.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les noms des colonnes ET les mettre en ligne
    Par Tanebisse dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/11/2014, 17h35
  2. extraire certains champs de colonne et les mettre en ligne
    Par DécisionBI dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 15/07/2013, 13h33
  3. Réponses: 4
    Dernier message: 18/12/2009, 13h44
  4. [VBA-E] rechercher des valeurs?
    Par godSP2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2007, 20h55
  5. Récupérer l'ensemble des valeurs de colonnes
    Par maniolo dans le forum JDBC
    Réponses: 23
    Dernier message: 04/09/2006, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo