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 :

Transposer un tableau horizontal en vertical


Sujet :

Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut Transposer un tableau horizontal en vertical
    Bonjour,

    J'ai un travail à faire en urgence (pour demain - comme dans l'armée).

    Le travail : Je dois transposer les prix d'un tableau que j'utilise vers un tableau qui sera réintégré dans une base de données.

    Précisions : Cette base de données d'une nouvelle appli web du service est gérée par une société externe.

    Impératif : Je suis donc obligé d'adapter la mise en forme des données de mon tableau pour les mettre en forme suivant le tableau fourni par la société

    Voici une capture exemple du tableau que j'utilise et la mise en forme à obtenir en dessous (j'ai simplifié en enlevant des colonnes) :
    Nom : Clipboard 1.png
Affichages : 479
Taille : 14,0 Ko

    J'ai utilisé la fonction TRANSPOSE pour déplacer les prix de l'horizontal vers le vertical.
    Mais, cela se complique puisque dans le tableau destinataire des lignes sont à créer pour être en cohérence avec les données de la version du tableau de départ.

    Si vous avez une idée comment procéder, je suis preneur d'une ou plusieurs solutions.
    Encore merci de votre aide

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    c'est faisable avec macro
    à tester sur une copie de ton travail ... je suis qu'un autodidacte
    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
    Sub regroup()
    Application.ScreenUpdating = False
    Dim F1 As Worksheet
    Dim f2 As Worksheet
    Set F1 = Sheets("BASE")
    Set f2 = Sheets("RESULTAT")
    Application.ScreenUpdating = False
    f2.Cells.ClearContents
    Dim i As Long
    Set d = CreateObject("Scripting.Dictionary")
        '**********************************************************
        TblBD = F1.Range("A1:D" & F1.Range("D" & Rows.Count).End(xlUp).Row)
        For i = 2 To UBound(TblBD)
        For C = 2 To 4
        clé = TblBD(1, C) & "|" & TblBD(i, 1) & "|" & TblBD(i, C)
        d(clé) = TblBD(1, C) & "|" & TblBD(i, 1) & "|" & TblBD(i, C)
        Next C
        Next i
     f2.Range("A1").Resize(d.Count) = Application.Transpose(d.keys)
     Application.DisplayAlerts = False
      f2.Range("A1").Resize(d.Count).TextToColumns Other:=1, OtherChar:="|"
      Application.ScreenUpdating = True
      f2.Select
      End Sub
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Ouf quelle rapidité!

    1. Ca marche avec toutes mes 136 lignes

    2. J'ai besoin de précisions svp sur ce code, pour pouvoir appliquer sur mon tableau à transposer

    Pour être précis, cette ligne représente les cellules à traiter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TblBD = F1.Range("A1:D" & F1.Range("D" & Rows.Count).End(xlUp).Row)
    Je souhaite travailler sur mon tableau qui comporte plus de colonnes.
    Et bien sur sans tout perturber sur ce code, comment puis je le modifier, svp?

    Merci

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    Office365 => c'est clairement du boulot pour Power query ( 4 clics)

    Nom : 2020-10-19_110735.png
Affichages : 386
Taille : 19,6 Ko

    Nom : 2020-10-19_110748.png
Affichages : 402
Taille : 13,5 Ko

    Nom : 2020-10-19_110806.png
Affichages : 386
Taille : 40,8 Ko

    Nom : 2020-10-19_110822.png
Affichages : 395
Taille : 32,7 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Aîe, maître Pierre à frappé (comme la foudre)

    Et oui en effet, vu les captures ça le fait!
    Et puis c'est pas du VBA!

    Je vais m'y mettre et vous donner des nouvelles

    Encore merci

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TblBD = F1.Range("A1:D" & F1.Range("D" & Rows.Count).End(xlUp).Row)
    pour ton tableau de départ qui selon votre exemple commence de A à D
    autre chose à mettre à jour :
    la ligne 14 du code
    4 représente la dernière colonne
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  7. #7
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Bonjour BENNASR,

    Je te remercie vivement pour cette précieuse aide!

    Mais, je vais quand même suivre "l'option" plus simple de "maître Pierre". (pas lèche c*l du tout )
    Nan, pour être sérieux : c'est vrai que la solution paraît logique puisqu'il existe POWER QUERY" intégré dans XL-365

    Donc GRAND merci à vous deux BENNASR et Pierre!
    Deux solutions pour le prix d'une! Que demander de plus

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Deux solutions pour le prix d'une! Que demander de plus
    ne reste que cliquer sur RESOLU en bas

    Bonne continuation
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  9. #9
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Re-bonjour,

    Oups
    Si je remet le tableau avec les colonnes supprimées (colonnes B et C) : cela ne fait plus du tout le même résultat avec la requête
    Nom : Clipboard 1.png
Affichages : 426
Taille : 68,3 Ko
    Besoin d'aide svp

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Tu ne dois dépivoter que les colonnes avec les distances. Dans mon exemple, j'ai montré "dépivoter les autres colonnes" parce qu'il n'y avait qu'une autre colonne en plus des trois à dépivoter, mais avec les colonnes que tu montres, tu dois soit:
    • sélectionner les trois premières puis clic droit et dépivoter les autres;
    • sélectionner les trois dernières puis clic droit et dépivoter les colonnes.


    Nom : 2020-10-19_154035.png
Affichages : 375
Taille : 66,0 Ko


    Nom : 2020-10-19_154107.png
Affichages : 365
Taille : 81,7 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Oui en effet.
    Le résultat marche en gardant les 3 premières et "dépivoter les autres colonnes"

    Par curiosité : Tu connais la raison pourquoi la requête agis différemment selon le contenu des données?

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par PENSEUR33 Voir le message
    [...]
    Par curiosité : Tu connais la raison pourquoi la requête agis différemment selon le contenu des données?
    Désolé, je n'ai pas compris ta question
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre du Club
    Homme Profil pro
    Bureautique générale
    Inscrit en
    Juin 2020
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bureautique générale
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2020
    Messages : 103
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Tu avais précisé :
    "...avec les colonnes que tu montres, tu dois soit:
    sélectionner les trois premières puis clic droit et dépivoter les autres;
    sélectionner les trois dernières puis clic droit et dépivoter les colonnes."

    Comment fonctionne cette fonction "dépivoter les autres colonnes" ?
    - Est-ce que c'est selon le nombre de colonnes ?
    - Est-ce que c'est suivant le type de données dans les colonnes ?
    - Ou bien les deux à la fois ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2019, 09h49
  2. Transposer un tableau vertical variable en tableau horizontal fixe.
    Par RastaBomboclat dans le forum Macros et VBA Excel
    Réponses: 35
    Dernier message: 17/01/2016, 19h28
  3. Transformer tableau vertical en tableau horizontal
    Par misterlagaffe dans le forum IHM
    Réponses: 7
    Dernier message: 06/08/2014, 12h36
  4. Ascenseurs horizontal et vertical dans un tableau
    Par pc75 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 19/02/2009, 15h44
  5. Colonne horizontal vers vertical
    Par rvzip64 dans le forum Requêtes
    Réponses: 10
    Dernier message: 21/08/2006, 08h45

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