Anzeige
Archiv - Navigation
1948to1952
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 bei bestehenden VBA Code mit Abfragen erweitern

Hilfe bei bestehenden VBA Code mit Abfragen erweitern
24.10.2023 15:11:18
Andi
Hallo zusammen,

https://www.herber.de/bbs/user/163690.xlsx

ich erstelle über Excel Maschinendaten für eine CNC.
Klappt soweit auch ganz gut.... allerdings müsste ich den Code jetzt überarbeiten weil ich ein paar zusätzliche Abfragen mit einbauen möchte.

Ablauf:
1. Makro starten
2. Prüfen ob der Ordner leer ist oder nicht leer
2a. Leer - Abfrage ob über alle Positionen (Zeilen) die Dateien erstellt werden ODER nur bestimmte Positionen (Zeilen) (mit einem Merkmal "CNC_CNC_CNC") erzeugt werden
2b. nicht Leer - Abfrage ob überschrieben werden soll
3a. Falls nein --> Exit Sub
3b. Falls ja - Abfrage ob über alle Positionen (Zeilen) die Dateien erstellt werden ODER nur bestimmte Positionen (Zeilen) (mit einem Merkmal "CNC_CNC_CNC") erzeugt werden

Mit Hilfe von chatGPT bekomm ich diesen Code:
Sub CNC_Dateien_Erzeugen()

Dim folderPath As String
folderPath = "Pfad_zum_Ordner" ' Geben Sie den Pfad zu Ihrem Ordner hier ein

If Len(Dir(folderPath, vbDirectory)) = 0 Then
' Ordner ist leer
MsgBox "Der Ordner ist leer."

' Fragen, ob alle Positionen oder nur CNC_CNC_CNC gekennzeichnete Positionen erstellt werden sollen
Dim response As VbMsgBoxResult
response = MsgBox("Sollen alle Positionen erstellt werden?", vbYesNo)

If response = vbYes Then
' Hier Dateien erzeugen für alle Positionen
' Fügen Sie Ihren Code für die Erstellung von Dateien hier ein
Else
' Hier Dateien erzeugen nur für CNC_CNC_CNC gekennzeichnete Positionen
' Fügen Sie Ihren Code hier ein, um nur CNC_CNC_CNC Positionen zu erstellen
End If
Else
' Ordner ist nicht leer
Dim overwriteResponse As VbMsgBoxResult
overwriteResponse = MsgBox("Der Ordner ist nicht leer. Möchten Sie die Dateien überschreiben?", vbYesNo)

If overwriteResponse = vbYes Then
' Hier Code einfügen, um Dateien zu überschreiben

' Fragen, ob alle Positionen oder nur CNC_CNC_CNC gekennzeichnete Positionen erstellt werden sollen
Dim response As VbMsgBoxResult
response = MsgBox("Sollen alle Positionen erstellt werden?", vbYesNo)

If response = vbYes Then
' Hier Dateien erzeugen für alle Positionen
' Fügen Sie Ihren Code für die Erstellung von Dateien hier ein
Else
' Hier Dateien erzeugen nur für CNC_CNC_CNC gekennzeichnete Positionen
' Fügen Sie Ihren Code hier ein, um nur CNC_CNC_CNC Positionen zu erstellen
End If
Else
' Makro beenden
Exit Sub
End If
End If
End Sub


Macht das soweit Sinn? Ich möchte mich jetzt (aus unwissenheit) nicht einfach darauf stürzen und am ende klappt nichts mehr.
Kann man das so umsetzen oder bin ich auf dem falschen weg?

Was mich hierbei stört ist das ich an mehreren stellen den selben code habe, was später wenn ich was ändern/anpassen muss nicht gerade produktiv ist...
Wie kann ich das gleich richtig machen bzw. wie geht man hierbei vor?

Danke und beste Grüße

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei bestehenden VBA Code mit Abfragen erweitern
24.10.2023 20:17:48
Piet
Hallo

ich bin verwundert, im Beispiel ist nur eine leere Tabelle ohne Makros. Ist das richtig???

Ganz allgemein zum Testen neuer Codes, besonders wenn es um laufende Produktion geht!
Bitte NIEMALS neue Codes in einer Originaldatei testen. Wenn der Wurm drin ist kann er wichtige Daten zerstören!!
Bitte am Arbeitsplatz immer eine Kopie Datei zum testen und experimentieren anlegen. Dann kann dir nix passieren.
Erst wenn alles so läuft, wie es geplant und gewünscht ist den neuen Code ins Original übernehmen!
Und zur Vorsicht vom Original bitte eine Sicherheits Kopie mit dem Datum vor der Änderung anlegen!

mfg Piet

PS Ich habe nur Excel 2003 auf meinem Laptop. Kannst du für mich ein Beispiel im alten 2003 Format hochladen. Danke.
Anzeige
AW: Hilfe bei bestehenden VBA Code mit Abfragen erweitern
25.10.2023 07:45:25
MCO
Hallo Andi!

In deinem Diagramm fehlt die Ja/Nein-Abfrage für die obere Verzweigung.
Trotzdem hab ich verstanden was du erreichen möchtest.

Schau mal, ob der Code schon tut, was er soll...
Sub CNC_Dateien_Erzeugen()

Dim folderPath As String
Dim response As VbMsgBoxResult
Dim overwriteResponse As VbMsgBoxResult

folderPath = "Pfad_zum_Ordner" ' Geben Sie den Pfad zu Ihrem Ordner hier ein

If Len(Dir(folderPath, vbDirectory)) > 0 Then
overwriteResponse = MsgBox("Der Ordner ist nicht leer. Möchten Sie die Dateien überschreiben?", vbYesNo)
If overwriteResponse > vbYes Then Exit Sub
End If

response = MsgBox("Sollen alle Positionen erstellt werden?", vbYesNo)

If response = vbYes Then 'Dateien erzeugen/überschreiben
' Hier Dateien erzeugen für alle Positionen
' Fügen Sie Ihren Code für die Erstellung von Dateien hier ein
Else
' Hier Dateien erzeugen nur für CNC_CNC_CNC gekennzeichnete Positionen
' Fügen Sie Ihren Code hier ein, um nur CNC_CNC_CNC Positionen zu erstellen
End If
End Sub

Gruß, MCO
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige