Formel Fehler
#1
Hallo zusammen,
ich habe hier ein Programm mit VBA wo ständig ein Fehler gemeldet wir, ich denke es hat was mit dem Pfard zutun.
in der Datei Jahres-Monats-ordner mit Dateien erstellen 15 gebe ich das Jahr und den Monat und dann soll er mir den Monat erstellen.
Ich lade die Datei mal hoch vieleicht findet einer den fehler.
Muß die Datei teilen weil sie sonst zu groß ist

Gurß wirtzwiwi

Kann die dritte Datei leider nicht hochladen weil sie zu groß ist, aber die gehört dazu.
was kann ich machen oder sie schicken


Angehängte Dateien
.xlsm   Jahres-Monats-ordner mit Dateien erstellen 15.xlsm (Größe: 33,35 KB / Downloads: 7)
.xlsm   LN - Muster.xlsm (Größe: 407,66 KB / Downloads: 5)
Antworten Top
#2
Hi,

Es wäre sinnvoll,  zu wissen, wie die Fehlermeldung lautet.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
MkDir OP    das ist der Fehler 

Option Explicit

Private Const Dateipfad_LN_Muster As String = "H:\Dispo.-Krane und Tiefflader\Krane u. Tieflader\LN - Muster.xlsm"
Private Const Dateipfad_Krane_Tieflader_und_Abstützplatten_vorlage As String = "H:\Dispo.-Krane und Tiefflader\Krane-Tieflader und Abstützplatten (vorlage).xlsm"
Private Const Ordnerpfad_jahresüberordner As String = "H:\Dispo.-Krane und Tiefflader\Krane u. TiefladerKrane Tieflader"
Private Jahresordner As String
Private Monatsordnerpfad As String

Public Gesamtdateien As Integer
Public Vortschritt As Integer

Public Sub Jahresordner_erstellen(Jahr As Integer)
    Dim OP As String
   
    OP = Ordnerpfad_jahresüberordner & "Krane-Tieflader " & Format(Jahr, "0000")
   
    ' Jahresordner schauen ob vorhanden, wenn nicht dann erstellen.
    If Ordner_vorhanden(OP) = False Then
        MkDir OP
    End If
   
    Jahresordner = OP & "\"
End Sub

Public Sub Monat_erstellen(Jahr As Integer, Monat As Integer)
    Dim D_von As Date, D_bis As Date, D As Date, KW As Integer, Mem_KW As Integer, Datum As String, i As Integer
    Dim Pfad1 As String, Pfad2 As String, DE As String, WS As Worksheet, Wochentage As Variant, WT As Variant, x As Integer, W As Integer
   
    D_von = DateSerial(Jahr, Monat, 1)
    For i = 1 To 7
        KW = dt_Kalenderwoche(D_von)
        Mem_KW = dt_Kalenderwoche(D_von - i)
        If KW <> Mem_KW Then
            D_von = D_von - (i - 1)
            Exit For
        End If
    Next i
   
    D_bis = DateSerial(Jahr, Monat + 1, 1) - 1
    For i = 1 To 7
        KW = dt_Kalenderwoche(D_bis)
        Mem_KW = dt_Kalenderwoche(D_bis + i)
        If KW <> Mem_KW Then
            D_bis = D_bis + (i - 1)
            Exit For
        End If
    Next i
Antworten Top
#4
Hallo,

pack da ...
PHP-Code:
Private Const Ordnerpfad_jahresüberordner As String "H:\Dispo.-Krane und Tiefflader\Krane u. TiefladerKrane Tieflader" 
mal ein Backslash dazu:
PHP-Code:
Private Const Ordnerpfad_jahresüberordner As String "H:\Dispo.-Krane und Tiefflader\Krane u. TiefladerKrane Tieflader\" 
Gruß
Michael
Antworten Top
#5
Hi,

vorab: Code kann man als Code o. PHP mit den entsprechenden Buttons darstellen.
Zum Code:

Ein Leerzeichen hinter " Krane-Tieflader"??
Ist für Dateinamen ungünstig, besser wäre ein Unterstrich. Auch äöü in Dateinamen führen leicht zu Problemen.


Es heißt übrigens Fortschritt!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#6
Danke geht leider nicht

Der Unterstrich hatte ich nur gemacht, das man sieht wer den Fehler macht.
Antworten Top
#7
Hi,

Zitat:Danke geht leider nicht

Tolle Aussage!
 
Mein Kommentar:

Problem liegt bei Dir!

Zitat:Der Unterstrich hatte ich nur gemacht, das man sieht wer den Fehler macht.
Hat niemand beanstandet, ich habe kritisiert, dass da zuviel Leerzeichen in den Dateinamen sind. Im Übrigen sind die ganzen Bezeichnungen für mein Gefühl viel zu lang. Da kann man sich kürzere Namen einfallen lassen, die genauso nachvollziehbar sind.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#8
Man sollte Daten nicht splitten, doch in nur einem Arbeitsblatt speichern
Ein Arbeitsblatt enthält 2^20 Zeilen (= Records); das reicht meistens.

Splitten von Datein in Arbeitsblättern, Dateien und Folders ist qua Automatisierung unprofessionell und entspricht noch immer das 'Papier'denken in Archiven, Laden, Mappen, usw..

Ein Database kann man beliebig filtern, sortieren usw. Erst dann benützt man die Möglichkeiten von Excel optimal.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Und weniger Code im Userform Macromodul reicht schon:

Code:
Private Sub UserForm_Initialize()
  ComboBox1.List = [transpose(row(1:10)+year(today()))]
  ListBox1.List = Application.GetCustomListContents(3)
End Sub

Code:
Private Sub CommandButton2_Click()
  For j = 0 To ListBox1.ListCount - 1
    ListBox1.Selected(j) = CommandButton2.Caption = "Alle"
  Next
  CommandButton2.Caption = IIf(CommandButton2.Caption = "Alle", "Keine", "Alle")
End Sub

Code:
Private Sub CommandButton1_Click()
  If ComboBox1.ListIndex > -1 Then
    mkdir ComboBox1
    For j = 0 To ListBox1.ListCount - 1
      If ListBox1.Selected(j) Then MkDir ComboBox1 & "\" & Listbox1.List(j)
    Next
  End If
 
  Unload Me
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
(19.05.2025, 12:29)wirtzwiwi schrieb: Danke geht leider nicht
Was geht nicht?
Mein Vorschlag? Edgars Vorschlag?

Es liegt mE an den Verzeichnis-Variablen und deren Inhalt. Anscheinend gibt es diese von Dir durch die Variablen aufgebauten Verzeichnisse nicht. Den genauen Aufbau Deiner Verzeichnisstruktur kennst nur Du, dementsprechend ist es schwer hier zu helfen!
Gruß
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste