Live-Forum - Die aktuellen Beiträge
Datum
Titel
15.07.2024 16:00:57
15.07.2024 15:41:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiname aus Zelleninhalt

Dateiname aus Zelleninhalt
07.04.2014 19:21:01
Andreas
Hallo liebe Forumgemeinde,
heute bitte ich als absoluter VBA-Anfänger um Hilfe und zwar möchte ich ein gefiltertes Tabellenblatt als eigenständige Datei in dem gleichen Ordner speichern, in der auch die Ursprungsdatei abgelegt ist. Der Dateiname der neu zu speichernden Datei soll sich aus dem gefilterten Tabellenblatt ergeben (Inhalt der Zelle A2).
Die Ursprungsdatei ist gespeichert in „D:\Urmel“
Inhalt der Zelle A2 = Heinz
Die neu zu speichernde Datei soll demnach wie folgt abgespeichert werden: „D:\Urmel\Heinz“
Nach dem Speichervorgang soll die neue Datei dann geschlossen werden und das Makro darin enden, dass die Ursprungsdatei und das darin das gefilterte Tabellenblatt „Zelle A3“ angesprochen wird.
Ich hoffe, dass ich mein Gedankenproblem hinreichend beschrieben habe und bedanke mich schon jetzt für die Hilfe.
Viele Grüße
Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname aus Zelleninhalt
07.04.2014 19:43:21
Oberschlumpf
HI Andreas
eine Bsp-Datei mit allen relevanten Bsp-Daten und dem konfigurierten Filter wäre schön.
Wir wissen ja nicht, wie deine Datei aufgebaut ist, welche Daten sie enthält und wie der Filter eingesetzt wird.
Ciao
Thorsten

AW: Dateiname aus Zelleninhalt
07.04.2014 20:18:19
Tino
Hallo,
gehe davon aus das Du den Autofilter verwendest.
Versuch es mal so. (zum testen)
Sub Test()
Dim rngBereich As Range
Dim strWBName$, sPath$
Dim NewWB As Workbook
Dim oSH As Worksheet
With ThisWorkbook 'Diese Arbeitsmappe
Set oSH = .Sheets("Tabelle1") 'Tabelle anpassen
'Pfad
sPath = IIf(Right$(.Path, 1) = "\", .Path, .Path & "\")
'Dateiextention
strWBName = Mid$(.Name, InStrRev(.Name, "."), Len(.Name))
With oSH
'Dateiname
strWBName = .Range("A2").Value & strWBName
'Filterbereich
Set rngBereich = .AutoFilter.Range
End With
'Neue Datei
Set NewWB = Workbooks.Add(xlWBATWorksheet)
'kopieren
rngBereich.Copy
'einfügen
With NewWB.Sheets(1).Cells(1, 1)
.PasteSpecial xlPasteValues 'Werte
.PasteSpecial xlPasteFormats 'Format
End With
'speichern
On Error Resume Next
Application.DisplayAlerts = False
NewWB.SaveAs sPath & strWBName, .FileFormat
Application.DisplayAlerts = True
'Fehler beim speichern
If Err.Number  0 Then
MsgBox "Fehler Nr.: " & Err.Number & vbCr & vbCr & Err.Description
End If
NewWB.Close False
'gehe zu A3
Application.Goto oSH.Cells(3, 1)
End With
End Sub
Gruß Tino

Anzeige
AW: Dateiname aus Zelleninhalt
08.04.2014 04:32:00
Andreas
Hallo @ Oberschlumpf und Tino,
vielen Dank für die schnelle Rettungsversuche.
Tino deinen Code habe ich heute morgen gleich ausprobiert, bekomme aber bei der Ausführung des VBA Fehlermeldungen, die ich nicht lösen kann.
Bitte lasst einfach den Filtervorgang weg, mir geht es zunächst einmal um das Kopieren des Tabellenblattes und dessen Speicherung unter dem Namen des Zelleninhalts von "Zelle A2" und der Rückkehr nach dem Schließen dieser Datei zur Ursprungstabelle.
Vielen Dank, einen schönen Tag und viele Grüße
Andreas

AW: Dateiname aus Zelleninhalt
08.04.2014 08:26:29
Tino
Hallo,
müsste so gehen.
Sub Test()
Dim strWBName$, sPath$
Dim NewWB As Workbook
Dim oSH As Worksheet
With ThisWorkbook 'Diese Arbeitsmappe
Set oSH = .Sheets("Tabelle1") 'Tabelle anpassen
'Pfad
sPath = IIf(Right$(.Path, 1) = "\", .Path, .Path & "\")
'Dateiextention
strWBName = Mid$(.Name, InStrRev(.Name, "."), Len(.Name))
With oSH
'Dateiname
strWBName = .Range("A2").Value & strWBName
End With
'Neue Datei
oSH.Copy
Set NewWB = ActiveWorkbook
'speichern
On Error Resume Next
Application.DisplayAlerts = False
NewWB.SaveAs sPath & strWBName, .FileFormat
Application.DisplayAlerts = True
'Fehler beim speichern
If Err.Number  0 Then
MsgBox "Fehler Nr.: " & Err.Number & vbCr & vbCr & Err.Description
End If
NewWB.Close False
'gehe zu A3
Application.Goto oSH.Cells(3, 1)
End With
End Sub
Gruß Tino

Anzeige
AW: Dateiname aus Zelleninhalt
08.04.2014 18:31:24
Andreas
Hallo @Tino,
super, granidos, klappt prima.
Zunächst hatte ich Probleme mit der Festlegung des Speicherortes (wie gesagt, ich bin blutiger Anfänger), aber es dann hinbekommen.
Könnte man die die neue Datei auch nur als einfache Exceldatei (also ohne Makro) speichern?
Viele Grüße
Andreas

AW: Dateiname aus Zelleninhalt
09.04.2014 08:16:56
Tino
Hallo,
müsste so gehen.
Sub Test()
Dim strWBName$, sPath$
Dim NewWB As Workbook
Dim oSH As Worksheet
With ThisWorkbook 'Diese Arbeitsmappe
Set oSH = .Sheets("Tabelle1") 'Tabelle anpassen
'Pfad
sPath = IIf(Right$(.Path, 1) = "\", .Path, .Path & "\")
'Dateiextention
strWBName = ".xlsx"
With oSH
'Dateiname
strWBName = .Range("A2").Value & strWBName
End With
'Neue Datei
oSH.Copy
Set NewWB = ActiveWorkbook
'speichern
On Error Resume Next
Application.DisplayAlerts = False
NewWB.SaveAs sPath & strWBName, xlOpenXMLWorkbook
Application.DisplayAlerts = True
'Fehler beim speichern
If Err.Number  0 Then
MsgBox "Fehler Nr.: " & Err.Number & vbCr & vbCr & Err.Description
End If
NewWB.Close False
'gehe zu A3
Application.Goto oSH.Cells(3, 1)
End With
End Sub
Gruß Tino

Anzeige
AW: Dateiname aus Zelleninhalt
09.04.2014 18:00:38
Andreas
Hallo Tino,
genau so, es funktioniert einwandfrei.
Vielen Dank an einen absoluten VBA-Genie.
Greetings
Andreas

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige