Office: erbitte Kontrolle und Verbesserung meines Bastelcodes

Helfe beim Thema erbitte Kontrolle und Verbesserung meines Bastelcodes in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Servus zusammen, ich habe folgenden Code zusammen gebastelt aus schon vorhandenen Codes und würde nun gerne diesen optimiert haben. Dieser Code ist... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Darthmike, 29. November 2020.

  1. erbitte Kontrolle und Verbesserung meines Bastelcodes


    Servus zusammen,

    ich habe folgenden Code zusammen gebastelt aus schon vorhandenen Codes und würde nun gerne diesen optimiert haben.

    Dieser Code ist funktional, aber ich habe bedenken, das dies so auch richtig ist und dieser Code wesentlich verkürzt werden kann und 3 Punkte würde ich auch gerne optimieren:

    Punkt 1:
    Wird nicht Spalte C markiert vorm ausführen des Makros kommt richtigerweise die MsgBox mit dem Hinweis "Die Auswahl muss über die Spalte C erfolgen".
    Quittiere ich diese mit OK - läuft das Makro aber weiter durch (jedoch nur teilweise). Richtig wäre das der Ablauf komplett gestoppt wird und nichts weiter läuft.
    Was habe ich hier falsch gemacht, und wie könnte es richtig sein.

    Punkt 2:
    Ich kopiere ja aus einer Tabelle Daten in eine andere Tabelle. Hier werden jedoch die Zellen mit der Formatierung rüberkopiert.
    Wie kann ich das ändern, so das er mir die Werte ohne Formatierung kopiert und einfügt.

    Punkt 3:
    Wie kann man den Code optimal verkürzen bzw. was würdet ihr anders machen als erfahrene Nutzer?

    Hier der Code mit dem ich das Makro anstoße (ist ein eigenes Modul):
    Code:
    Hier der 2. Code (ebenfalls ein eigenes Modul):
    Code:
    Hier der 3. Code (kein eigenes Modul sondern im Tbl hinterlegt)
    Code:
    Und hier der 4. Code (wieder in einem eigenen Modul)
    Code:
    Ich hoffe es melden sich viele Erfahrene und wichtig wäre mir auch eine Erklärung, was ich (noch als unwissender) Falsch bzw. anders machen müsste.
    Ich lerne daraus.
    Da ich derzeit Kurzarbeitsbedingt etwas mehr Zeit habe, vertiefe ich mich ein wenig in das Ganze. Naja ich bastel halt rum in der Hoffnung immer mehr zu verstehen;-)

    Vielen herzlichen Dank für Eure Verbesserungsvorschläge und eure Erfahrungen.

    Liebe Grüße
    Miche

    Wer nicht probiert, lernt nix dazu...

    :)
     
    Darthmike, 29. November 2020
    #1
  2. Hallo Miche,

    kleine Anmerkung vorab:
    ich nehme mal an, daß du dir den Code eher zusammengesucht hast, als das du ihn selber erstellt hast, sonst hättest du sicherlich eine einheitlichere und durchgängige Namenskonvention verwendet. Wenn du schon Code kopierst, solltest du zumindest die Quellen angeben, das würde ermöglichen, sich die Anmerkungen im Original anschauen zu können und gebietet die Fairness gegeben über denjenigen, welche den ursprünglich Code erstellt haben. Auch wäre es interessant für andere Mitleser, die eventuell den Code auch übernehmen möchten, ggf. sogar im Original.

    zu 3):
    Was möchtest du daran optimieren? Eine Fehlerbereinigung wäre vielleicht interessanter.
    Code:
    Die Auswertung des Rückgabewertes der beiden Funktionen von CreateDirectory() und MsgBox() ist so nicht richtig, denn sie liefern keinen Boolean-Wert zurück und führen desjalb nicht zum gewünschten Resultat. Hier solltest du dir die möglichen Funktions-Rückgabewerte nochmal ansehen und entsprechend reagieren und wieso soll die Schleife abgebrochen werden, wenn der erste Ordner erstellt worden ist?

    Gruß Ulrich
     
    knobbi38, 1. Dezember 2020
    #2
  3. Hallo und danke das du dich meiner annimmst.

    Deine Annahme ist richtig. Das habe ich auch oben geschrieben. Schon vorhandene Codes von denen ich die Quellen nicht alle weiß und zusammengebastelt und selbst entsprechend abgeändert.
    Werde das für die Zukunft besser machen.
    Und ja es geht mir um Fehlerbehebung, Bzw Verbesserung.
    Im Grunde funktioniert das Makro ja. Die Ordner werden ja erstellt.
    Jedoch würde ich gerne wissen wie das ganze kürzen bzw. besser machen kann.
    Ich versuche immer aus bestehenden Codes etwas neues zu kreieren und hoffe dabei immer mehr zu lernen.

    Zu der Schleife.:
    Ich möchte das Makro nur abbrechen wenn zum starten nicht die Spalte C aktiviert ist.

    Viele Grüße
     
    Darthmike, 1. Dezember 2020
    #3
  4. erbitte Kontrolle und Verbesserung meines Bastelcodes

    Hallo Miche,

    ich meinte eigentlich die Schleife in CreatePaths(). Wie gesagt, da mußt du die Auswertung der Rückgabewerte ändern.

    Was dein Check für die Spalte C betrifft, wird dabei ja nur schnell_ordneranlage_1() abgebrochen und die aufrufende Prozedur macht mit CreatePaths() weiter.

    Schau dir auch nochmal die Ausführungspostion des Checks innerhalb von schnell_ordneranlage_1() an: erst etwas löschen und dann den Check durchführen?

    Insgesamt muß du dir nochmal den Programmablauf zu Gemüte führen und eventuell überarbeiten. Auch die Auswertung von Rückgabewerte von Funktionen, wie z.B. Msgbox, wäre angebracht.

    Gruß Ulrich
     
    knobbi38, 2. Dezember 2020
    #4
  5. Wie wäre dein Lösungsansatz?

    Leider ist mein wissen hierzu sehr begrenzt.
    Ich hab da Stunden schon verbracht um es irgendwie funktional zu bekommen.
    Leider weiß ich es nicht besser...

    Viele Grüße
     
    Darthmike, 2. Dezember 2020
    #5
  6. Hallo Miche,

    ein Forum ist denkbar schlecht dafür geeignet, Grundlagenwissen zu vermitteln. Hier würde ich dann doch auf entsprechende Fachbücher zurückgreifen, zum einen welche, die sich mit der Programmierung als solches befassen, z.B. strukturelle Ablaufpläne usw., und zum anderen welche, die sich dann mit Excel und VBA gezielt auseinandersetzen.

    Als Nachschlagwerk für die einzelnen VBA Anweisungen und Funktionen sowie dem Objektmodell von Excel kann dann die Hilfe oder die Onlinehilfe dienen:
    https://docs.microsoft.com/de-de/off.../api/overview/

    Was den Programmablaufplan betrifft, würde ich als ersten Ansatz den Check für die selektierte Spalte als selbständige Funktion mit einem boolean Rückgabewert herausziehen und die eigentlichen Aktionen in einen IF - Zweig packen: (air code)
    Code:
    Mit If ... Then ... Else ... End If wird der Programmablauf strukturiert und ein Codeblock nur in Abhängigkeit von einer Bedingung ausgeführt. Ich sagte ja schon, daß du die Rückgabewerte auswerten solltest.

    Wenn es dir hilft, kannst du im VBA Code Breakpoints setzten und dann im Einzelschrittmodus deinen Programmablauf mal durchgehen.

    Gruß Ulrich
     
    knobbi38, 2. Dezember 2020
    #6
  7. Ganz vielen Dank für deine Antwort
     
    Darthmike, 15. Dezember 2020
    #7
Thema:

erbitte Kontrolle und Verbesserung meines Bastelcodes

Die Seite wird geladen...
  1. erbitte Kontrolle und Verbesserung meines Bastelcodes - Similar Threads - erbitte Kontrolle Verbesserung

  2. Verückte Kontroll & Optionsfelder

    in Microsoft Access Hilfe
    Verückte Kontroll & Optionsfelder: Hallo zusammen ! Habe bei mir im Formular zahlreiche Kontrollkästchen (4) und Optionsfelder(6) um bestimmte Sachen auszuwählen die an einen Bericht weitergegeben werden. Dieser ganze Aufbau hat...
  3. Erstellen und Verwenden eines Indexes zur Verbesserung der Systemleistung

    in Microsoft Access Tutorials
    Erstellen und Verwenden eines Indexes zur Verbesserung der Systemleistung: Erstellen und Verwenden eines Indexes zur Verbesserung der Systemleistung Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010...
  4. VBA speichern als PDF mit kontrolle der Namensgebung

    in Microsoft Excel Hilfe
    VBA speichern als PDF mit kontrolle der Namensgebung: Hallo Profis, Ich sollte hier den Code erweitern. Dieser Speichert die Aktuelle Rechnung als PDF ab, und wenn die letzte geschriebene Rechnung geändert und erneut gespeichert wird, bekommt...
  5. VBA- Verbesserung bei Dateiwechsel

    in Microsoft Excel Hilfe
    VBA- Verbesserung bei Dateiwechsel: Hallo, ich habe einen VBA Code, in dem ich immer zwischen Zwei Dateien wechseln muss. Meine Frage: Kann ich es umgehen immer "Thisworkbook.activate" bzw das andere Workbook zu aktivieren? In...
  6. Kontrolle, dass ein Wert nicht über/-unterschritten wird

    in Microsoft Excel Hilfe
    Kontrolle, dass ein Wert nicht über/-unterschritten wird: Hallo, kann man bei Excel 2007 auch festlegen, dass ein Wert nicht unter- oder überschritten wird. Zum Beispiel beim Urlaub möchte ich, dass sobald die restlichen Urlaubstage bei 0 sind, keine...
  7. Kontroll Funktion

    in Microsoft Excel Hilfe
    Kontroll Funktion: Hallo Schatzi, da du mir ja beim letzten mal so klasse geholfen hast habe ich gleich mal eine neue Frage:-) Folgendes Problem Ich sende 1 mal in der Woche 5 Exceltabellen durch die...
  8. Kontrolle der Gästebucheinträge

    in Microsoft FrontPage Hilfe
    Kontrolle der Gästebucheinträge: Hallo, wer kann mir bei folgendem Problem helfen: In mein Gästebuch werden ständig obszöne Einträge und auch Links zu dubiosen Seiten eingestellt. Dies möchte ich verhindern, indem die...