AW: Klar, so...
13.01.2016 12:51:38
Michael
Christian,
.ActiveSheet.Columns("B:B").Delete
aber
.ActiveSheet.Columns(2).Delete
würde genauso funktionieren.
im Code (beziehe mich auf den ersten von mir geposteten Code, ohne Zugriff auf Blatt-Codenamen):
Sub b()
Dim DateiDialog As FileDialog
Dim wbPfad As String
Dim wbQuelle As Workbook
Const wsName As String = "Tabelle1"
Dim objDateiSystem As Object
Dim objDatei As Object
'Bildschirm-Aktualisierung ausschalten
Application.ScreenUpdating = False
Set objDateiSystem = CreateObject("Scripting.FileSystemObject")
Set DateiDialog = Application.FileDialog(msoFileDialogFilePicker)
'Dateiauswahl über Dialog...
With DateiDialog
.Title = "Bitte Quell-Arbeitsmappe wählen"
.AllowMultiSelect = False
If .Show -1 Then
MsgBox "Vorgang abgebrochen", vbInformation
Exit Sub
Else: wbPfad = .SelectedItems(1)
End If
End With
'...mit dem entsprechenden Datei-Pfad
With ThisWorkbook
'...die Quell-Datei öffnen
Set wbQuelle = Workbooks.Open(Filename:=wbPfad)
'...Zugriff auf Datei über Datei-System für Erstelldatum
Set objDatei = objDateiSystem.getfile(wbQuelle.FullName)
'...das gewünschte Blatt in _diese_ Datei kopieren
'--> gesuchter Blattname im Quell-Blatt als Konstante definiert (s.o.)
ActiveWorkbook.Sheets(wsName).Copy after:=.Sheets(.Sheets.Count)
'...dem kopierten Blatt das Erstelldatum der Quell-Datei als Name übergeben
.Sheets(.Sheets.Count).Name = Left(objDatei.DateCreated, 10)
'...Spalten B, D im kopierten Blatt löschen
.ActiveSheet.Columns("B:B").Delete
.ActiveSheet.Columns("D:D").Delete
'...Quell-Datei schließen, Änderungen speichern
wbQuelle.Close savechanges:=True
End With
'Bildschirm-Aktualisierung einschalten
Application.ScreenUpdating = True
End Sub
Der "." (Punkt) vor dem ActiveSheet ist nicht zufällig da ;-), eingebettet in With-Anweisung. Aber das kannst Du ja evtl. mal recherchieren? ;-)
Passt?
LG
Michael