Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Ein Makro soll andere starten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Ein Makro soll andere starten (891 mal gelesen)
Heino Casper
Mitglied
CAD/PLM Administrator


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 480
Registriert: 26.02.2001

erstellt am: 05. Feb. 2015 15:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von GüSo an!   Senden Sie eine Private Message an GüSo  Schreiben Sie einen Gästebucheintrag für GüSo

Beiträge: 116
Registriert: 22.01.2009

Windows 7 Professional SP1, AutoCAD 2011

erstellt am: 05. Feb. 2015 17:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heino Casper 10 Unities + Antwort hilfreich

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)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 384
Registriert: 11.08.2007

erstellt am: 05. Feb. 2015 19:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heino Casper 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 480
Registriert: 26.02.2001

Contact WSM 3.10
Creo 2.0
Catia V5
Acad 2015
Inventor 2015

erstellt am: 06. Feb. 2015 08:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank, Karin!!! Funktioniert EINWANDFREI ! ! !       

------------------
Gruß, Heino

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Heino Casper
Mitglied
CAD/PLM Administrator


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 480
Registriert: 26.02.2001

erstellt am: 06. Feb. 2015 13:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 384
Registriert: 11.08.2007

erstellt am: 06. Feb. 2015 18:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heino Casper 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 480
Registriert: 26.02.2001

Contact WSM 3.10
Creo 2.0
Catia V5
Acad 2015
Inventor 2015

erstellt am: 09. Feb. 2015 09:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke schön!!!!

------------------
Gruß, Heino

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz