Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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

Makroaufruf durch Änderung einer Zelle

Makroaufruf durch Änderung einer Zelle
15.12.2020 15:51:50
Hans-Peter
Moin zusammen,
Ich habe ein Makro (abgeschrieben :)), welches mir Zufallszahlen erst ändert, wenn ich in ein Feld z.B. "W" (für weiter) eingebe. Da es aber ziemlich viele Eingabemöglichkeiten gibt (ca. 360) und VBA nach so ca. 20 oder 30 Möglichkeiten streikt, hatte ich die Idee, im Tabellenblatt den Verweis durchzuführen z.B. in A1 = Wenn(oder H13="w"; R13="w"; usw);"W";""). Dann reagiert das Makro aber nicht mehr, weil eben wohl der Zellinhalt (W) abgefragt wird und nicht die Formel. Gibt es dafür eine Lösung?
Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$H$13" Or Target.Address = "$R$13" Or Target.Address = "$AB$13" Or Target. _
Address = "$AL$13"
Or Target.Address = "$AV$13" Or Target.Address = "$H$25" Or Target.Address = "$R$25" Or Target. _
Address = "$AB$25" Or Target.Address = "$AL$25" Or Target.Address = "$AV$25" Or Target.Address = "$H$37" Or Target.Address = "$R$37"
Or Target.Address = "$AB$37" Or Target.Address = "$AL$37" Or Target.Address = "$AV$37" Or  _
Target.Address = "$H$49" Or Target.Address = "$R$49" Or Target.Address = "$AB$49" Or Target.Address = "$AL$49" Or Target.Address = "$AV$49" Or Target.Address = "$H$61" Or Target.Address = "$R$61" Or Target.Address = "$AB$61" Or Target.Address = "$AL$61"
Or Target.Address = "$AV$61" Or Target.Address = "$H$73" Or Target.Address = "$R$73" Or Target. _
Address = "$AB$73" Or Target.Address = "$AL$73" Or Target.Address = "$AV$43" Then
Set Bereich = Range("L5:L10")
For Each Zelle In Bereich
Zelle.Value = Int((6 * Rnd) + 1)
Next Zelle
End If
End Sub
... und gleich noch eine Frage hinten dran:
Wenn ich den Namen des Tabellenblattes durch den Bezug auf eine Zelle im Blatt selbst ändern möchte - wie bringe ich die beiden Module zusammen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroaufruf durch Änderung einer Zelle
15.12.2020 16:06:47
Rudi
Hallo,
das Berechnen einer Formel löst Worksheet_Change nicht aus
D ie geänderte Zelle kann man schöner ermitteln:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Row
Case 13, 25, 37, 49, 61, 73
Select Case Target.Column
Case 8, 18, 38, 38, 48
'mach was
End Select
End Select
End Sub

AW: Makroaufruf durch Änderung einer Zelle
15.12.2020 16:11:21
Hans-Peter
Hey, das ging ja blitzartig. Danke erstmal. ABER kann man Case auch für etwa 360 Zellen festlegen?
AW: Makroaufruf durch Änderung einer Zelle
16.12.2020 11:01:06
Rudi
Hallo,
warum nicht?
bei Target.Row weitere Zeilen und/oder bei Target.Column weiter Spalten hinzufügen.
Alternativ
Select Case Target.Address(0,0)
Case "H13","H25","R13", "R25"   'etc
'mach was
End Select

Gruß
Rudi
Anzeige
AW: Makroaufruf durch Änderung einer Zelle
15.12.2020 16:13:31
Nepumuk
Hallo Hans-Peter,
teste mal:
Option Explicit

Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    Dim Zelle As Range
    
    If Not Intersect(Target, Range("13:13,25:25,37:37,49:49,61:61,73:73"), _
        Range("H:H,R:R,AB:AB,AL:AL,AV:AV")) Is Nothing Then
        
        For Each Zelle In Range("L5:L10")
            
            Zelle.Value = Int((6 * Rnd) + 1)
            
        Next Zelle
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Makroaufruf durch Änderung einer Zelle
16.12.2020 10:36:10
Hans-Peter
Hallo Nepomuk, klappt soweit hervorragend, auf die Idee wär bin ich nicht gekommen.
Leider habe ich das Problem, dass ich mindestens 36 Targets habe, das Makro aber nach 34 Stellen aussteigt. Lässt sich das irgendwie ändern bzw. kann ich das Makro einfach wiederholen mit den neuen Zielzellen?
Jedenfalls vielen Dank erstmal!
AW: Makroaufruf durch Änderung einer Zelle
16.12.2020 11:01:51
Nepumuk
Hallo Hans-Peter,
mein Beispiel deckt schon 30 Targets ab. In einem Range ist die Zeichenzahl zwar auf 1024 Zeichen begrenzt, aber das sollte für einige hundert Targets reichen. Poste mal die Spalten und Zeilen die du abdecken willst.
Gruß
Nepumuk
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige