habe ein Macro von diesem Forum das ihr schon sicher zu genüge kennt.
Es funktioniert auch sehr gut nur?
1. möchte ich das diese Liste in eine Tabelle konvertiert wird mit einen Namen oder die bestehende Tabelle nicht überschrieben wird.
2. sollen die Formatierungen der Quelldatei übernommen werden (bedingte Formatierung).
3. habe ich in einer zweiten Tabelle der Arbeitsmappe, wo ich die Listen importiere Verweise auf die Importierte Liste, da sind alle bezüge dann weg, die müsste ich immer nachtäglich nacharbeiten.
Wie kann man das vermeiden?
Währe super wenn einer von euch eine Idee hätte.
Vielen Dank im vorraus!!
Andi
Der Code:
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
Dim strQuelle As String
Dim Zeilen As Long
Dim Spalten As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from _
_
closed Workbook"
GetDataClosedWB = False
End Function
Public Sub Importieren()
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Dim Bereich As String
Dim Ziel As Range
Dim letzte As Integer
letzte = Cells(Rows.Count, 1).End(xlUp).Row
Pfad = "C:\Users\master\Documents\DatenHolen\"
Dateiname = "Quelle.xlsx" ' aus welcher Datei soll er holen?
Blatt = "Artikel" ' von welcher Tabelle soll er holen?
Bereich = "A1:H3" & letzte ' aus welchem Bereich soll er holen?
Set Ziel = tabArtikel.Range("A1") ' in welchen Bereich soll er kopieren? Genauer gesagt: _
_
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
tabArtikel.Select
tabArtikel.ListObjects.Add(xlSrcRange, Range("$A$1:$H$" & letzte), , xlYes).Name = _
"tblArtikel"
End Sub