Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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

VBA bestimmten Bereich fest setzen

VBA bestimmten Bereich fest setzen
24.12.2021 09:36:41
Johannes
Hallo,
wenn wirklich heute noch jemand hier ist und mein Weihnachtsprojekt retten will ;-)
Hab einen code den ich ein bisschen abändern will, und das übersteigt meine Fähigkeiten...was nicht so schwer ist
Er soll den Inhalt der Zellen F4:F295 als Textfile speichern
am besten mit dem Namen in "F3" Ist ein Textfile aber endet mit ".SET" statt ".TXT"
meine setWorkRng aus der Internet Recherche haut so nicht hin
es kann auch immer die gleiche file lokation sein.
Bitte, Danke,
Johannes

Sub ExportRangetoFile()
'Update 20130913
Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range
On Error Resume Next
'xTitleId = "Export Setlile Range"
'Set WorkRng = Application.Selection
'Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
'f4:F295
Set WorkRng = Range(Cells(4, 6), Cells(LastRow, 6))
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Worksheets(1).Paste
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt")
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA bestimmten Bereich fest setzen
24.12.2021 10:51:38
Luschi
Hallo Johannes,
bei mir klappt das so:

Sub ExportRangetoFile()
'Update 20130913, 2021-12-24 changed by Luschi
Dim wb As Workbook, ws As Worksheet, WorkRng As Range
Dim saveFile As String, xTitleId As String
Dim lastRow As Long
'On Error Resume Next ' erst aktiv setzen, wenn Tets erfolgreich
xTitleId = "Export Setlile Range"
'Set WorkRng = Application.Selection
'Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
'f4:F295
''saveFile = ThisWorkbook.Path & "\WeihnaachtsWunsch.SET"
Set ws = ThisWorkbook.Worksheets("Expert4x_TT_2021_11") 'hier Tab-Name anpassen
With ws
'letzte Zeile in Spalte 'F'
lastRow = .Cells(.Rows.Count, "F").End(xlUp).Row   ''  "F" --> Spalte '6'
'Kopierbereich
Set WorkRng = .Range(.Cells(4, 6), .Cells(lastRow, 6))
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
With wb.Worksheets(1)
.Range("A1").Value = xTitleId
.Range("A3").Select
.Paste
End With
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.SET), *.SET")
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set wb = Nothing: Set ws = Nothing: Set WorkRng = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA bestimmten Bereich fest setzen
24.12.2021 11:20:25
PawelPopolski
Hallo,
da war ich wohl zu langsam. Aber weil weihnachten ist, habe ich Luschis Code auch noch in meine Mappe gepackt :-)
https://www.herber.de/bbs/user/149987.xlsm
AW: VBA bestimmten Bereich fest setzen
24.12.2021 11:20:51
PawelPopolski
Hallo,
da war ich wohl zu langsam. Aber weil weihnachten ist, habe ich Luschis Code auch noch in meine Mappe gepackt :-)
https://www.herber.de/bbs/user/149987.xlsm
AW: Weihnachtlichen Dank Luschi und Pawel !!
24.12.2021 11:33:24
Johannes
Super das es noch geklappt hat.
Muss jetzt noch den Baum fertig machen, und dann stehle ich mich wieder an den Computer.
Ein leichter Weihnachtsmuffel wie Ihr seht.
Allen ein schönes, Excelfreies Fest
Johannes
Anzeige
AW: VBA bestimmten Bereich fest setzen
25.12.2021 10:04:39
Johannes
Hallo,
ich hoffe sehr da heute keiner außer mir da ist, aber just in Case,
der File wird ordnungsgemäß gespeichert, aber
beide antworten bringen mir den gleichen Fehler im text file.
Set WorkRng = .Range(.Cells(4, 6), .Cells(295, 6))
oder
Set WorkRng = .Range(.Cells(4, col), .Cells(lRow, col))
#REF!
#REF!
#REF!
#REF!
wenn ich aber colum 1 oder 3 eingebe
'Set WorkRng = .Range(.Cells(4, 3), .Cells(295, 3))
'Set WorkRng = .Range(.Cells(4, 1), .Cells(295, 1))
Check if Setlile Nr = Magic Nr
0
Function
PSMHelp
LotSizingMethod
"LotSizingMethod,F"
"LotSizingMethod,1"
"LotSizingMethod,2"
"LotSizingMethod,3"
Das problem ist das die ersten zeilen nicht zum gewünschten WS gehören ( ("Export MMDT")
Set wsQ = wbQ.Worksheets("Export MMDT")
Sondern zu ("Results MMDT")
Check if Setlile Nr = Magic Nr
0
Function
Ich benutze gerade diesen code

Sub ExportRangetoFile()
'Update 20130913
Dim wbQ As Workbook 'Quelle
Set wbQ = ActiveWorkbook
Dim wsQ As Worksheet
Set wsQ = wbQ.Worksheets("Export MMDT")
'On Error Resume Next
With wsQ
Dim col As Integer
col = 6
Dim lRow As Long
lRow = .Cells(.Rows.Count, col).End(xlUp).Row
Dim WorkRng As Range
'Set WorkRng = .Range(.Cells(4, col), .Cells(lRow, col))
Set WorkRng = .Range(.Cells(4, 1), .Cells(lRow, 1))
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim wbZ As Workbook 'Ziel
Set wbZ = Application.Workbooks.Add
WorkRng.Copy
wbZ.Worksheets(1).Paste
Dim fName As String
fName = wsQ.Cells(3, col) & ".set"
wbZ.SaveAs Filename:=fName, FileFormat:=xlText, CreateBackup:=False
wbZ.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Weihnachtlichen Dank
Johannes
Anzeige
AW: VBA Problem könnte im zellwert liegen
25.12.2021 11:03:16
Johannes
So, weitergetestet,
wenn ich die spalten im code ändere funktionieren alle, außer die ich brauche.
Da das bei beiden Lösungen passiert, werde ich das Gefühl nicht los, dass es am Inhalt liegt.
Ich befülle die Zellen z. B. in F4 mit Inhalt Zelle A4 und "=" Zeichen und Inhalt Zelle C4 mit dieser Formel.
=A4&"="&C4
Könnte es daran liegen?
Nachdem die Spalten A und C bei direktem Aufruf keine Probleme machen wäre es besser sie mit VBA zu verbinden?
oder an was könnte es sonst noch liegen?
Danke nochmal
Johannes
AW: VBA bestimmten Bereich fest setzen
25.12.2021 13:57:53
Herbert_Grom
Hallo Johannes,
probiers mal damit:
https://www.herber.de/bbs/user/149991.xlsm
Servus
Anzeige
AW: VBA leider nicht, das selbe Problem
25.12.2021 14:37:25
Johannes
Leider nicht
ich hab mal das Sheet mit reinkopiert in den File.
Wenn ich den Bereich auf C4:C295 umschreibe dann gehts einwandfrei.
https://www.herber.de/bbs/user/149992.zip
Danke
Johannes
AW: VBA leider nicht, das selbe Problem
25.12.2021 16:55:22
Herbert_Grom
So sieht die .SET-Datei aus, die mit Luschis & meinem Makro erstellt und gespeichert wird:
https://www.herber.de/bbs/user/149993.txt
Ich musste sie nur fürs Hochladen in "TXT" umbenennen. Was ist daran jetzt falsch?
Servus
AW: VBA nicht die gewünschte Spalte F
26.12.2021 10:04:28
Johannes
Moin,
das ist spalte C und nicht die gewünschte F von EXport mmdt:
Bei mir hat alles funkrioniert ausser Spalte F
Danke Euch fürs dranbleiben
Johannes
Anzeige
AW: VBA leider nicht, das selbe Problem
26.12.2021 10:21:42
Johannes
Noch mal Moin.
So siehts gerade mit pavels code aus,
Schon ganz gut aber die Überschrift stört und die Anführungszeichen "" bei einem 0 wert
Export SetFile Range
PSMHelp=**sheet**Export MMDT***************
LotSizingMethod=3
"LotSizingMethod,F=0"
"LotSizingMethod,1=0"
"LotSizingMethod,2=0"
"LotSizingMethod,3=0"
InitialRiskPercent=0.1
"InitialRiskPercent,F=0"
"InitialRiskPercent,1=0"
"InitialRiskPercent,2=0"
"InitialRiskPercent,3=0"
ManualLots=0.1
"ManualLots,F=0"
"ManualLots,1=0"
"ManualLots,2=0"
"ManualLots,3=0"
TDSMHelp=************************************
AllowedDirection=2
"AllowedDirection,F=0"
"AllowedDirection,1=0"
Johannes
Hier mal der aktuelle code

Sub ExportRangetoFileLuschiUndHerbert() 'Update 20130913, 2021-12-24 changed by Luschi
Dim wb As Workbook, ws As Worksheet, WorkRng As Range
Dim saveFile As String, xTitleId As String
'On Error Resume Next ' erst aktiv setzen, wenn Tets erfolgreich
xTitleId = "Export SetFile Range"
'Set WorkRng = Application.Selection
'Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
'f4:F295
''saveFile = ThisWorkbook.Path & "\WeihnaachtsWunsch.SET"
Set ws = ThisWorkbook.Worksheets("Export MMDT") 'hier Tab-Name anpassen
Set WorkRng = ws.Range("F4:F295") 'Kopierbereich
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
With wb.Worksheets(1)
.Range("A1").Value = xTitleId
.Range("A3").PasteSpecial Paste:=xlPasteValues
End With
saveFile = ThisWorkbook.Path & "\" & ws.[F3] & ".SET"
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Anzeige
AW: VBA Ziemlich ratlos im Augenblick
26.12.2021 15:04:59
Johannes
Also nach ein bisschen herumspielen das folgende Ergebnis
Mit der Formel in Zelle E4 (=TEXTVERKETTEN("=";;A4;C4))
wenn ich spalte, E im Range anspreche, kommt das.
Export SetFile Range
#REF!
#REF!
#REF!
#REF!
#REF!
------------------------------------------------------------------------
mit der Formel in Zelle F4 (=TEXT(E4;0), als Text formatiert.
Wenn ich spalte, F im Range anspreche, kommt das.
Export SetFile Range
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
------------------------------------------------------------------------
Wenn ich spalte, G im Range anspreche, kommt das.
Formel in Zelle G4 (PSMHelp=**sheet**Export MMDT***************) Hardcopy nur werte von E4
Export SetFile Range(G)
PSMHelp=**sheet**Export MMDT***************
LotSizingMethod=3
"LotSizingMethod,F=0"
"LotSizingMethod,1=0"
"LotSizingMethod,2=0"
"LotSizingMethod,3=0"
InitialRiskPercent=0.1
"InitialRiskPercent,F=0"
"InitialRiskPercent,1=0"
"InitialRiskPercent,2=0"
"InitialRiskPercent,3=0"
ManualLots=0.1
G kommt schon nahe hin, wenn die Anführungszeichen nicht wären
und ist das gleiche Ergebnis als wenn ich
.Range("A3").Select
.Paste
mit
.Range("A3").PasteSpecial Paste:=xlPasteValues
ersetzte
Ziemlich ratlos im Augenblick
Johannes
Anzeige
AW: VBA Ziemlich ratlos im Augenblick
27.12.2021 10:26:30
Herbert_Grom
Hallo Johannes,
ergänze mal die folgende Code-Zeile wie angegeben:

wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False, local:=True
Servus
AW: VBA Ziemlich ratlos im Augenblick
27.12.2021 10:52:32
Johannes
Also nach ein bisschen herumspielen das folgende Ergebnis
Mit der Formel in Zelle E4 (=TEXTVERKETTEN("=";;A4;C4))
wenn ich spalte, E im Range anspreche, kommt das.
Export SetFile Range
#REF!
#REF!
#REF!
#REF!
#REF!
------------------------------------------------------------------------
mit der Formel in Zelle F4 (=TEXT(E4;0), als Text formatiert.
Wenn ich spalte, F im Range anspreche, kommt das.
Export SetFile Range
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
------------------------------------------------------------------------
Wenn ich spalte, G im Range anspreche, kommt das.
Formel in Zelle G4 (PSMHelp=**sheet**Export MMDT***************) Hardcopy nur werte von E4
Export SetFile Range(G)
PSMHelp=**sheet**Export MMDT***************
LotSizingMethod=3
"LotSizingMethod,F=0"
"LotSizingMethod,1=0"
"LotSizingMethod,2=0"
"LotSizingMethod,3=0"
InitialRiskPercent=0.1
"InitialRiskPercent,F=0"
"InitialRiskPercent,1=0"
"InitialRiskPercent,2=0"
"InitialRiskPercent,3=0"
ManualLots=0.1
G kommt schon nahe hin, wenn die Anführungszeichen nicht wären
und ist das gleiche Ergebnis als wenn ich
.Range("A3").Select
.Paste
mit
.Range("A3").PasteSpecial Paste:=xlPasteValues
ersetzte
Ziemlich ratlos im Augenblick
Johannes
Anzeige
AW: VBA Das wars, Danke nur noch die Überschrift
27.12.2021 15:34:16
Johannes
Hallo, Herbert
Sorry ich sitz seit 8 am Computer und hab bestimmt 100 aktualisiert und deinen post total übersehen.
Jetzt lauft es !!
Wenn ihr jetzt mein Grinsen sehen könntet !!
Wenn es einen Grammy für Excel Hilfe geben würde, solltet Ihr den bekommen.(alle die immer so toll helfen)
Das einzige, was ich noch gerne ändern würde, wäre das Entfernen der Überschrift in der 1. Zeile:. "Export SetFile Range"
Ich weiß nicht, ob meine Bots das beim Einlesen ignorieren, aber ich versuchs dann gleich.
Danke an alle, die daran beteiligt waren.
Jetzt versuch ich zu verstehen, was da jetzt passiert (mit Onkel Googel und dann ans nächste Projekt.)
Für alle die das gleiche Problem haben hier der funktionierende Code.,
Danke
Johannes

Sub ExportRangetoFileLuschiUndHerbert_1() 'Update 20130913, 2021-12-24 changed by Luschi
Dim wb As Workbook, ws As Worksheet, WorkRng As Range
Dim saveFile As String, xTitleId As String
'On Error Resume Next ' erst aktiv setzen, wenn Tets erfolgreich
xTitleId = "Export SetFile Range"
'Set WorkRng = Application.Selection
'Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
'f4:F295
''saveFile = ThisWorkbook.Path & "\WeihnaachtsWunsch.SET"
Set ws = ThisWorkbook.Worksheets("Export MMDT") 'hier Tab-Name anpassen
Set WorkRng = ws.Range("F4:F295") 'Kopierbereich
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
With wb.Worksheets(1)
.Range("A1").Value = xTitleId
.Range("A3").PasteSpecial Paste:=xlPasteValues
End With
saveFile = ThisWorkbook.Path & "\" & ws.[F3] & ".SET"
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False, local:=True  'ergenzt herbert
wb.Close
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Anzeige
AW: VBA Das wars, Danke nur noch die Überschrift
27.12.2021 18:10:17
Herbert_Grom
Wenn du das Ganze ohne Überschrift haben willst, dann geht das so:

Sub ExportRangetoFileLuschiUndHerbert_2()
Dim wb As Workbook, ws As Worksheet, WorkRng As Range, saveFile As String
'On Error Resume Next ' erst aktiv setzen, wenn Tets erfolgreich
Set ws = ThisWorkbook.Worksheets("Export MMDT") 'hier Tab-Name anpassen
Set WorkRng = ws.Range("F4:F295") 'Kopierbereich
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Range("A1").PasteSpecial Paste:=xlPasteValues
saveFile = ThisWorkbook.Path & "\" & ws.[F3]
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False, local:=True  'ergänzt von Herbert
wb.Close
Application.CutCopyMode = False
End Sub
P.S.: Das ".SET" am Ende von "saveFile..." brauchst du nicht, da es schon in "F3" drin ist!
Servus
AW: VBA Laufzeitfehler 438
28.12.2021 11:23:01
Johannes
Hallo Herbert,
kommet bei mir leider der Fehler
Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht
Und der Debugger bleibt hier hängen
wb.Range("A1").PasteSpecial Paste:=xlPasteValues
Johannes
AW: VBA Laufzeitfehler 438
28.12.2021 11:36:26
Herbert_Grom
dann lade noch mal deine aktuelle Datei hoch, in der der Fehler kommt.
AW: VBA Laufzeitfehler 438
28.12.2021 12:05:44
GerdL
Hallo
Es ist ein kleiner Übrtragungsfehler drin.
Im vorherigem Code stand da
wb.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
Gruß Gerd
AW: VBA Laufzeitfehler 438 mit File
28.12.2021 15:32:16
Herbert_Grom
kannst du eigentlich auch mal die Datei ohne zip hochladen?
AW: VBA Laufzeitfehler 438 mit File
28.12.2021 17:46:40
Herbert_Grom
Du weißt aber schon, dass deine "Test 7" ganz anders aussieht, als deine "Test 6"? Was willst du nun kopieren: "E4:E295" oder "F4:F295"?
AW: VBA Laufzeitfehler 438 ungezippt
29.12.2021 09:15:53
Johannes
Guten Morgen
sorry wusste nicht das ZIP stört, habs mal so gesehen und dann auch so gemacht.
Ich hab paar Sachen geändert und weiter gebaut. Hat ja funktioniert außer der Kopfzeile, die Test7 Seite ist nur eine aus einem Work book mit 7 Sheets. Ich kopiere immer die aktuelle Seite so wie sie gerade ist, Sorry nochmal, wenn es verwirrend war.
Export Bereich E4:E295
Filename: F3
ungezippt
https://www.herber.de/bbs/user/150053.xlsm
Danke
Johannes
AW: VBA Laufzeitfehler 438 ungezippt
29.12.2021 10:47:42
Herbert_Grom
So wie "GerdL" es schon beschrieben hat, lag der Fehler an dem fehlenden "Sheets(1)". Jetzt funktioniert es, jedenfalls bei mir!
https://www.herber.de/bbs/user/150055.xlsm
Servus
AW: VBA Super Danke an alle die mitgeholfen haben
29.12.2021 11:44:31
Johannes
Super Danke an alle die mitgeholfen haben,
und besonders Herbert für seine Geduld.
Geht auch bei mir! :-)
Johannes
AW: VBA Super Danke an alle die mitgeholfen haben
29.12.2021 15:22:15
Herbert_Grom
Hallo Johannes,
Halleluja! Aber aufgeben kommt nicht in Frage! ;0)=) Und danke für die Rückmeldung!
Servus
AW: VBA leider nicht, das selbe Problem
25.12.2021 17:02:21
PawelPopolski
Hallo,
mach mal aus den zwei Zeilen
.Range("A3").Select
.Paste
diese eine Zeile
.Range("A3").PasteSpecial Paste:=xlPasteValues
damit werden die kopierten Formeln in Werte umgewandelt.
Dann sollte es auch mit lRow und col funktionieren.
Frohe Weihnachten !
AW: VBA ja,fast
26.12.2021 10:15:52
Johannes
Guten Morgen,
Fast richtig, leider setzt der code jetzt „Anführungszeichen“ anscheinend bei allen die mit =0 enden,
und die Überschrift könnte stören
Sieht so aus, die ersten Zeilen:
Export SetFile Range
PSMHelp=**sheet**Export MMDT***************
LotSizingMethod=3
"LotSizingMethod,F=0"
"LotSizingMethod,1=0"
"LotSizingMethod,2=0"
"LotSizingMethod,3=0"
InitialRiskPercent=0.1
Danke vielmals
Johannes

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige