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

Macros et VBA Excel Discussion :

Avez vous un code pour mettre une liste en Tableau?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Freelancer
    Inscrit en
    Février 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Freelancer

    Informations forums :
    Inscription : Février 2017
    Messages : 40
    Par défaut Avez vous un code pour mettre une liste en Tableau?
    Bonjour a tous,

    J ai une liste sur en 3 colonnes et je cherche a mettre ca en tableau 2D.
    En colonne 1 j ai le nom qui ira en axe vertical du tableau
    En colonne 2 j ai l attribut qui ira en axe horizontal du tableau
    En colonne 3 J ai la valeur a mettre en intersection dans le tableau.

    Attention: Je n ai pas toujours les memes attributs (colonne 2) pour tous les noms. Il y aura donc des champs vides dans le tableau final.

    Meme si ce code a l air simple, je suis trop debutant pour le realise mais en gros voila ce que je ferais :
    1- Liste la colonne 1 et la copie en colonne 2 du tableau en valeur unique - En A2
    2- Liste la colonne 2 et la copie en transposant avec valeurs unique dans le tableau - En B1
    3- Pour chaque valeur en colonne 3, lis la colonne 1 et 2 et va chercher le croisement dans le tableau 2d - Ca ca a l air hyper complique a faire...

    Merci de votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour

    Si tes valeurs en colonne 3 sont numériques, un TCD te donnera le résultat en quelques seconde.

  3. #3
    Membre averti
    Homme Profil pro
    Freelancer
    Inscrit en
    Février 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Freelancer

    Informations forums :
    Inscription : Février 2017
    Messages : 40
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour

    Si tes valeurs en colonne 3 sont numériques, un TCD te donnera le résultat en quelques seconde.

    Les valeurs sont du texte et je ne veux pas de TCD. Je sais... ca complique :-)

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Meme si ce code a l air simple, je suis trop debutant pour le realise mais en gros voila ce que je ferais :
    1- Liste la colonne 1 et la copie en colonne 2 du tableau en valeur unique - En A2
    2- Liste la colonne 2 et la copie en transposant avec valeurs unique dans le tableau - En B1
    3- Pour chaque valeur en colonne 3, lis la colonne 1 et 2 et va chercher le croisement dans le tableau 2d - Ca ca a l air hyper complique a faire...
    Pour les points 1 et 2, utilise l'enregistreur de macro
    Pour le 3:c'est très simple a faire en Excel avec une combinaison des formules INDEX et EQUIV, une fois la formule correcte trouvée, il suffit de la traduire en vba (si besoin l'enregistreur de maccro peut là encore t'aider)

  5. #5
    Membre averti
    Homme Profil pro
    Freelancer
    Inscrit en
    Février 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Freelancer

    Informations forums :
    Inscription : Février 2017
    Messages : 40
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Pour les points 1 et 2, utilise l'enregistreur de macro
    Pour le 3:c'est très simple a faire en Excel avec une combinaison des formules INDEX et EQUIV, une fois la formule correcte trouvée, il suffit de la traduire en vba (si besoin l'enregistreur de maccro peut là encore t'aider)
    Bon, je viens de faire le 1 et 2... et suis assez fier de moi.

    Par contre c est le grand inconnu pour la suite.

    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
    Sub List2Table()
     
    Dim LastRowA As Long
    Dim LastRowB As Long
     
    LastRowA = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
     
    Sheets("Sheet1").Range("A1:A" & LastRowA).Copy
    Sheets("2DTable").Range("A1").PasteSpecial
    Sheets("2DTable").Range("A1" & LastRowA).RemoveDuplicates Columns:=1, Header:=xlYes
     
    Sheets("Sheet1").Range("B1:B" & LastRowA).Copy
    Sheets("2DTable").Range("B1").PasteSpecial
    Sheets("2DTable").Range("B1" & LastRowA).RemoveDuplicates Columns:=2, Header:=xlYes
     
    LastRowB = Sheets("2DTable").Cells(Rows.Count, 2).End(xlUp).Row
    Sheets("2DTable").Range("B2:B" & LastRowB).Copy
    Sheets("2DTable").Range("B1").PasteSpecial Transpose:=True
    Sheets("2DTable").Range("B2:B" & LastRowB).Clear
     
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Exemple: Avec une rechercheV et en ajoutant une colonne à ton tableau de base

    Nom : 2019_02_19_10_47_38_Microsoft_Excel_Classeur2.jpg
Affichages : 428
Taille : 59,5 Ko

    A noter que tu peux remplacer les NA par ce qui t'arrange en ajoutant la fonction sierreur à la formule

Discussions similaires

  1. code pour rafraichir une liste déroulante
    Par morgane32 dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/09/2008, 17h06
  2. Changer le code pour mettre plutôt une image ?
    Par Bruno13 dans le forum Delphi
    Réponses: 1
    Dernier message: 17/11/2006, 18h09
  3. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10
  4. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 12h11
  5. Réponses: 2
    Dernier message: 01/04/2003, 22h09

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