| |
| Xometry verstärkt sein Angebot für die Blechbearbeitung: Mehr Fertigungsoptionen und bessere Sofort-Angebote, eine Pressemitteilung
|
Autor
|
Thema: Dialogfenster (1681 / mal gelesen)
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 12. Mai. 2016 12:25 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habe ein einfaches Dialogfenster gemacht mit 9 commandButtons. Diese starten Makro`s zur Stücklisten-Erstellung. Leider funktionieren nicht alle (z.B. Heller oder BMW_stl_Verschleissteile). Fehlermeldung siehe jpg_1. Mein Code sieht so aus: Private Sub CommandButton1_Click() Application.Run "GM_Stueckliste" End Sub _________________________________________
Private Sub CommandButton2_Click() Application.Run "HELLER_stl" End Sub _________________________________________ Private Sub CommandButton3_Click() Application.Run "BMWstl_Standard" End Sub _________________________________________ Private Sub CommandButton4_Click() Application.Run "BMW_stl_Verschleissteile" End Sub _________________________________________ Private Sub CommandButton5_Click() Application.Run "BMW_1" End Sub _________________________________________ Private Sub CommandButton6_Click() Application.Run "FORD_1" End Sub _________________________________________ Private Sub CommandButton7_Click() Application.Run "FORD_2" End Sub _________________________________________ Private Sub CommandButton8_Click() Application.Run "Stueli_Standard" End Sub _________________________________________ Private Sub CommandButton9_Click() End End Sub Hat jemand ne Ahnung was ich da falsch mache? Danke mal [Diese Nachricht wurde von röhmler am 12. Mai. 2016 editiert.] [Diese Nachricht wurde von röhmler am 12. Mai. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007
|
erstellt am: 12. Mai. 2016 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 12. Mai. 2016 15:29 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 12. Mai. 2016 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Das neu-1.jpg hast Du aber erst jetzt nacheditiert, ich hab Deine Anfrage daher auch vorerst ignoriert. Und den INHALT der Meldung kannst Du ausschließen: Das makro IST in dieser Arbeitsmappe verfügbar? Gib ihm evtl. den Dateinamen mit >> klick << und sorge dafür, dass es public ist.
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 12. Mai. 2016 15:47 <-- editieren / zitieren --> Unities abgeben:
Es sind alle Makro`s und das Formular in meiner persönlichen Makroarbeitsmappe. Was meinst Du mit: "Und den INHALT der Meldung kannst Du ausschließen" ??? und was mit public? Hab ein jpg gemacht von meinem Projekt-Explorer, damit man sieht das alles verfügbar ist Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 12. Mai. 2016 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Wie das MODUL heißt, ist egal, entscheidend ist, wie die SUB heißt, die Du aufrufen möchtest und das zeigt Dein screenshot ja nicht. [rredit] Aber es würde eh eine andere Fehlermeldung kommen.Ich kann Deinen Fehler nachstellen, wenn die Sub TEST als Private deklariert ist. Testfehler meinerseits Es bleibt stehen: 'entscheidend ist der Name der Sub, nicht des Moduls.[/rredit] Vielleicht wird es durch den screenshot klarer ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 12. Mai. 2016 21:35 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 13. Mai. 2016 06:52 <-- editieren / zitieren --> Unities abgeben:
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 13. Mai. 2016 07:02 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Nochmal ;-) ich habe jetzt den Sub Namen "HELLER_stl" ind "HELLER" geändert - jetzt geht`s. Dachte es läge am _ aber "GM_Stueckliste" oder "Stueli_Standard" funktionieren auch. BMW_1 funktionierte, habs in BMW1 abgeändert - geht nicht mehr. ich komm nicht dahinter an was es liegt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 13. Mai. 2016 07:15 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Zitat: Original erstellt von röhmler: war mir nicht bewußt dass Modul-Name und Sub-Name gleich sein müssen
Müssen sie ja auch nicht! Aber auf Rumstochern im Nebel hab ich zusätzlich keine Lust. Viel Erfolg beim weiteren Copy&Pasten ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 13. Mai. 2016 07:17 <-- editieren / zitieren --> Unities abgeben:
Rumstochern???? Was ist denn unklar? Jedenfalls geht`s jetzt - hab halt aus "BMW_3" "BmwDrei" gemacht. Mal funktioniert es wenn im Sub Namen ein _ enthalten ist und mal halt nicht! Danke und schöne Pfingsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001
|
erstellt am: 13. Mai. 2016 07:27 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
naja rumstochern ohne Datei kann man nur Vermutungen anstellen... btw. "Fehlermeldung siehe jpg_1." imho ist da keine fehlermeldung.... ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Wünsche: Tabllen (XLS,ODS) FDO nativ einbinden, FDO-WMTS, richtige Ebenen für Layer, Erweiterter Attribut-Editor "auffrischen", dyn. Xrefs, mehrere modell Bereiche, Halo4Texte, verschränkte Attribute, Linientypen überarbeiten (doppellinien) , XREF>VISRETAIN pro XREF Fehler: FDORasterdaten im Layout Richtigen Maßstab verwenden, funktionierende updates u. erweiterungen inkl. installationsroutinen, Fehler zwischen Normal MAP Civil beheben Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 13. Mai. 2016 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Mal eine generelle Frage: Zitat: Original erstellt von röhmler: Hi,ich habe ein einfaches Dialogfenster gemacht mit 9 commandButtons. Diese starten Makro`s zur Stücklisten-Erstellung. Leider funktionieren nicht alle (z.B. Heller oder BMW_stl_Verschleissteile). Fehlermeldung siehe jpg_1. Mein Code sieht so aus: Code:
Private Sub CommandButton1_Click() Application.Run "GM_Stueckliste" End SubPrivate Sub CommandButton2_Click() Application.Run "HELLER_stl" End Sub ...
Hat jemand ne Ahnung was ich da falsch mache?Danke mal
Hast Du das mal einem einfachen
Code:
Private Sub CommandButton2_Click() Call HELLER_stl End Sub
getestet? Habe hier gerade nur Excel2000, dort sagt die Hilfe: Zitat:
Run-Methode
Syntax 1: Führt ein Makro aus oder ruft eine Funktion auf. Diese Syntax eignet sich zur Ausführung eines Makros, das in Visual Basic oder der Microsoft Excel 4.0-Makrosprache geschrieben wurde, oder zur Ausführung einer Funktion in einer DLL oder XLL.Syntax 2: Führt das Microsoft Excel 4.0-Makro an der aktuellen Position aus. Der Bereich muss sich in einer Makrovorlage befinden.
Und wieder mal : Die Hilfe und Beschäftigung mit VBA ist nicht nur etwas für Profis ...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 13. Mai. 2016 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Was mir zur Syntax noch einfällt: Bei Verwendung von Application.Run ist es sinnvoll Modul und Procedure/Funktion anzugeben Also: Code:
Private Sub CommandButton2_Click() ' falsch: Application.Run "HELLER_stl" ' besser: Application.Run "HELLER_stl.HELLER_stl"End Sub
Weiterer Fehler könnte auch mit dem Application-Object zusammenhängen Auf was bezieht es sich? Workbook? Worksheet? Userform? Standardmäßig wird zwar das aktive Excel - Arbeitsmappenobjekt verwendet, aber nachdem es nicht explizit definiert wurde könnte es zufällig auch etwas anderes sein. Generell ist es sinnvoll die Module mit Mod_xyz zu bezeichnen, dann findet Excel die anders benannten Proceduren auch. [Diese Nachricht wurde von KlaK am 13. Mai. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 13. Mai. 2016 13:05 <-- editieren / zitieren --> Unities abgeben:
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 13. Mai. 2016 17:19 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
Zitat: Original erstellt von runkelruebe: Wie das MODUL heißt, ist egal, entscheidend ist, wie die SUB heißt, die Du aufrufen möchtest und das zeigt Dein screenshot ja nicht. [rredit] Aber es würde eh eine andere Fehlermeldung kommen.Ich kann Deinen Fehler nachstellen, wenn die Sub TEST als Private deklariert ist. Testfehler meinerseits Es bleibt stehen: 'entscheidend ist der Name der Sub, nicht des Moduls.[/rredit] Vielleicht wird es durch den screenshot klarer
Vielleicht hierzu noch eine Anmerkung, da es nicht ganz egal ist wie das Modul / die Programmroutine benannt wird: Man kann gleichnamige Module und Proceduren verwenden, es können sogar gleichnamige Proceduren und Public Variablennamen in unterschiedlichen Modulen verwendet werden. Allerdings muß dann IMMER angegeben werden welche man verwenden möchte. Zum Beispiel ist folgendes möglich: Code: Sub Main() [Projekt1.vbp].[Modul1].Main End Sub
Hier wird aus der Main-funktion eine Main aus einem anderem Programm aufgerufen Oder man ruft aus Modul_1 die öffentliche Variable Var1 aus Modul_2 die auch in Modul_1 existiert: Modul_2.Var1 Zu beachten ist nur dass VBA immer nach der Hierarchie geht, zuerst wird in der Funktion gesucht, dann im Modul, zum Schluß im Projekt bzw. in den anderen Modulen. Je mehr gleichnamige Elemente es gibt, umso ausführlicher muß der Syntax geschrieben werden. Weshalb man bei vernünftiger Programmierung am besten sich vorher Gedanken macht, sich ein gewisses Schema zulegt und nach Möglichkeit gleiche Namen vermeidet. Ein schönes verlängertes Wochenende Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 17. Mai. 2016 14:32 <-- editieren / zitieren --> Unities abgeben:
Servus Klaus, danke für die Unterstützung. Das mit dem Dialogfenster funktioniert soweit ganz gut (per Button"KLICK" Stücklisten-Module starten). Was mir nicht gefällt - ich kann im Excel -sprich auf meinem Arbeitsblatt nichts machen, solange das Dialogfenster geöffnet ist. Gibt es da noch eine andere Lösung wie jedesmal das Dialogfenster zu schließen, wenn ich auf dem Arbeitsblatt noch was machen möchte? Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 17. Mai. 2016 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für röhmler
|
röhmler Mitglied Sachbearbeiter techn. Dokumentation
Beiträge: 421 Registriert: 17.02.2004 AutoCAD Mechanical 2014
|
erstellt am: 17. Mai. 2016 14:52 <-- editieren / zitieren --> Unities abgeben:
|