| |
| Design Eines Nanosatelliten Für Ein Biologisches Experiment Mit Hilfe Maßgeschneiderter Herstellungsverfahren, ein Anwenderbericht
|
Autor
|
Thema: Ein Makro soll andere starten (1176 mal gelesen)
|
Heino Casper Mitglied CAD/PLM Administrator
Beiträge: 483 Registriert: 26.02.2001
|
erstellt am: 05. Feb. 2015 15:52 <-- editieren / zitieren --> Unities abgeben:
Guten Tag! Ich habe 4 verschiedene Makros geschrieben. Nun möchte ich, ein Makro haben, mit dem ich die anderen starten kann, je nachdem, ob eine bestimmte Bedingung erfüllt wurde. Und zwar soll geprüft werden, ob im aktiven Arbeitsblatt eines von 4 Wörtern vorkommt. Und je nachdem welches der 4 Wörtern es ist, soll das dazugehörige Makro gestartet werden. Beispiel: - das Wort "Schraube" soll das Makro "Schraubenschlüssel" ausführen - das Wort "Niete" soll das Makro "Zange" ausführen - das Wort "Nagel" soll das Makro "Hammer ausführen - das Wort "Holz" soll das Makro "Säge" ausführen
Kann mit da jemand helfen? Mit freundlichem Gruß
Heino ------------------ Gruß, Heino Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 05. Feb. 2015 17:07 <-- editieren / zitieren --> Unities abgeben: Nur für Heino Casper
Hallo, wie wäre es, wenn Du die 4 Makros, von denen ich annehme, daß es sub`s, also Prozeduren, sind in Funktionen überführst und dann von einer "übergeordneten Prozedur, dem Hauptprogramm quasi, aus je nach Bedarf startest? Sub Haupt() ...... .... select case Variable XY case "Schraube" Funktion Schraubenschlüssel case "Niete" Funktion Nietzange end select .... .... End Sub MfG Günter ------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 05. Feb. 2015 19:41 <-- editieren / zitieren --> Unities abgeben: Nur für Heino Casper
Hi Heino, ich würde es z.B. so lösen: Code: Sub Ausfuehren() Dim rngZelle As Range Dim arrDaten() Dim bytZaehler As Byte arrDaten = Array("Schraube", "Niete", "Nagel", "Holz") For bytZaehler = 0 To 3 Set rngZelle = Cells.Find(arrDaten(bytZaehler), lookat:=xlWhole) If Not rngZelle Is Nothing Then Select Case bytZaehler Case 0 Schraubenschlüssel Case 1 Zange Case 2 Hammer Case 3 Säge End Select Exit For End If Next bytZaehler Set rngZelle = Nothing End Sub
------------------ Bis später, Karin [Diese Nachricht wurde von Beverly am 05. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heino Casper Mitglied CAD/PLM Administrator
Beiträge: 483 Registriert: 26.02.2001 Contact WSM 3.12 Creo 4.0 Catia V5 Acad 2015 Inventor 2020
|
erstellt am: 06. Feb. 2015 08:30 <-- editieren / zitieren --> Unities abgeben:
|
Heino Casper Mitglied CAD/PLM Administrator
Beiträge: 483 Registriert: 26.02.2001
|
erstellt am: 06. Feb. 2015 13:47 <-- editieren / zitieren --> Unities abgeben:
Bevor das Makro ausgeführt wird, würde ich gerne noch eine Abfrage starten. Und zwar soll geprüft werden, ob in der Zelle "B10" das Wort "System" steht. - Wenn nicht, soll eine Nachricht auf dem Bildschirm erscheinen. - Wenn das Wort dort steht, dann soll das von Karin geschriebene Makro ausgeführt werden. ------------------ Gruß, Heino Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007 Win 10 Pro, Office 97 bis Office 2016
|
erstellt am: 06. Feb. 2015 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für Heino Casper
Hi Heino, einfach noch eine If-Abfrage davorsetzen Code: Sub Ausfuehren() Dim rngZelle As Range Dim arrDaten() Dim bytZaehler As Byte If Range("B10") = "System" Then arrDaten = Array("Schraube", "Niete", "Nagel", "Holz") For bytZaehler = 0 To 3 Set rngZelle = Cells.Find(arrDaten(bytZaehler), lookat:=xlWhole) If Not rngZelle Is Nothing Then Select Case bytZaehler Case 0 Schraubenschlüssel Case 1 Zange Case 2 Hammer Case 3 Säge End Select Exit For End If Next bytZaehler Set rngZelle = Nothing Else MsgBox "In B10 steht nicht 'System'" End If End Sub
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heino Casper Mitglied CAD/PLM Administrator
Beiträge: 483 Registriert: 26.02.2001
|
erstellt am: 09. Feb. 2015 09:21 <-- editieren / zitieren --> Unities abgeben:
|