Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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_Change(ByVal target As Range)

Worksheet_Change(ByVal target As Range)
19.08.2016 17:44:27
Fabian
Hallo Zusammen,
kurz vorm Wochenende werde ich hier wahnsinnig!
Ich bin kein VBA-Profi /ehr Rookie - ABER ich geb mir mühe :D
ALso mein Problem:
Ich möchte Code ausführen wenn sich der Zelleninhalt einer Zelle ändert. Ich weiß dazu gibt es eine Menge Lösungsansätze.
ABER leider wird das Makro nur ausgeführt wenn ich in die Zelle klicke und mit der Entertaste bestätige.
Das Makro wird nicht ausgeführt wenn sich die Zelle ausschließlich durch die Formel ändert.
Ich weiss es gibt eine möglichkeit mit einer If Abfrage, also
If Range (XY) = "BLA" then ..... aber das ist aufgrund der Problemstellung nicht möglich.
Hier mal der Code (denke aber das wird nciht wirklcih weiter helfen):
Private Sub Worksheet_Change(ByVal target As Range)
Set target = Application.Intersect(target, Sheets("START").Range("G9").Value)
Sheets("Kalender").Select
Range("L2").Select
Selection.Copy
ActiveSheet.Range("$A$2:$G$263").AutoFilter Field:=3, Criteria1:=Range("L2").Value
End Sub

Ich danke euch für tipps, anregungen und verabschiede mich ins Wochenende.
Bis dahin
Beste Grüße

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change(ByVal target As Range)
19.08.2016 17:47:57
Hajo_Zi
bei Formel muss man das Ereignis
Private Sub Worksheet_Calculate()
benutzen was aufwendig ist.
Auf meiner Seite Bilder gibt es Beispiele dazu.

AW: Worksheet_Change(ByVal target As Range)
19.08.2016 19:39:14
fcs
Hallo Fabian,
mit dem Calculate-Ereignis könnte man es auf folgende Weise lösen. Dabei wird der Autofilter über Werte in berechneten Formeln gesetzt. In meinem Beispiel kann für 2 Spalten der Filter gesetzt werden.
'Code / Makro unter dem Tabellenblatt mit den Zellen in dennen die Filter-Werte berechnet  _
werden.
Option Explicit
Private varWert(1 To 2)
Private Sub Worksheet_Calculate()
Dim ZelleFormel(1 To 2) As Range
Dim intI As Integer
Dim wksFilter As Worksheet
Set ZelleFormel(1) = Me.Range("L2")
Set ZelleFormel(2) = Me.Range("L4")
Application.EnableEvents = False
Set wksFilter = Sheets("Kalender")
For intI = LBound(varWert) To UBound(varWert)
If ZelleFormel(intI).Value  varWert(intI) Then
varWert(intI) = ZelleFormel(intI).Value
Select Case intI
Case 1 'Zelle L2
With wksFilter
.Select
'                    .ShowAllData
If varWert(intI) = "(alle)" Then
.Range("$A$2:$G$263").AutoFilter Field:=3
Else
.Range("$A$2:$G$263").AutoFilter Field:=3, Criteria1:=varWert(intI)
End If
End With
Case 2 'Zelle L4
With wksFilter
.Select
If varWert(intI) = "(alle)" Then
.Range("$A$2:$G$263").AutoFilter Field:=2
Else
.Range("$A$2:$G$263").AutoFilter Field:=2, Criteria1:=varWert(intI)
End If
End With
End Select
End If
Next
Application.EnableEvents = True
End Sub

Anzeige
AW: Worksheet_Change(ByVal target As Range)
22.08.2016 10:04:39
Fabian
Guten Morgen,
vielen dank für die schnellen und hilfreichen Antworten.
Der von fcs erstellte Code funktioniert super.
Ich wünsche eine schöne Woche!

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige