Sélection 1 ligne de tableau à 2 dim. en 1 seule instruction

Bonjour à tous

A partir d'une plage de cellules, via une procédure, j'ai rempli 1 tableau (variant) de plusieurs lignes et plusieurs colonnes.

Je souhaiterais à présent copier une ligne précise (à partir du numéro de ligne du tableau) mais complète (c'est-à-dire avec toutes les valeurs qu'elles possède autrement dit autant de valeurs qu'il y a de colonnes dans mon tableau) dans une nouvelle plage de cellules, cette dernière étant forcément d'une seule dimension.

Je sais faire la manip en passant par une boucle for next mais aimerais savoir s'il existe une syntaxe permettant de le faire en une seule instruction, un peu comme on sait le faire en remplissant toute une plage à 2 dimensions à partir d'un tableau complet ?

Merci de votre aide.

frk

Bonjour,

Est-ce que c'est çà que tu cherches?

Sub selectligne()
Rows("3:3").Copy
Range("A5").PasteSpecial
End Sub

cordialement

Pas du tout. Un exemple pour être plus clair.

Dim tab1 as variant

Dim a&, b&

tab1(1,1)="A"

tab1(1,2)="B"

tab1(1,2)="C"

tab1(2,1)="D"

tab1(2,2)="E"

tab1(2,2)="F"

Je voudrais pouvoir copier la 2è ligne du tableau sur la 1ère ligne d'une feuille excel, autrement dit quelque chose qui ressemblerait à ceci :

Feuil3.Range("A1:C1") = tab1(2)

pour qu'au bout du compte on obtienne :

D en A1

E en B1

F en C1

Si je demande cela c'est parce que dans la réalité, je traite un tableau de 60 colonnes et contenant plusieurs dizaine de milliers de lignes, or avec une seule instruction comme celle-là mon programme irait sûrement beaucoup plus vite.

Bonjour, bonjour !

Comme quoi une présentation digne de ce nom est nécessaire ‼

Sub Demo()
    VT = [{"A","B","C";"D","E","F"}]
    Feuil3.[A1:C1].Value = Application.Index(VT, 2)
End Sub

Sinon le filtre avancé est le plus rapide …

Merci Marc L !

Mais qu'entends-tu par "le filtre avancé est le plus rapide" : une autre solution plus rapide que Application.Index ?

Avec mon gros tableau, cela serait intéressant. Je suis donc prêt à découvrir ton autre solution )

Et j'en profite pour te demander si tu sais aussi copier une ligne d'un tableau dans une ligne d'un autre tableau (de même caractéristique que le premier) et non plus dans une feuille ?

Autrement dit : tab2(15) = tab1(2)

Tout dépend du besoin mais dans le cas d'extraire des cellules, boucler une variable tableau est bien moins rapide

qu'un filtre avancé - avec peu de lignes de code - surtout plus le nombre de lignes de données augmente,

le contexte jouant aussi !

Pour copier directement une ligne, source et destination doivent être des tableaux de tableaux (imbriqués).

Sinon pas d'autre choix qu'une boucle pour lire et alimenter les variables de type tableau …

Rechercher des sujets similaires à "selection ligne tableau dim seule instruction"