Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet_SelectionChange: verschiedene Makros in

Worksheet_SelectionChange: verschiedene Makros in
16.07.2018 15:35:32
Sascha
Hallo geehrte VBA-Gemeinde,
ich würde gerne in einem Dokument in mehreren definierten Zellen zwei unterschiedliche Makros aufrufen.
Bei Klick auf B13 soll das Makro add_line aufgerufen werden,
bei Klick auf die Zellen H17 bis H23 das Makro del_line.
Ich habe schon verschiedene Lösungsansätze getestet, aber nichts davin will funktionieren. Wie in etwa dieser hier:
  • 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ber As Range
    Dim ber2 As Range
    Dim ber3 As Range
    Dim ber4 As Range
    Dim ber5 As Range
    Dim ber6 As Range
    Dim ber7 As Range
    Dim ber8 As Range
    Set ber = Range("B13")
    Set ber2 = Range("H17")
    Set ber3 = Range("H18")
    Set ber4 = Range("H19")
    Set ber5 = Range("H20")
    Set ber6 = Range("H21")
    Set ber7 = Range("H22")
    Set ber8 = Range("H23")
    If Target.Address = ber.Address Then add_line
    If Target.Address = ber2.Address Then del_line
    If Target.Address = ber3.Address Then del_line
    If Target.Address = ber4.Address Then del_line
    If Target.Address = ber5.Address Then del_line
    If Target.Address = ber6.Address Then del_line
    If Target.Address = ber7.Address Then del_line
    If Target.Address = ber8.Address Then del_line
    End Sub
    

  • Das kann man doch bestimmt eleganter lösen - ich hab nur keinen blassen Schimmer, wie...
    Kann mir von Euch jemand helfen bitte?
    Danke im Voraus :)

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Worksheet_SelectionChange: verschiedene Makros in
    16.07.2018 15:42:39
    UweD
    Hallo
    so?
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
        Dim ber As Range
        Dim ber2 As Range
        Dim ber3 As Range
        Dim ber4 As Range
        Dim ber5 As Range
        Dim ber6 As Range
        Dim ber7 As Range
        Dim ber8 As Range
        Set ber = Range("B13")
        Set ber2 = Range("H17")
        Set ber3 = Range("H18")
        Set ber4 = Range("H19")
        Set ber5 = Range("H20")
        Set ber6 = Range("H21")
        Set ber7 = Range("H22")
        Set ber8 = Range("H23")
         Select Case Target.Address
            Case ber.Address
                add_line
            Case ber2.Address, ber3.Address, ber4.Address, ber5.Address, ber6.Address, ber7.Address, ber8.Address
                del_line
            Case Else
        End Select
    End Sub
    
    
    Sub add_line()
        MsgBox "ADD"
    End Sub
    Sub del_line()
        MsgBox "DEL"
    End Sub
    
    

    LG UweD
    Anzeige
    AW: Worksheet_SelectionChange: verschiedene Makros in
    16.07.2018 16:32:31
    UweD
    Hallo nochmal
    Wenn es ernst gemeinte Bereiche sind (die zusammenhängen) dann reicht das hier.
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
        Dim ber As Range
        Dim berRest As Range
        Set ber = Range("B13")
        Set berRest = Range("H17:H23")
        
        If Not Intersect(ber, Target) Is Nothing Then add_line
        If Not Intersect(berRest, Target) Is Nothing Then del_line
    
    End Sub
    

    LG UweD
    Anzeige
    AW: Worksheet_SelectionChange: verschiedene Makros in
    17.07.2018 07:05:53
    Bernd
    Servus,
    ich würde jedoch nicht dazu raten, das auf das SelectionChange-Ereignis zu legen.
    Vielleicht wäre BeforeDoubleClick oder BeforeRightClick besser?!
    Grüße, Bernd
    AW: Worksheet_SelectionChange: verschiedene Makros in
    17.07.2018 08:10:06
    Sascha
    Hallo UweD, lieben Dank für Deine Lösungsansätze.
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ber As Range
    Dim berRest As Range
    Set ber = Range("B13")
    Set berRest = Range("H17:H23")
    If Not Intersect(ber, Target) Is Nothing Then add_line
    If Not Intersect(berRest, Target) Is Nothing Then del_line
    End Sub
    
    Den Ansatz hatte ich ähnlich, aber wenn ich B13 anklicke, wird dann zu meiner Verwirrung erst "del_line" aufgerufen und danach direkt "add_line". Wenn ich aber ein Feld im Bereich H17 bis H23 anklicke, wird nur "del_line" aufgerufen....
    Anzeige
    AW: Worksheet_SelectionChange: verschiedene Makros in
    17.07.2018 08:20:59
    Sascha
    Hallo UweD,
    das funktioniert! Hab herzlichen Dank für Deine Mühe :)
    VG Sascha
    AW: Worksheet_SelectionChange: verschiedene Makros in
    18.07.2018 15:25:04
    ViZwi
    Hallo Liebe Excel Freunde,
    ich habe in Problem was meine Makros angeht (bzw. nur eines).
    Ich habe eine Arbeitsmappe in welcher ich viele Daten in verschiedenen Arbeitsblättern habe. Ich möchte nun ein Makro einrichten, welches es mir ermöglicht alle Arbeitsblätter auf Knopfdruck auszuwerten und bestimmte Daten aus diesen Arbeitsblättern in ein "Sammelarbeitsblatt" zu speichern.
    Die Arbeitsblätter sind alle gleich aufgebaut. Allerdings wächst meine Datenbank stetig und so würde ich gerne einen Button einrichten, welcher direkt gewünschte Daten in das Sammelblatt kopiert.
    Ich bin bisher so weit gekommen:
    Sub Auswertung()
    ' Auswertung Makro
    Sheets("Auswertung Wohnen").Select
    Columns("D:E").Select
    Range("D3").Activate
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("F:G").Select
    Range("F3").Activate
    Selection.Copy Destination:=Columns("D:E")
    Range("D1:E1").Select
    ActiveCell.FormulaR1C1 = "=W_2!RC[-2]"
    Range("D3").Select
    ActiveCell.FormulaR1C1 = "=W_2!R[8]C"
    Range("D3").Select
    Selection.AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
    Range("D3:D43").Select
    Range("B3").Select
    ActiveCell.FormulaR1C1 = _
    "=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
    Range("B3").Select
    Selection.AutoFill Destination:=Range("B3:B43"), Type:=xlFillValues
    Range("B3:B43").Select
    End Sub
    
    Mein Problem ist jetzt nur, dass wenn ich dieses Makro auf ein weiteres Arbeitsblatt anwende nur die werte aus der Liste W_2 bekomme und nicht aus dem neuen.
    Es wäre mir eine Riesen Hilfe wenn jemand wüsste wie ich das Problem lösen könnte.
    Vielen Dank
    Vinc
    Anzeige
    AW: Worksheet_SelectionChange: verschiedene Makros in
    18.07.2018 15:25:06
    ViZwi
    Hallo Liebe Excel Freunde,
    ich habe in Problem was meine Makros angeht (bzw. nur eines).
    Ich habe eine Arbeitsmappe in welcher ich viele Daten in verschiedenen Arbeitsblättern habe. Ich möchte nun ein Makro einrichten, welches es mir ermöglicht alle Arbeitsblätter auf Knopfdruck auszuwerten und bestimmte Daten aus diesen Arbeitsblättern in ein "Sammelarbeitsblatt" zu speichern.
    Die Arbeitsblätter sind alle gleich aufgebaut. Allerdings wächst meine Datenbank stetig und so würde ich gerne einen Button einrichten, welcher direkt gewünschte Daten in das Sammelblatt kopiert.
    Ich bin bisher so weit gekommen:
    Sub Auswertung()
    ' Auswertung Makro
    Sheets("Auswertung Wohnen").Select
    Columns("D:E").Select
    Range("D3").Activate
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("F:G").Select
    Range("F3").Activate
    Selection.Copy Destination:=Columns("D:E")
    Range("D1:E1").Select
    ActiveCell.FormulaR1C1 = "=W_2!RC[-2]"
    Range("D3").Select
    ActiveCell.FormulaR1C1 = "=W_2!R[8]C"
    Range("D3").Select
    Selection.AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
    Range("D3:D43").Select
    Range("B3").Select
    ActiveCell.FormulaR1C1 = _
    "=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
    Range("B3").Select
    Selection.AutoFill Destination:=Range("B3:B43"), Type:=xlFillValues
    Range("B3:B43").Select
    End Sub
    
    Mein Problem ist jetzt nur, dass wenn ich dieses Makro auf ein weiteres Arbeitsblatt anwende nur die werte aus der Liste W_2 bekomme und nicht aus dem neuen.
    Es wäre mir eine Riesen Hilfe wenn jemand wüsste wie ich das Problem lösen könnte.
    Vielen Dank
    Vinc
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige