|   |   | 
  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
  | 
| 
Autor
 | 
Thema:  Ein Makro soll andere starten (1351 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: 400 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: 400 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:           
                         |