Hallo nochmal
Wenn die Balttnamen immer den Unterstrich haben, dann ist das kein Problem. Das Leerzeichen ersetzen geht so...
For i = Z1 To LR
strSuchwort = Replace(.Cells(i, SP), " ", "_") 'Leerzeichen durch _ ersetzen
...
"Des weiteren wird nur eine Zeile aus der Importliste in das Tabellenblatt mit dem Namen übernommen, "
Ich vermute, dass dann die Spalte A keine Daten hat. Diese Spalte wurde nämlich jedesmal geprüft.
Es wurde immer wieder die gleiche Zeile überschrieben wird
Ich habe die Ermitlung der ersten freien Zeile umgestellt. Wird nun unabhängig von der Spalte ermittelt.
Hier nochmal der gesamte Code
Option Explicit
Sub suchen_kopieren_einfügen()
Dim strSuchwort As String
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim i As Integer, Z1 As Integer, LR As Integer
Dim NZ As Integer, SP As Integer
Set wks1 = Worksheets("Importliste")
Z1 = 2 'ab zeile 2
SP = 5 'Daten in Spalte E
With wks1
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = Z1 To LR
strSuchwort = Replace(.Cells(i, SP), " ", "_") 'Leerzeichen durch _ ersetzen
'Blatt vorhanden?
If IsError(Evaluate(strSuchwort & "!A1")) Then
MsgBox "Blatt: '" & strSuchwort & "' existiert nicht"
Exit For
Else
Set wks2 = Sheets(strSuchwort)
NZ = wks2.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 'erste freie Zeile des gesamten Blattes
.Rows(i).Copy wks2.Rows(NZ)
End If
Next
End With
End Sub
LG UweD
|