Excel, Dateien anhand Nummern oder Namen suchen

  • Excel

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von Mr Unklar.

    Super, funktioniert soweit. Jetzt habe ich gerade gesehen, das wenn er die Datei öffnet dort aber nicht das Makro ausführt. Ich vermute das es daran liegt, weil meine Suchmaske im Hintergrund noch offen ist.

    Wie kann ich es so lösen, das er die Datei öffnet und meine Suchmaske dabei schließt.

    Habe hier auf jedenfall mal noch ThisWorkbook.Close ergänzt dann schließt er schonmal die Suchmaske.

    Visual Basic-Quellcode

    1. Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    2. Workbooks.Open Pfad & Me.ListBox1.List(Me.ListBox1.ListIndex)
    3. ThisWorkbook.Close
    4. End Sub
    Wenn ich das mit Unload Me mache, ist die Excel-Datei im Hintergrund noch geöffnet. Mit ThisWorkbook.Close schließt es das zumindest was ich eigentlich auch möchte. Aber durch das anklicken über die ListBox startet er nicht die UserForm von der neuen Datei. Er öffnet mir zwar die Excel-Datei, aber er startet nicht das Makro was sich darin befindet.
    Dann packe den Aufruf deines Makros in das Workbook-Open Event.

    Ich halte diese Vorgehen aber für nicht sehr sinnvoll. Ich weiß zwar nicht was du vorhast. Aber für mich sieht es so aus, dass Du in jeder Datei, die Du öffnen willst, das Makro pflegen musst, wenn eine Änderung ansteht. Es ist besser die Logik von den Daten zu trennen. Du packst die Logik in eine eigenen Datei, am besten in ein Excel-Addin, und lässt die Datendateien befreit von Makros.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Ich gebe in die Suchmaske die Nummer oder den Namen von einer Baugruppe an. Dann soll er mir die gefunden Treffer dazu anzeigen was Prüfprotokolle sind und diese dann nach Auswahl öffnen. Und die Protokolle haben jeweils eigene UserFormen da das automatisierte Protokolle sind. Deswegen wäre es gut wenn er die Datei dann normal öffnet. Es wäre auch okay wenn man beim öffnen oben das Makro oder wie man es nennt, bestätigen muss und dann die UserForm öffnet.
    Ich splitte mal meine Antwort:
    1. Um das Makro beim Öffnen einer Prüfprotokoll-Datei auszuführen, musst Du es im Workbook-Open Event der Protokoll-Datei starten.

    2. Sowie es für mich ausschaut, hast Du viele Prüfprotokolldateien, die jede für sich das gleiche Userform und Makro haben. Wie stellst Du Dir denn die Pflege dieser Dateien vor. Bei einer Code-Änderung musst Du dann alle Dateien anfassen. Daher mein Tipp alles in eine eigene Logik-Datei auslagern, da diese dann einfacher gepflegt werden kann.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    1. Das heißt in jeder Prüfprotokoll-Datei muss dieses Workbook-Open Event stehen, verstehe ich das richtig?

    2. Richtig, es gibt mehrer Prüfprotokolle die ihre eigene UserForm haben. An sich werden die Protokolle von der QM Abteilung gepflegt. Ich habe jetzt nur Teilprojekte erstellt, diese dann entweder in die vorhandenen Protokollen integriert werden oder eben wie die Suchmaske zur einfachen Suche der richtigen Protokolle im Netzwerk dienen. Die QM Abteilung wird beides pflegen und weiterentwickeln da doch immer mehr Ideen einfließen.