[Excel] Inhalt einer Excel Datei als neues Tabellenblatt einfügen

hauke1981

Erfahrenes Mitglied
Ich hoffe das ich euch nicht nerve aber ich hab mal wieder ein Problem.

Und zwar will ich über einen Öffnen Dialog aus Excel heraus eine neue Excel Datei auswählen und deren Inhalt dann als neues Tabellenblatt in die bestehende Excel Datei einfügen. Ich will praktisch den Inhalt der vorhandenen Datei mit dem Inhalt der neuen ersetzen.
Ich schaff es aber leider nur die ausgewählte Datei als neues Workbook zu öffnen.

Hier mal nen kurzer Codeausschnitt:

Code:
Dim Datei$
    
    Application.ScreenUpdating = False
    ChDir "\"
    ChDrive "C:\"
    Datei = Application.GetOpenFilename("All Files (*.*),*.*", "1", "Please select a new File")
    
    If CStr(Datei) = CStr(False) Then
        MsgBox "No File selected!", vbCritical, "Information"
        Exit Sub
    End If
               
        Workbooks.OpenText Filename:=Datei, Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True, _
            Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1))

Wie kann ich das jetzt in der bestehenden Datei als neues Tabellenblatt einfügen. Mit Worksheets.Add hab ich es leider nicht hinbekommen.

Grüße
 
Hallo Hauke,

vielleicht hilft dir ja dieser ergänzte Code-Schnipsel:
Code:
Sub xxx()

Dim Datei$
Dim WbName As String
    
    WbName = ActiveWorkbook.Name
    Application.ScreenUpdating = False
    ChDir "\"
    ChDrive "C:\"
    Datei = Application.GetOpenFilename("All Files (*.*),*.*", "1", "Please select a new File")
    
    If CStr(Datei) = CStr(False) Then
        MsgBox "No File selected!", vbCritical, "Information"
        Exit Sub
    End If
               
        Workbooks.OpenText Filename:=Datei, Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True, _
            Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1))


    MsgBox "Neu geöffnet: " & ActiveWorkbook.Name
    Workbooks(WbName).Activate
    MsgBox "Jetzt aktivieert:" & ActiveWorkbook.Name
    
    Application.Worksheets.Add
End Sub
So wird in der ursprünglich geöffneten Arbeitsmappe ein leeres Blatt eingefügt. Das kannst du dann noch positionieren, umbenennen, per PASTE füllen, ...

Grüße
Drogist
 
Zurück