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 :

Copier une ligne d'un tableau en mémoire vers une feuille


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Copier une ligne d'un tableau en mémoire vers une feuille
    Bonjour.

    J'ai créé un tableau en 2 dimensions (ex : Dim MonTab(1 To 5, 1 To 10) As Integer)
    Le tableau contient des données.

    Je voudrais maintenant copier UNE LIGNE de mon tableau dans un feuille en une seule fois
    (et non faire une boucle de 1 à 10 qui copie une cellule à la fois, histoire d'optimiser mon code).

    Je ne peux copier l'entièreté du tableau en mémoire car chaque ligne va à un endroit différent dans la feuille.

    Il me manque quelque chose après feuil1.range(B5:K5)=MonTab(??? uniquement la ligne 1 ???).

    Par avance, merci de votre aide.

    Cordialement.


    Lsg
    Dernière modification par Invité ; 08/10/2018 à 21h58. Motif: Ajout des balises [C] ... [/C]

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je te conseille la lecture de ce tutoriel Utiliser les variables tableaux en VBA Excel et tout particulièrement le chapitre XIV-F. Transférer le contenu d'un tableau dans une feuille de calcul
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour !

    Citation Envoyé par TheLsg Voir le message
    Je voudrais maintenant copier UNE LIGNE de mon tableau dans un feuille en une seule fois
    Même en VBA simplement via la fonction de feuille de calculs INDEX …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    résultat du lien de Philippe Tulliez

    Nom : Capture1.JPG
Affichages : 1911
Taille : 32,2 Ko

    résultat de l'adaptation d'une de mes discussion : Extraire une Dimension d'un tableau SANS utiliser de boucle

    pour une colonne
    Nom : Capture2.JPG
Affichages : 1856
Taille : 14,3 Ko

    pour une ligne
    Nom : Capture3.JPG
Affichages : 1849
Taille : 11,2 Ko

    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
     
    Private Sub CommandButton2_Click()
        '----- partie 1 : lien de Philippe Tulliez (modif JP : "-" par "_")
        Dim x As Integer, y As Integer
        Dim i As Integer, j As Integer
        Dim NomTableau() As String
     
        'Redéfinit la taille du tableau
        x = 10
        y = 5
        ReDim NomTableau(1 To x, 1 To y)
     
        'Alimente les éléments du tableau
        For i = 1 To x
            For j = 1 To y
                NomTableau(i, j) = i & "_" & j
            Next j
        Next i
     
        'efface zone
        Range(Cells(1, 1), Cells(x, y)).Value = ""
     
        'Transfère les éléments du tableau dans la feuille de calcul
        Range(Cells(1, 1), Cells(UBound(NomTableau, 1), UBound(NomTableau, 2))) = NomTableau
     
        '----- partie 2 : code JP : extraire une dim (colonne)
     
        'definir la plage de cellules à mettre dans le tableau TabZone
        Set Zone = ActiveSheet.Range(Cells(1, 1), Cells(x, y))
        'Alimente les éléments du tableau...possible...[{1,3,5}]..ou..[{2,4,5}]..par exemple
        TabZone = Application.Index(Zone, Evaluate("Row(1:" & Zone.Rows.Count & ")"), [{1,2,3,4,5}])
        'EXTRAIRE une Dim
        TabDim = Application.Index(TabZone, , 3)
        'nouveau tableau
        NewTableau = Application.Transpose(TabDim)
     
        'efface zone
        Range(Cells(1, 1), Cells(x, y)).Value = ""
     
        'Transfère les éléments du tableau dans la feuille de calcul
        Range(Cells(1, 1), Cells(1, UBound(NewTableau))) = NewTableau
     
    End Sub
    pour être complet , pour une colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        'EXTRAIRE une Dim
        TabDim = Application.Index(TabZone, , 3)
        'nouveau tableau
        NewTableau = Application.Transpose(TabDim)
     
        'Transfère les éléments du tableau dans la feuille de calcul
        Range(Cells(1, 1), Cells(1, UBound(NewTableau))) = NewTableau
    et pour une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        'EXTRAIRE une Dim
        NewTableau = Application.Index(TabZone, 3)
     
        'Transfère les éléments du tableau dans la feuille de calcul
        Range(Cells(1, 1), Cells(1, UBound(NewTableau))) = NewTableau
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2017, 11h02
  2. Réponses: 6
    Dernier message: 15/02/2017, 11h52
  3. Trier une ligne d'un tableau en fonction d'une autre ligne
    Par thomas.leger dans le forum VB.NET
    Réponses: 6
    Dernier message: 30/07/2015, 17h39
  4. Réponses: 15
    Dernier message: 30/05/2013, 17h55
  5. Réponses: 2
    Dernier message: 04/07/2008, 14h24

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