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 :

remplir un tableau a 2 dimensions a partir de colonnes discontinues [XL-2010]


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
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut remplir un tableau a 2 dimensions a partir de colonnes discontinues
    bonjour,

    j'ai un worksheet "wsTravail". Sur ce worksheet j'ai des donné en colonne A et en colonne C.

    Je souhaite remplir un tableau a 2 dimension avec la colonne C en premier et la colonne A en deuxième.

    Comment faire ?

    y a-t-il la possibilité d'adapter ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim tableau As Variant
    tableau = wsTravail.Range("A1:B7").Value

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Bonjour Thomas.

    Tes lignes se suivent-elles (C1, A1, etc...) pour remplir le tableau ?

  3. #3
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut
    oui la premiere ligne de mon tableau contient C1 et A1. il n'y a pas de decalage entre sur les lignes.

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    Tu peux t'inspirer de la réponse que j'ai donné dans ce post
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Bonjour Ryu.

    A adapter à ton nom d'onglet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Test()
    Dim t(), temp(), l&, i&
     
    With Sheets("Feuil1")
        l = .[a65000].End(xlUp).Row
        temp = .Range(.Cells(1, 1), .Cells(l, 3)).Value
        ReDim t(1 To UBound(temp), 1 To 2)
        For i = LBound(temp) To UBound(temp)
            t(i, 1) = temp(i, 3)
            t(i, 2) = temp(i, 1)
        Next i
    End With
    End Sub

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour,

    réalisable sans boucle en une ligne via la simple fonction de feuille de calculs INDEX d'Excel (Application.Index en VBA).
    Je vous laisse lire l'aide d'Excel (et non pas celle de VBA) et tenter de votre côté, niveau pas trop compliqué …

    Sinon voir l'exemple de cette discussion

    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Hi thebenoit59,
    Je regarderai ça, merci

    Édit : merci Marc j'irais voir tout cela
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par Thomas_C_Moi Voir le message
    j'ai des données en colonne A et en colonne C.

    Je souhaite remplir un tableau à 2 dimensions avec la colonne C en premier et la colonne A en deuxième.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Demo1()
    '   With ThisWorkbook.Worksheets(1).UsedRange
        With ThisWorkbook.Worksheets(1).Cells(1).CurrentRegion
            VA = Application.Index(.Value, .Parent.Evaluate("ROW(1:" & .Rows.Count & ")"), [{3,1}])
        End With
                    Stop
    '   Jeter un œil au contenu de VA dans la fenêtre Variables locales !
    End Sub
    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  9. #9
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut
    merci bien pour les corrections. c'est vrai que la fonction d'affichage était inutile avec la fenêtre de variable local. Mais tout cela ne répond pas à ma question.

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Pourtant l'aide VBA est assez claire (enfin pour moi elle l'a été), tu l'as peut-être lue un peu vite !

    Cette seconde démonstration devrait aider à comprendre pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo2()
        VA = Application.Index(ThisWorkbook.Worksheets(1).UsedRange.Value, , 3)
        Stop
    End Sub
    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

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

Discussions similaires

  1. [XL-2003] VBA-Remplir un tableau a deux dimensions
    Par gualoule dans le forum Excel
    Réponses: 3
    Dernier message: 05/08/2009, 01h49
  2. Réponses: 8
    Dernier message: 06/08/2007, 12h32
  3. [TP] Remplir un tableau à partir des données d'un autre tableau
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 27/05/2007, 18h31
  4. [MySQL] Remplir un tableau à 2 dimensions
    Par LeXo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2007, 14h17

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