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

VBA Access Discussion :

Inversion d'une variable tableau


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut Inversion d'une variable tableau
    Bonjour à tous !

    Mon problème, J'ai une variable tableau organisé de la manière suivante :
    __|1______|2______|...|14627
    1 |tab(1,1)|_______|__| tab(1, 14627)
    2 |tab(2,1)|_______|__| tab(2, 14627)
    3 |tab(3,1)|_______|__| tab(3, 14627)
    4 |_______|_______|__|
    5 |_______|_______|__|
    6 |_______|_______|__|
    7 |_______|_______|__|

    Ce que je cherche à avoir c'est un tableau tel que :
    ______|1_______|2______|...|7
    1_____|tab(1, 1) |
    2_____|tab(2, 1) |
    ... ___| ________|
    14627_|tab(14627, 1) |

    Le tableau peut très bien être encore plus "large", je cherche un traitement rapide pour inverser/transposer le tableau.
    Au final je vais le coller dans excel, j'ai essayer de le coller tel quel dans excel puis de le transposer, mais le tableau est trop large et je ne peux pas le coller. Donc j'essaie de passer directement par le code VBA.

    Si quelqu'un a une méthode à proposer je suis preneur !!

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut et bienvenu Cryos,

    support.microsoft.com


  3. #3
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Bonjour

    D'après ce que j'ai compris il s'agit de traiter une variable tableau et non une requête

    Une piste :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub essai()
    Dim montableau(3, 6) As String
    'Remplissage du tableau de test
     
    For i = 0 To UBound(montableau, 1)
        For j = 0 To UBound(montableau, 2)
            montableau(i, j) = "(" & i + 1 & "," & j & ")"
        Next j
    Next i
    'Affichage du tableau rempli
     
    For i = 0 To UBound(montableau, 1)
        For j = 0 To UBound(montableau, 2)
            chaine = chaine & montableau(i, j) & " "
        Next j
        chaine = chaine & vbCrLf
    Next i
    Debug.Print chaine
    Dim res
    res = transposeTableau(montableau)
    'Affichage du tableau transposé
    For i = 0 To UBound(res, 1)
        For j = 0 To UBound(res, 2)
            chaine = chaine & res(i, j) & " "
        Next j
        chaine = chaine & vbCrLf
    Next i
    Debug.Print chaine
    End Sub
     
     
    Function transposeTableau(arTableau As Variant) As Variant()
    Dim TempTableau
    Dim i As Integer
    Dim j As Integer
     
    Dim c As Integer, l As Integer
    l = UBound(arTableau, 2)
    c = UBound(arTableau, 1)
    ReDim TempTableau(l, c)
    For i = 0 To l
        For j = 0 To c
            TempTableau(i, j) = arTableau(j, i)
        Next j
    Next i
    transposeTableau = TempTableau
    End Function

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut
    Citation Envoyé par vodiem Voir le message
    salut et bienvenu Cryos,

    support.microsoft.com

    Merci pour ce lien vodiem, j'y ait jeté un rapide coup d'oeil à titre d'information. J'ai vu qu'il y avait un peu de VBA mais ça utilise DAO donc ça m'intéresse pas trop, enfin quoique. Par contre manuellement je sais le faire mais je peux pas coller le tableau dans excel pour le manipuler.

    Tofalu > Merci de ton aide. J'ai trouver un traitement autre mais je garde ton code parce que je suis persuadé que j'aurais besoin de transposer à un moment ou un autre. En survolant j'ai pas tout saisi du code mais j'ai compris le principe.

    Merci à vous, je met ce topic en résolu !

Discussions similaires

  1. [AJAX] Envoyer une variable tableau à un script PHP
    Par AzertyH dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2007, 16h58
  2. [VBA-E]Recherche dans une variable tableau
    Par illight dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/12/2006, 17h50
  3. Transmettre une variable tableau
    Par WagaSeb dans le forum Général VBA
    Réponses: 22
    Dernier message: 03/12/2006, 11h11
  4. [Tableaux] récuperer une variable tableau passé par URL
    Par molesqualeux dans le forum Langage
    Réponses: 2
    Dernier message: 23/12/2005, 01h12
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

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