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 :

En VBA, comment transposer une matrice (VBA)?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 99
    Par défaut En VBA, comment transposer une matrice (VBA)?
    Bonjour,

    Via du code, j'ai créé une matrice en VBA.
    Pour ensuite pouvoir la recompiler avec une autre, j'aurais bien voulu mettre les lignes en colonnes et inversement.

    Connaissez-vous un code VBA qui permet de transposer une variable matricielle??
    Merci!

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 49
    Par défaut
    Bonjour,

    Ayant ce genre de transposition a faire suite a des extractions de longues listes , j'ai du transposer des groupe verticaux en groupes horizontaux;
    Je te conseille de te servir de boucles pour chaque item et de les redistribuer un a un.
    La première piste consiste a identifier le séparateur entre chaque "groupe" de donnée , les miens étaient de taille variable.
    Une fois identifié tu fait une boucle
    A chaque passage de la boucle le meilleur moyen serait je pense de redistribuer tout cela dans un autre tableau dans l'ordre que tu souhaite , en inversant les coordonnées horizontales et verticales : par exemple matrice2(i,j) = matrice(j,i)

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    en utilisant le macrorecorder, tu trouveras facilement

    La manipulation en elle meme est copier/collage speciale/avec "transpose" que tu auras selectionner en dessous.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    qu'est ce que tu appelles matrice en VBA. C'est une variable tableau? ou une pure matrice Excel {1.2.3;4;5;5}.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 99
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    La fonction d'excel TRANSPOSE fonctionne bien sur les ARRAY créés en VBA

    J'ai donc fait ceci et ça marche !
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim myData() as variant
    ...
     
    Dim MyTransposedData() as variant
     
    myTransposedData() = Application.WorksheetFunction.Transpose(myData)

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

Discussions similaires

  1. [VBA] Comment supprimer une ligne entiere dans excel
    Par babouoles dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/07/2017, 08h34
  2. [VBA] Comment récupérer une image WEB
    Par jacques13 dans le forum Général VBA
    Réponses: 9
    Dernier message: 06/02/2014, 15h58
  3. [VBA]comment créer une listebox en vba ?
    Par roico dans le forum VBA Access
    Réponses: 10
    Dernier message: 16/04/2007, 09h48
  4. [VBA]comment faire une procédure vba
    Par FRIGAUX dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/03/2007, 15h59
  5. Réponses: 2
    Dernier message: 13/07/2006, 12h05

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