Voilà comment je traiterais la question.
Je serais reconnaissant aux personnes meilleures que moi de me dire comment elles auraient fait, cela m'intéresse beaucoup et me fera progresser par la même occasion
Le bouton bleu en A1 de la feuille Tabelle1 lance la macro.
Sub import()
Dim onglet As String, nomcomplet As String
Dim DerligneO, ligne, positionespace, i As Integer
1:
onglet = InputBox("Quelle année importer ?")
If onglet = "" Then Exit Sub
If FeuilleExiste(onglet) = False Then MsgBox ("La feuille n'existe pas"): Exit Sub
ligne = Sheets("tabelle1").Range("A1048576").End(xlUp).Row
DerligneO = Sheets(onglet).Range("A1048576").End(xlUp).Row
For i = 2 To DerligneO
nomcomplet = Sheets(onglet).Cells(i, 2).Value
positionespace = InStr(nomcomplet, " ")
With Sheets("Tabelle1")
.Range("A" & ligne + 1).Value = Sheets(onglet).Cells(i, "H").Value
.Range("C" & ligne + 1).Value = Sheets(onglet).Cells(i, "A").Value
.Cells(ligne + 1, "J").Value = Left(nomcomplet, positionespace - 1)
.Cells(ligne + 1, "K").Value = Mid(nomcomplet, positionespace + 1)
.Range("L" & ligne + 1).Value = Sheets(onglet).Cells(i, "C").Value
.Range("N" & ligne + 1) = onglet
.Range("W" & ligne + 1).Value = Sheets(onglet).Cells(i, "I").Value
End With
ligne = ligne + 1
Next
If MsgBox("Année " & onglet & " bien importée. Importer une autre année ?", vbYesNo, "Nouvel import ?") = vbYes Then GoTo 1
End Sub
Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif
'par Excel-Malin.com ( https://excel-malin.com )
On Error GoTo SiErreur
Dim Feuille As Worksheet
FeuilleExiste = False
For Each Feuille In Worksheets
If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
FeuilleExiste = True
Exit Function
End If
Next Feuille
Exit Function
SiErreur:
FeuilleExiste = CVErr(xlErrNA)
End Function