Hallo liebes VBA Forum,
ich habe bei einem Makro zwei Probleme mit der Hoffnung, dass mir hier geholfen werden kann.
1. Ich erzeuge aus einem Makro heraus eine Txt-Datei, diese trägt bereits den richtigen Namen und hat bereits den richtigen Namen. Leider steht in der Datei aber nichts drin. Nach meinem Verständnis müsste er doch zumindest "Delete(Y1234)(ReelIdFolder)" reinschreiben, im Falle, dass er die Variable "dateiname" nicht auslesen kann.
2. Kann bisher nur eine Datei erzeugt werden, ohne, dass Excel geschlossen und wieder geöffnet werden muss.
Ich bin über jede Hilfe sehr dankbar.
Mit freundlichen Grüßen
Lukas
Folgender Code wird verwendet:
Sub Datei_suchen_laden()
Sheets("Start").Range("H2").Value = Time
Dim i As Integer
Dim carrier As String
Dim anzahlzeilen As Integer, mengeunsauber As Integer, posMengeklar As Integer
Dim Dateiname As String, text As String, textline As String, posMenge As Integer
Dim strDateiname As String
Dim strPath As String
'Dim i As Long
Dim lngZeile As Long
Application.ScreenUpdating = False
If DBAktuell = 0 Then Call DateinamenAuflisten
anzahlzeilen = Sheets("DB").UsedRange.Rows.Count
carrier = Right(Sheets("Start").Cells(1, 2).Value, 6) 'carrier=Carrier-ID ohne R
Dateiname = "" 'Dateiname resetten
For i = 1 To anzahlzeilen
If Sheets("DB").Cells(i, 2) = carrier Then Dateiname = Sheets("DB").Cells(i, 1)
Next
If Dateiname = "" Then
Sheets("Start").Select
Range("B1").Select
MsgBox ("Kein Feeder gefunden! - ID prüfen")
DBAktuell = 0
Application.ScreenUpdating = True
Exit Sub
Else
Dateiname = "Z:/" & Dateiname
Open Dateiname For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1
posMenge = InStr(text, ",,,") + 3
mengeflasch = Mid(text, posMenge, 6)
posMengeklar = InStr(mengeflasch, ",")
menge = Left(mengeflasch, posMengeklar - 1)
Sheets("Start").Cells(2, 2).Value = menge
Sheets("Start").Select
Range("B1").Select
strPath = "Y:\" 'Speicherpfad eintragen
strDateiname = "DeleteTest_" & Sheets("Start").Cells(1, 11).Value & Sheets("Start").Cells(1, 10).Value & Sheets("Start").Cells(1, 9).Value & Sheets("Start").Cells(2, 9).Value & Sheets("Start").Cells(2, 10).Value & "0000" & ".sts" 'Dateinamen mit Dateiendung eintragen
lngZeile = Range("A" & Rows.Count).End(xlUp).Row
Open strPath & strDateiname For Output As #1
Print #1, "Delete(Y1234)(ReelIdFolder)" & Dateiname
Kill Dateiname
End If
Application.ScreenUpdating = True
End Sub
|