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

Hilfe!!!! komm nicht mehr weiter

Hilfe!!!! komm nicht mehr weiter
20.08.2017 20:12:09
Stefan
Hallo liebe Gemeinde,
ich bin hier am verzweifeln. wenn die Ordner nicht erstellt sind dann funktioniert das Makro super. Sobald die Datei existiert und ich diese überschreiben möchte sag er mir Fehler 75. WAS MACH ICH VERKEHRT?
es geht um dieses Makro:

Sub SpeichernBestand()
Application.DisplayAlerts = False
Dim datei As String, Text As String
Dim Zeile As Long
Dim pfad As String
Dim name As String
Dim letztezeile As Integer
On Error GoTo Fehler
Dim Fileformat As Object
Dim oname As String
Dim vdatei As String
Dim a As String
Dim jahr As Integer
jahr = Year(CDate(ThisWorkbook.Worksheets("Bestand").Range("A1")))
oname = "IST_Bestand"
AktuellesDatum = Date
pfad = ThisWorkbook.Path
name = "IST-Bestand am "
vdatei = pfad & "\" & oname & "\" & jahr
datei = vdatei & "\" & name & Date & ".csv"
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set fs = CreateObject("Scripting.FileSystemObject")
MkDir pfad & "\" & oname
If fs.folderexists(vdatei) Then
GoTo schreiben
Else
a = MsgBox("Ordner " & pfad & "\" & oname & "\" & jahr & " nicht gefunden!" & vbLf & _
_
"Ordner anlegen?", vbQuestion + vbYesNo, "Frage")
If a = vbYes Then
MkDir (vdatei)
GoTo schreiben
schreiben:
Open datei For Output As #1 'Zieldatei öffnen
For Zeile = 1 To letztezeile
'reinschreiben
Print #1, Cells(Zeile, 1) & ";" & Cells(Zeile, 2) & ";" & Cells(Zeile, 3) & ";" & Cells(Zeile, _
_
4) & ";" & Cells(Zeile, 5) & ";" & Cells(Zeile, 6) & ";" & Cells(Zeile, 7) & ";" & Cells(Zeile, _
8) & ";" & Cells(Zeile, 9) & ";" & Cells(Zeile, 10) & ";" & Cells(Zeile, 11) & ";" & Cells(Zeile, 12) & ";" & Cells(Zeile, 18) & ";"
Next Zeile
Close #1    'Zieldatei schließen
Exit Sub
Fehler:
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End If
End If
Application.DisplayAlerts = True
End Sub

Ich bitte um Hilfe
Danke schon mal im voraus

Die Datei https://www.herber.de/bbs/user/115601.xlsm wurde aus Datenschutzgründen gelöscht

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 20:49:17
Sepp
Hallo Stefan,
versuche es mal so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub SpeichernBestand()
Dim datei As String
Dim Zeile As Long
Dim pfad As String
Dim name As String
Dim letztezeile As Integer
Dim oname As String
Dim vdatei As String
Dim jahr As Integer
Dim lngRet As Long, FF As Integer

On Error GoTo Fehler

jahr = Year(CDate(ThisWorkbook.Worksheets("Bestand").Range("A1")))
oname = "IST_Bestand"
pfad = ThisWorkbook.Path
name = "IST-Bestand am "
vdatei = pfad & "\" & oname & "\" & jahr
datei = vdatei & "\" & name & Date & ".csv"
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

lngRet = MakeSureDirectoryPathExists(datei)

If lngRet <> 0 Then
  FF = FreeFile
  Open datei For Output As #FF 'Zieldatei öffnen
  For Zeile = 1 To letztezeile
    'reinschreiben
    Print #FF, Cells(Zeile, 1) & ";" & Cells(Zeile, 2) & ";" & Cells(Zeile, 3) _
      & ";" & Cells(Zeile, 4) & ";" & Cells(Zeile, 5) & ";" & Cells(Zeile, 6) & _
      ";" & Cells(Zeile, 7) & ";" & Cells(Zeile, 8) & ";" & Cells(Zeile, 9) & _
      ";" & Cells(Zeile, 10) & ";" & Cells(Zeile, 11) & ";" & Cells(Zeile, 12) & _
      ";" & Cells(Zeile, 18) & ";"
  Next Zeile
  Close #FF 'Zieldatei schließen
Else
  MsgBox datei & vbLf & "konnte nicht gespeichert werden!"
End If

Fehler:
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
  & "Beschreibung: " & Err.Description _
  , vbCritical, "Fehler"
End Sub

