XL 2013 (besoin d'aide) Extraction des données d'un tableau croisé vers un tableau simple

debuVBA

XLDnaute Nouveau
Bonjour les amis,

j'ai un soucie concernant l'extraction des données d'un tableau croisé sur excel constitué de (333 L X 833 C) vers un tableau simple à l'aide d'un Macro, j'ai fait des tentations comme je suis vraiment débutant en vba mais c’était juste du n'importe quoi.

Svp pouvez vous m'aider avec des exemples ou des propositions.

voilà un exemple simple de ce que je veux avoir

Avant:

TCD AVANT.jpg

Apres:

TCD APRES.png


Merci infiniment
 

chris

XLDnaute Barbatruc
Re : (besoin d'aide) Extraction des données d'un tableau croisé vers un tableau simpl

Bonjour
Coucou Dranreb ;)

L'image s'intitule TCD mais ce n'est ps un TCD, juste un tableau à double entrée.

La question de Dranreb signifie qu'on attend un classeur exemple afin de ne pas avoir à la fabriquer nous même...

Edit : demande postée sur plusieurs forums

Cette solution devrait le faire https://web.archive.org/web/20150428064124/http://www.excelabo.net/excel/table_vers_tcd

Supprimer ensuite les lignes sans valeurs
 
Dernière édition:

debuVBA

XLDnaute Nouveau
Re : (besoin d'aide) Extraction des données d'un tableau croisé vers un tableau simpl

Merci infiniment chris

mais j'ai eu un problème, cette methode a remplacé les valeurs par des 1
 
Dernière modification par un modérateur:

chris

XLDnaute Barbatruc
Re : (besoin d'aide) Extraction des données d'un tableau croisé vers un tableau simpl

Re

Tu as sans doute mal suivi les explications car cela semble parfaitement coller
 

Pièces jointes

  • SourceRetournée2.xlsx
    17.1 KB · Affichages: 33

chris

XLDnaute Barbatruc
Re : (besoin d'aide) Extraction des données d'un tableau croisé vers un tableau simpl

Bonjour

Tu as 2 approches différentes possibles :

  • effectuer les mêmes opérations en utilisant l'enregistreur de macro puis en adaptant le code
  • créer deux boucles : l'une pour parcourir les lignes de ton tableau à double entrée, l'autre pour parcourir les colonnes et inscrire les valeurs rencontrées dans un autre emplacement.
    Exemple simple qui part du principe qu'on démarre sur la bonne feuille du bon classeur. Sinon il faut préciser ces 2 éléments dans le code.
    Code:
    Option Explicit
    Sub Tourne()
    Dim cellule As Range, i As Long, j As Long, Derlig As Long
    
    j = 1 'gère la ligne où se fait la recopie
    Derlig = Cells(Cells.Rows.Count, 1).End(xlUp).Row 'dernière ligne à traiter
    For Each cellule In Range("A2:A" & Derlig) 'Boucle sur les lignes remplies de la colonne A
        For i = 2 To 13 'boucle sur les colonnes
            If Not IsEmpty(Cells(cellule.Row, i)) Then
                Worksheets("Tsimple2").Cells(j, 1) = cellule.Value
                Worksheets("Tsimple2").Cells(j, 2) = Cells(1, i).Value
                Worksheets("Tsimple2").Cells(j, 3) = Cells(cellule.Row, i).Value
                j = j + 1
            End If
        Next i
    Next cellule
    End Sub
Sur un gros tableau, je pense que la première est plus rapide mais à vérifier...

Il y a de multiples didacticiels gratuits sur le net pour VBA.

Pour ma part je recommande le livre de Miccael Bidault pour commencer et les ouvrages de Walkenbach pour approfondir.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo