Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Makro in Abh. von Zellinhalt ausführen | Herbers Excel-Forum


Betrifft: Makro in Abh. von Zellinhalt ausführen von: Dietmar aus Aachen
Geschrieben am: 09.01.2010 00:27:59

Guten Abend in die Runde,

um Platz zu sparen möche ich in mein Programm keine Schaltflächten, sondern ein Listenfeld einbinden, dessen Zellverknüpfung beispielsweise auf A1 referenziert.
Abhängig vom Zellinhalt in A1 soll dann z.B. für die "1" das Makro 1 für die "2" das Makto 2, für die "3" das Makro 3 ausgeführt werden. Die Makros sollen zu definiierende Spalten ausblenden.

Hat jemand eine Idee?

Vielen Dank vorab!

Dietmar aus Aachen

  

Betrifft: AW: Makro in Abh. von Zellinhalt ausführen von: fcs
Geschrieben am: 09.01.2010 01:55:36

Hallo Dietmar,

das schaut makromäßig dann etwa wie folgt aus.

Gruß
Franz

'unter dem Tabellenblattmodul bei Listbox aus Steuerelemente(ActiveX)-Toolbox
'mit im allgemeinen Modul bei Formularsteuerelement
Private Sub ListBox1_Click()
  Call Auswerten
End Sub


'In einem allgemeinen modul
Public Sub Auswerten()
    Select Case ActiveSheet.Range("A1").Value
      Case 1: Call Makro1
      Case 2: Call Makro2
      Case 3: Call Makro3
      Case Else
      
      MsgBox "Für Eintrag """ & ActiveSheet.Range("A1").Value _
            & """ in Zelle A1 wurde noch kein Makro zugeordnet!"
    End Select
End Sub

Sub Makro1()
  MsgBox "Makro1"
End Sub

Sub Makro2()
  MsgBox "Makro2"
End Sub
Sub Makro3()
  MsgBox "Makro3"
End Sub



  

Betrifft: JA! von: Dietmar aus Aachen
Geschrieben am: 09.01.2010 02:29:03

Danke Franz!
Genau das habe ich gebraucht !

Viele Grüße
Dietmar aus Aachen


  

Betrifft: Mehrere Listenfelder pro Sheet von: Dietmar aus Aachen
Geschrieben am: 10.01.2010 23:16:43

Hallo nochmals,

das hat schon super geklappt.
Wie sieht der Code aus, wenn ich auf einem Excelsheet mehr als ein Listenfelder einbinden möchte? (sagen wir mal drei).
Jedes Listenfeld soll dabei in der Steuerung einen eigenständigen Eingabebereich und eine eigene Zellverknüpfung haben.

Geht das?

Herzlichen Dank vorab!

Dietmar aus Aachen


  

Betrifft: AW: Mehrere Listenfelder pro Sheet von: fcs
Geschrieben am: 11.01.2010 06:01:06

Hallo Dietmar,

wenn die anderen Listboxen-Auswahlnummern die gleichen Aktionen auslösen sollen, wie Listbox1 dann etwa so:

 Private Sub ListBox1_Click()
   Call Auswerten(Range("A1").Value)
 End Sub
 Private Sub ListBox2_Click()
   Call Auswerten(Range("C1").Value)
 End Sub
 Private Sub ListBox3_Click()
   Call Auswerten(Range("D1").Value)
 End Sub
 
 
 'In einem allgemeinen modul
 Public Sub Auswerten(varWert)
     Select Case varWert
       Case 1: Call Makro1
       Case 2: Call Makro2
       Case 3: Call Makro3
       Case Else
       
       MsgBox "Für Eintrag """ & varWert _
             & """ wurde noch kein Makro zugeordnet!"
     End Select
 End Sub

Wenn die anderen Listboxen andere Aktionen starten sollen, dann etwa so:
 Private Sub ListBox1_Click()
   Call Auswerten("Listbox1", Range("A1").Value)
 End Sub
 Private Sub ListBox2_Click()
   Call Auswerten("Listbox2", Range("C1").Value)
 End Sub
 Private Sub ListBox3_Click()
   Call Auswerten("Listbox3", Range("D1").Value)
 End Sub
 
 
'In einem allgemeinen modul
Public Sub Auswerten(sBox, varWert)
  Select Case sBox
    Case "Listbox1"
      Select Case varWert
         Case 1: Call Makro1
         Case 2: Call Makro2
         Case 3: Call Makro3
         Case Else
         MsgBox "Für Listbox1 - Eintrag """ & varWert _
               & """ wurde noch kein Makro zugeordnet!"
      End Select
    Case "Listbox2"
      Select Case varWert
         Case 1: Call Makro5
         Case 2: Call Makro6
         Case 3: Call Makro7
         Case Else
         MsgBox "Für Listbox2 - Eintrag """ & varWert _
               & """ wurde noch kein Makro zugeordnet!"
      End Select
    Case "Listbox3"
      Select Case varWert
         Case 1: Call Makro8
         Case 2: Call Makro9
         Case 3: Call Makro10
         Case Else
         MsgBox "Für Listbox3 - Eintrag """ & varWert _
               & """ wurde noch kein Makro zugeordnet!"
      End Select
  End Select
End Sub


Gruß
Franz


  

Betrifft: JA!!! AW: Mehrere Listenfelder pro Sheet von: Dietmar aus Aachen
Geschrieben am: 11.01.2010 23:32:11

Hallo Franz

ganz herzlichen Dank!

Es sieht so logisch aus ... nur mussman halt drauf kommen.

Viele Grüße
Dietmar aus Aachen


Beiträge aus den Excel-Beispielen zum Thema "Makro in Abh. von Zellinhalt ausführen"