Gruß Sepp

Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:02:47
Stefan
Hallo Sepp,
dein Makro setze ich in DieseArbeitsmappe rein oder ?
Allgemeines Modul!
20.08.2017 21:04:27
Sepp
Hallo Stefan,
steht auch im Code!
Modul: Modul1 Typ: Allgemeines Modul
Gruß Sepp

AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:12:44
Stefan
habe es eingefügt,
jetzt kommt erst Fehler 0, dann Fehler 75
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:22:16
Sepp
Hallo Stefan,
Fehler 0 ist klar, die letzten Code-Zeilen müssen so lauten.
Fehler:
If Err.Number <> 0 Then
  MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine & "Beschreibung: " & _
    Err.Description, vbCritical, "Fehler"
End If

Fehler 75 sagt, du hast keinen Zugriff auf den Pfad oder die Datei.
Bei mir läuft es ohne Probleme. Ist die Datei gespeichert?
Gruß Sepp

Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:27:22
Stefan
ok super soweit, aber der Fehler 75 wird mir immernoch angezeigt. ER speichert aber die Datei ab
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:28:36
Stefan
und ja, die Datei ist gespeichert
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:32:18
Uduuh
Hallo,
natürlich rennt das in nen Fehler, falls der Ordner existiert.
anstatt
MkDir pfad & "\" & oname

checken, ob es ihn schon gibt
If dir(pfad & "\" & oname,vbdirectory)="" then MkDir pfad & "\" & oname
Gruß aus’m Pott
Udo

AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:39:29
Stefan
der Fehler wird mir noch angezeigt
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:44:05
Uduuh
Hallo,
logisherweise auch hier prüfen:
MkDir (vdatei)
Gruß aus’m Pott
Udo

Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 21:50:21
Stefan
schon klar,
ich bekomme den Fehler nicht weg
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:18:58
Matthias
Moin! ALso habe auch mal deinen Code mit den hier schon angesprochenen Veränderungen ausprobiert. Bei mir hat es geklappt - bei allen Durchläufen. Kannst du ggf. mal die Mappe hochladen? Was steht sonst in Zelle A1. Oder nimmt mal das On Error goto Fehler raus und lasse dann den Code durchlaufen. Wo wird dann der Fehler angezeigt (im Zweifel im Einzelschritt). VG
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:21:18
Stefan
in zelle A1 steht das Datum von Heute. die Mappe ist im ersten Beitrag drin.
er Speichert mir ja alles ab aber den Fehler 75 zeigt er mir weiterhin an
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:26:55
Matthias
Hallo! Deswegen nimm mal die Zeile mit on Error raus und lass den Code durchlaufen. Dann müsste er irgendwo hängen bleiben. Da wäre die Frage: Wo? VG
Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:35:02
Stefan
habe ich schon gemacht. er bleibt nirgends hängen. er bringt mir den Fehler und wenn ich auf OK drücke speichert er mir alles ab
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:38:47
Matthias
Kannst du dann mal den Code im Einzelschritt (F8 Taste) durchgehen. Da müsste er dann ja an irgendeiner ZEile zum Fehler springen.
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:44:17
Matthias
Moin nochmal! Da ich mir grad mal die Beschreibung des Fehlercodes duchlese. Kann es sein, dass die Datei schreibgeschützt gespeichert wird? Öffne mal die CSV und schaue mal, ob die schreibgeschützt ist. VG
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 22:49:58
Stefan
unter Eigenschaften und in der csv kein Schreibschutz vorhanden.
Wäre aber eine Idee, kannst du mir den Codeschnippsel mal geben was dazu nötig ist. Schaden kann es ja nicht
Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 23:10:34
Matthias
Da gibt es keinen wirklichen Codeschnipsel. Wenn ich mir den Fehlercode so durchlese (https://msdn.microsoft.com/en-us/library/aa264531(v=vs.60).aspx), könnte es daran liegen, dass ein Schreibschutz draufliegt. Evtl. wird da ja systemseitig immer einer vergeben (https://answers.microsoft.com/de-de/msoffice/forum/msoffice_excel-mso_windows8/excel-2013-speichert-automatisch-alles/d3c17185-7698-4a3b-be12-1c6be41671c0?auth=1).
Was noch eine Möglichkeit wäre ist, den Code so anzupassen, dass er gar nicht mit der alten Datei in konflikt gerät. Hier mal eine Variante. Dabei wird die Datei wenn schon vorhanden einfach gelöscht. Dein COde würde dann eh eine neue anlegen. Da du nicht anhängend schreibst, sollte das egal sein. Damit wäre der Dateikonflikt aber vom Tisch. Bin für heute aber erstmal weg. Kannst ja mal den Code probieren, sind nur 3 Zeilen mehr. Bsi morgen denne. VG

Sub SpeichernBestand()
Application.DisplayAlerts = False
Dim datei As String, Text As String
Dim Zeile As Long
Dim pfad As String
Dim name As String
Dim letztezeile As Integer
On Error GoTo Fehler
Dim Fileformat As Object
Dim oname As String
Dim vdatei As String
Dim a As String
Dim jahr As Integer
jahr = Year(CDate(ThisWorkbook.Worksheets("Bestand").Range("A1")))
oname = "IST_Bestand"
AktuellesDatum = Date
pfad = ThisWorkbook.Path
name = "IST-Bestand am "
vdatei = pfad & "\" & oname & "\" & jahr
datei = vdatei & "\" & name & Date & ".csv"
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set fs = CreateObject("Scripting.FileSystemObject")
If Dir(pfad & "\" & oname, vbDirectory) = "" Then MkDir pfad & "\" & oname 'MkDir pfad & "\" &  _
oname
If fs.folderexists(vdatei) Then
If fs.fileexists(datei) Then
Kill datei
End If
GoTo schreiben
Else
a = MsgBox("Ordner " & pfad & "\" & oname & "\" & jahr & " nicht gefunden!" & vbLf & _
_
_
"Ordner anlegen?", vbQuestion + vbYesNo, "Frage")
If a = vbYes Then
MkDir (vdatei)
GoTo schreiben
schreiben:
Open datei For Output As #1 'Zieldatei öffnen
For Zeile = 1 To letztezeile
'reinschreiben
Print #1, Cells(Zeile, 1) & ";" & Cells(Zeile, 2) & ";" & Cells(Zeile, 3) & ";" & Cells(Zeile, _
_
_
4) & ";" & Cells(Zeile, 5) & ";" & Cells(Zeile, 6) & ";" & Cells(Zeile, 7) & ";" & Cells(Zeile, _
_
8) & ";" & Cells(Zeile, 9) & ";" & Cells(Zeile, 10) & ";" & Cells(Zeile, 11) & ";" & Cells( _
Zeile, 12) & ";" & Cells(Zeile, 18) & ";"
Next Zeile
Close #1    'Zieldatei schließen
Exit Sub
Fehler:
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End If
End If
Application.DisplayAlerts = True
End Sub

Anzeige
AW: Hilfe!!!! komm nicht mehr weiter
20.08.2017 23:34:53
Stefan
das war es auch nicht. Ich glaube aber was es ist, die Ordner werden schreibgeschützt erstellt. meine Frage wie kann ich diese anlegen ohne Schreibschutz?
Bitte und Danke für die Vorschläge
AW: Hilfe!!!! komm nicht mehr weiter
21.08.2017 00:17:47
Luschi
Hallo Stefan,
wie lange willst Du hier noch rumeiern, ohne überhaupt daran zu denken, endlich mal eine Demodatei hier bereitzustellen.
Der Automechaniker-Meister hätte Dich längst aus dem Büro geschmissen für diese verbalen Beschreibungen, ohne die streikende Auto-Kiste endlich mal vorbeizubringen!
Gruß von Luschi
aus klein-Paris
Und wie oft soll dieser nichtssagende Betreff ...
21.08.2017 01:41:11
Luc:-?
…hier noch erscheinen, Folks! :-[
🙈 🙉 🙊 🐵 Morrn, Luc :-?
Besser informiert mit …
Anzeige
schreibschutz entfernen
21.08.2017 15:27:47
Matthias
Moin! Also hier mal eine Variante die den Schreibschutz rausnimmt. Voraussetzung ist natürlich, dass du die Rechte dafür auf dem laufenden System hast. Bei mir am PC hat es geklappt, kann aber sein, dass dein Admin (wenn auf Arbeit) dir da keine Rechte eingeräumt hat. Der Code setzt die Datei und den Ordner auf ungeschützt. Mal testen und wieder melden. VG

Sub SpeichernBestand()
Application.DisplayAlerts = False
Dim datei As String, Text As String
Dim Zeile As Long
Dim pfad As String
Dim name As String
Dim letztezeile As Integer
On Error GoTo Fehler
Dim Fileformat As Object
Dim oname As String
Dim vdatei As String
Dim a As String
Dim jahr As Integer
jahr = Year(CDate(ThisWorkbook.Worksheets("Bestand").Range("A1")))
oname = "IST_Bestand"
AktuellesDatum = Date
pfad = ThisWorkbook.Path
name = "IST-Bestand am "
vdatei = pfad & "\" & oname & "\" & jahr
datei = vdatei & "\" & name & Date & ".csv"
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set fs = CreateObject("Scripting.FileSystemObject")
If Dir(pfad & "\" & oname, vbDirectory) = "" Then MkDir pfad & "\" & oname 'MkDir pfad & "\" &  _
_
oname
If fs.folderexists(vdatei) Then
SetAttr vdatei & "\", vbNormal
If fs.fileexists(datei) Then
SetAttr datei, vbNormal
'Kill datei
End If
GoTo schreiben
Else
a = MsgBox("Ordner " & pfad & "\" & oname & "\" & jahr & " nicht gefunden!" & vbLf & _
"Ordner anlegen?", vbQuestion + vbYesNo, "Frage")
If a = vbYes Then
MkDir (vdatei)
GoTo schreiben
schreiben:
Open datei For Output As #1 'Zieldatei öffnen
For Zeile = 1 To letztezeile
'reinschreiben
Print #1, Cells(Zeile, 1) & ";" & Cells(Zeile, 2) & ";" & Cells(Zeile, 3) & ";" & Cells(Zeile, _
_
4) & ";" & Cells(Zeile, 5) & ";" & Cells(Zeile, 6) & ";" & Cells(Zeile, 7) & ";" & Cells(Zeile, _
_
8) & ";" & Cells(Zeile, 9) & ";" & Cells(Zeile, 10) & ";" & Cells(Zeile, 11) & ";" & Cells( _
Zeile, 12) & ";" & Cells(Zeile, 18) & ";"
Next Zeile
Close #1    'Zieldatei schließen
Exit Sub
Fehler:
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End If
End If
Application.DisplayAlerts = True
End Sub

Anzeige
@ Matthias AW: schreibschutz entfernen
21.08.2017 20:45:53
Stefan

Die Datei https://www.herber.de/bbs/user/115601.xlsm wurde aus Datenschutzgründen gelöscht


Besitzänderung bereits vorgenommen im System (WIN10 X64),
hier nochmal der Code und die Datei:
Sub SpeichernBestand()
Application.DisplayAlerts = False
Dim datei As String, Text As String
Dim Zeile As Long
Dim pfad As String
Dim name As String
Dim letztezeile As Integer
Dim Fileformat As Object
Dim vdatei As String
Dim a As String
Dim jahr As Integer
Dim lw As String
Dim lager As String
Dim fso As Object
'On Error GoTo Fehler
jahr = Year(CDate(ThisWorkbook.Worksheets("Bestand").Range("A1")))
oname = "IST_Bestand"
AktuellesDatum = Date
pfad = ThisWorkbook.Path
name = "IST-Bestand am "
vdatei = pfad & "\" & oname & "\" & jahr
datei = vdatei & "\" & name & Date & ".csv"
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set fs = CreateObject("Scripting.FileSystemObject")
If Dir(pfad & "\" & oname, vbDirectory) = "" Then MkDir pfad & "\" & oname
If fs.folderexists(vdatei) Then
SetAttr vdatei & "\", vbNormal
If fs.fileexists(datei) Then
SetAttr datei, vbNormal
'Kill datei
End If
GoTo schreiben
Else
a = MsgBox("Ordner " & pfad & "\" & oname & "\" & jahr & " nicht gefunden!" & vbLf & _
"Ordner anlegen?", vbQuestion + vbYesNo, "Frage")
If a = vbYes Then
MkDir (vdatei)
GoTo schreiben
schreiben:
Open datei For Output As #1 'Zieldatei öffnen
For Zeile = 1 To letztezeile
'reinschreiben
Print #1, Cells(Zeile, 1) & ";" & Cells(Zeile, 2) & ";" & Cells(Zeile, 3) & ";" & Cells(Zeile, _
4) & ";" & Cells(Zeile, 5) & ";" & Cells(Zeile, 6) & ";" & Cells(Zeile, 7) & ";" & Cells(Zeile, 8) & ";" & Cells(Zeile, 9) & ";" & Cells(Zeile, 10) & ";" & Cells(Zeile, 11) & ";" & Cells(Zeile, 12) & ";" & Cells(Zeile, 18) & ";"
Next Zeile
Close #1    'Zieldatei schließen
Exit Sub
'Fehler:
'If Err.Number = 75 Then
'MsgBox Error() & Chr(13) & Chr(13) & Err.Description, , "Fehler-Nr.: " & Str(Err. _
Number)
'On Error Resume Next
'End If
End If
End If
Application.DisplayAlerts = True
End Sub

Melde mich morgen nochmal und danke schon mal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige