Extraire ligne x d'un tableau

Bonjour le forum

Je tourne en rond, je cherche à extraire une ligne x d'un tableau et la transférer vers un autre classeur. J'aurais pu le faire par une boucle For mais pour le coup je cherche à faire quelque chose de plus "performant".

Ma question est donc, comment transférer en un coup une ligne x (définie par une variable) d'un tableau vers une feuille ?

(Voir mon approche actuel sur la ligne en commentaire dans le code ci-dessous)

J'ai essayé aussi de m'inspirer de cette ligne, mais sans succès :/

Sheets("Result").Range("A2").Resize(, nbcol) =  Application.Index(Me.ListBox1.List, Me.ListBox1.ListIndex + 1)

Mon approche la plus concluante est :

FeuilExt.Range("A" & Max).Resize(, UBound(Tbl)) = Application.Index(BD, Cel.Row)

Le soucis est que j'obtient un #REF

Par avance, merci de l’intérêt porté au sujet

Sub Extraction()

Dim WB1 As Workbook, WB2 As Workbook, FeuilExt As Worksheet, BD As Range
Dim Cel As Object
Dim cpt As Integer, Max As Integer
Dim Trouve, Tbl()

Set WB1 = ThisWorkbook
Set BD = WB1.Worksheets("BD").Range("Tableau1")

Set WB2 = Workbooks.Add
Set FeuilExt = WB2.Worksheets(1)

Tbl = BD.Value
Trouve = InputBox("Tappez un mot ou une suite de lettres correspondant à la recherche :", "Recherche intuitive")
If Trouve = "" Then Exit Sub

cpt = 0
Max = FeuilExt.Range("A" & FeuilExt.Rows.Count).End(xlUp).Row + 2
FeuilExt.Range("A" & Max) = "Résultat(s) pour " & Trouve

For Each Cel In BD
    If UCase(Cel) Like "*" & UCase(Trouve) & "*" Then
        cpt = cpt + 1
        Max = FeuilExt.Range("A" & FeuilExt.Rows.Count).End(xlUp).Row + 1
        'FeuilExt.Range("A" & Max).Resize(, UBound(Tbl)) = Application.Index(Tbl, Tbl(Cel.Row, 1))
    End If
Next Cel

MsgBox "Extraction terminée, " & cpt & " résultat(s)"

End Sub

Bonjour,

Un classeur contenant des données non confidentielles permettrait de valider (ou non...) des intuitions...

La recherche doit se faire sur toute la plage BD ou seulement sur une colonne(laquelle?) ?

sur toute la plage, il se peut que l'on copie plusieurs fois la même ligne...

A+

Effectivement je travail sur des données d'entreprises, mais voilà une trame qui, dans la forme, est comme sur ce que je travail

J'ai remis le code dans un module

Dans le principe j'analyse toutes les cellules, si une cellule contient le terme cherche alors toute la ligne est exportée, cette ligne peut être exportée plusieurs fois si le terme cherché se trouve dans plusieurs colonne de la même ligne.

4ext.xlsm (14.29 Ko)

ok je pense avoir trouvé la solution à mon problème

Voilà la ligne que j'ai écrite :

FeuilExt.Range("A" & Max).Resize(, BD.Columns.Count) = BD.Offset(Cel.Row - 2).Resize(, UBound(Tbl)).Value
Rechercher des sujets similaires à "extraire ligne tableau"