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 :

Transposer résultat recordset [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut Transposer résultat recordset
    Bonsoir à tous,

    Grâce à une connexion ADO sur des feuilles de mon fichier excel, je dispose du résultat d'une requête contenu dans un recordset.

    Je souhaiterais maintenant "exporter" les données présentes dans celui-ci de manière transposée (lignes à la place des colonnes). En somme, au lieu de copier le résultat lignes par lignes, le faire colonnes par colonnes.

    J'avais pensé à un code de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'rst = mon recordset contenant des données
    'range = range cible pour copier mes données
     
    While Not (rs.EOF)
    Range.Next.copyfromrecordset rs 
    rs.MoveNext
    Wend
    Auriez-vous une idée ?

    Merci à tous pour votre aide

    Jaymerry

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Bonjour,

    Tu pourrais retourner les valeurs successives dns une variable tableau intermédiaire de X lignes et Y colonnes (nbre de champs de la requete)
    et transposer celui ci sur la feuille excel

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A3).resize(Y,X)=application.transpose(tontablo)
    c'est seulement une idée !

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut Nickel
    Merci du tuyau , effectivement cela a fonctionné avec le code suivant et en passant par une feuille intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    'rs mon recordset contenant des données
     
    Dim tabi As Range
     
    ThisWorkbook.Worksheets("Feuil2").Cells(2, 1).CopyFromRecordset rs
     
     
    Set tabi = ThisWorkbook.Worksheets("Feuil2").Range("A2:B" & rs.RecordCount & "")
     
    ThisWorkbook.Worksheets("Feuil1").Range("J1:AZ3" & Split(ActiveSheet.UsedRange.Address, "$")(4)).Resize(2, rs.RecordCount) = Application.Transpose(tabi)
    Merci,

    Jaymerry

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

Discussions similaires

  1. [XL-2003] macro rechermer mot et transposer résultat en colonne
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/04/2011, 13h25
  2. problème résultat recordset
    Par marcuscircus dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/08/2008, 09h51
  3. Transposer résultat d'une requête
    Par Mus_mus dans le forum Access
    Réponses: 1
    Dernier message: 06/01/2007, 12h49
  4. Pb résultats d'une requête avec ou sans Recordset
    Par fredeau dans le forum Access
    Réponses: 3
    Dernier message: 24/04/2006, 14h07
  5. Perte du contenu d'un résultat d'un recordset
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 9
    Dernier message: 09/02/2006, 11h34

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