Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte speichern unter Name Zelleninhalt

Spalte speichern unter Name Zelleninhalt
21.12.2020 09:40:26
Michael
Hallo,
ich möchte gern einen Button in einer Excellarbeitsmappe hinterlegen.
Sobald man den Button aktiviert soll eine Datei in dem Ordner \\172.20.120.76\Daten geschieben werden.
Die Datei soll den Inhalt von Spalte N ab Zeile 3 bis in der Spalte nichts mehr steht beinhalten.
Gespeichert soll unter dem Dateinamen der in Zelle O1 steht. Existiert bereits dieser Dateiname
müsste ein Zusatz angehangen werden der aus dem Wert von Zelle O1 beimhaltet + fortlaufende Nummerierung.
Ich habe leider nur einzelne Punkte im Forum gefunden, aber für mich
ist das zu komplex und nicht realisierbar. Mir stellt sich die Frage ob das
überhaupt geht.
Würde mich über Unterstützung sehr freuen.
Gruß
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte speichern unter Name Zelleninhalt
21.12.2020 16:55:04
fcs
Hallo Michael,
mit dem folgenden Makro sollte es funktionieren.
Ich bin nicht 100% sicher, der Speicherort in der von dir gewünschten Form funktioniert.
Zeichne das Speichern einer Datei in dem Ordner mit dem Makro-Rekorder auf, dann siehst du, wie das Verzeichnis im Code angegeben werden muss.
LG
Franz
Sub Speichern_SpalteN_ab_Zeile_3()
Dim strOrdner As String, strDatei As String
Dim wks As Worksheet
Dim rngCopy As Range
Dim strDateiCheck As String, varNr, varNrMax
Dim wkbNeu As Workbook
strOrdner = "C:\Users\Public\Test\Test2" 'Zielordner
strOrdner = "\\172.20.120.76\Daten" 'Zielordner
Set wks = ActiveSheet
With wks
'zu kopierender Zellbereich in Spalte N (14)
Set rngCopy = .Range(.Cells(3, 14), .Cells(.Rows.Count, 14).End(xlUp))
strDatei = .Range("O1").Text
End With
'prüfen, ob vorgegebener Name bereits im Ordner vorhanden
strDateiCheck = Dir(strOrdner & "\" & strDatei & ".xlsx", vbNormal)
If strDateiCheck = "" Then
'neuer Dateiname
strDatei = strOrdner & "\" & strDatei & ".xlsx"
Else
'alle Datein finden, die mit dem gleichen Namen beginnen
strDateiCheck = Dir(strOrdner & "\" & strDatei & "*.xlsx", vbNormal)
Do Until strDateiCheck = ""
'max. Zählnummern vor dem Punkt der Dateinamenserweiterung ermitteln
strDateiCheck = Replace(strDateiCheck, strDatei, "")
If Left(strDateiCheck, 1) = "." Then
varNr = 0
Else
varNr = Val(Left(strDateiCheck, InStr(1, strDateiCheck, ".") - 1))
End If
If varNr > varNrMax Then varNrMax = varNr
strDateiCheck = Dir
Loop
'Zählnummer erhöhen
varNrMax = varNrMax + 1
'neuer Dateiname - Zählnummern mit führender Null
strDatei = strOrdner & "\" & strDatei & Format(varNrMax, "00") & ".xlsx"
End If
'neue Mappe mit einem Tabellenblatt öffnen
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wkbNeu = ActiveWorkbook
With wkbNeu.Worksheets(1)
.Name = rngCopy.Parent.Name 'gleicher Blattname wie in aktiver Arbeitsmappe
rngCopy.Copy
With .Range("A1") 'Einfüge-Zelle im Zielblatt
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
End With
Application.CutCopyMode = False
wkbNeu.SaveAs Filename:=strDatei, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, _
addtomru:=True
wkbNeu.Close savechanges:=False
End Sub

Anzeige
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 08:06:38
Michael
Hallo Franz,
vielen vielen Dank für das Makro. Leider funkltioniert es bei mir nicht.
Es zeigt folgenden Fehler an:
Laufzeitfehler 1004
SaveAs für das Objekt _Workbook ist fehlgeschlagen
diese Bereich ist gelb markiert:

wkbNeu.SaveAs Filename:=strDatei, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, _
addtomru:=True

Das Makro generiert auch ein neues Blatt und gibt die gewünschten Daten ein.
Den Zielordner habe ich auf einen lokalen Ordner zu Testzwecke erst einmal angepasst. Wenn ich  _
das Makro richtig verstehe wird eine xlxs Datei geschrieben. Kann ich das einfach mit der Endung txt ändern?
Viele Grüße und schon einmal besten Dank!

Anzeige
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 08:37:14
Michael
Hallo Franz,
mein Fehler war die versehentlich nicht gefüllte Zelle O1!
Aber das ändern auf txt funktioniert nicht, da fehlt die Information das es ein txt -Format ist.
VG
Michael
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 15:24:58
fcs
Hallo Michael,
hier das Makro als Variante.
Der Inhalt der Spalte wird als Text-Datei gespeichert.
LG
Franz
Sub Speichern_Spalte_N_ab_Zeile_3_als_Text()
Dim strOrdner As String, strDatei As String
Dim wks As Worksheet
Dim rngCopy As Range
Dim strDateiCheck As String, varNr, varNrMax
Dim wkbNeu As Workbook
strOrdner = "\\172.20.120.76\Daten" 'Zielordner
strOrdner = "C:\Users\Public\Test\Test2" 'Zielordner                 'abnpassen !!!
Set wks = ActiveSheet
With wks
'zu kopierender Zellbereich in Spalte N (14)
Set rngCopy = .Range(.Cells(3, 14), .Cells(.Rows.Count, 14).End(xlUp))
strDatei = .Range("O1").Text
End With
'prüfen, ob vorgegebener Name bereits im Ordner vorhanden
strDateiCheck = Dir(strOrdner & "\" & strDatei & ".txt", vbNormal)
If strDateiCheck = "" Then
'neuer Dateiname
strDatei = strOrdner & "\" & strDatei & ".txt"
Else
'alle Datein finden, die mit dem gleichen Namen beginnen
strDateiCheck = Dir(strOrdner & "\" & strDatei & "*.txt", vbNormal)
Do Until strDateiCheck = ""
'max. Zählnummern vor dem Punkt der Dateinamenserweiterung ermitteln
strDateiCheck = Replace(strDateiCheck, strDatei, "")
If Left(strDateiCheck, 1) = "." Then
varNr = 0
Else
varNr = Val(Left(strDateiCheck, InStr(1, strDateiCheck, ".") - 1))
End If
If varNr > varNrMax Then varNrMax = varNr
strDateiCheck = Dir
Loop
'Zählnummer erhöhen
varNrMax = varNrMax + 1
'neuer Dateiname - Zählnummern mit führender Null
strDatei = strOrdner & "\" & strDatei & Format(varNrMax, "00") & ".txt"
End If
'neue Mappe mit einem Tabellenblatt öffnen
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wkbNeu = ActiveWorkbook
With wkbNeu.Worksheets(1)
.Name = rngCopy.Parent.Name 'gleicher Blattname wie in aktiver Arbeitsmappe
rngCopy.Copy
With .Range("A1") 'Einfüge-Zelle im Zielblatt
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
End With
Application.CutCopyMode = False
wkbNeu.SaveAs Filename:=strDatei, FileFormat:=xlUnicodeText, CreateBackup:=False, _
addtomru:=True 'alternatives Textformat: xlTextWindows
wkbNeu.Close savechanges:=False
End Sub

Anzeige
AW: Spalte speichern unter Name Zelleninhalt
21.12.2020 16:57:30
worti
Hallo Michael,
versuch es mal so:

Sub MySub()
Const mypath = "\\172.20.120.76\Daten\"
Dim wb As Workbook
Dim ws As Worksheet
Dim lngRow As Long
Set ws = ThisWorkbook.Worksheets("Tabelle1")
lngRow = ws.Cells(Rows.Count, 14).End(xlUp).Row
Set wb = Workbooks.Add
ws.Range("N3:N" & lngRow).Copy Destination:=wb.Worksheets(1).Range("A1")
wb.SaveAs mypath & ws.Range("O1").Value & ".xlsx"
wb.Close
Set wb = Nothing
Set ws = Nothing
End Sub

Das Prüfen, ob Datei bereits existiert, habe ich mir geschenkt, da gibt es genug Beispiele im Netz
Gruß WOrti
Anzeige
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 08:21:11
Michael
Hi WOrti,
das funktioniert schon fast alles, nur das es eine xlsx generiert
und ich eine txt benötige. Wenn ich die Endung verändere zeigt es mir nur einen Datei Inhalt mit Hieroglyphen an. Aber sonst sehr schön schlank.
vielen Dank und bekommen wir das noch mit der txt hin?
vg
Michael
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 09:08:57
worti
Hallo Michael,
SaveAs-Zeile austauschen durch:
    wb.SaveAs mypath & ws.Range("O1").Value & ".txt", FileFormat:=xlText

Gruß Worti
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 09:52:21
Michael
Hallo
und vielen, vielen Dank für die Unterstützung!
Hat mir sehr weitergeholfen!
Ein schönes Weihnachtsfest!
VG
Michael
Anzeige
AW: Spalte speichern unter Name Zelleninhalt
22.12.2020 11:07:01
worti
Hallo,
ebenfalls ein schönes Weihnachtsfest.
Gruß Worti

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige