Bonjour Fanfan,
Merci beaucoup pour ton aide. Mais j'ai un problème. Lorsque j'ai importé ta feuille dans mon classeur de données, j'ai également copié/collé le code source de la macro. J'arrive à sélectionner le fichier à ouvrir mais la macro ne me sort que la première ligne des tableaux source. Je pense que ça vient de l'exemple que je t'ai fourni où j'ai involontairement supprimé la première ligne qui est vide. Pourrais-tu me dire ce qu'il y a à changer sur ton code stp ?
Option Explicit
Sub import()
Dim i As Long, livre As String, n As Long, ctrl As Boolean, j As Integer, sh As Byte
Dim nomfich As Variant, wk As Workbook
Set wk = ActiveWorkbook
nomfich = Application.GetOpenFilename
If nomfich = False Then Exit Sub
Workbooks.Open nomfich ' Ouvrir le fichier sélectionné
For sh = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(sh).Name <> "Import" Then
With ActiveWorkbook.Sheets(sh)
For i = 1 To .Range("B" & Rows.Count).End(xlUp).Row
If .Range("A" & i).Value = "Livre:" Then livre = .Range("B" & i).Value
If .Range("A" & i).Value = "Compte" Then
ctrl = True
ElseIf ctrl = True And .Range("A" & i) <> "" Then
If wk.Sheets("Import").[T_import].Item(1, 1) <> "" Then n = wk.Sheets("Import").[T_import].Rows.Count + 1 Else n = 1
wk.Sheets("Import").[T_import].Item(n, 1) = livre
wk.Sheets("Import").[T_import].Item(n, 2) = .Cells(i, 1).Value
wk.Sheets("Import").[T_import].Item(n, 3) = .Cells(i, 2).Value
For j = 5 To 12
wk.Sheets("Import").[T_import].Item(n, j - 1) = .Cells(i, j).Value
Next
ElseIf ctrl = True And .Range("A" & i) = "" Then
Exit For
End If
Next
End With
ctrl = False
End If
Next
ActiveWorkbook.Close
End Sub
J'ai ajouté également un bouton pour supprimer les données de A2:L50000, est-ce que ça peut interférer avec ta macro stp ?
Merci par avance.
Cordialement.