Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellenänderung = Makrostart





Frage

Halli Hallo! Im Fourm habe ich unter [url]https://supportnet.de/threads/1430865[/url] die Möglichkeit gefunden, einen Zellinhalt als Autofilterkriterium zu verwenden. Nun möchte ich erreichen, dass bei einer Zellveränderung (A1) automatisch das Makro gestartet wird. Im betreffenden Arbeitsblatt habe ich bereits den Code Private Sub Worksheet_Change für eine andere Aufgabe "reserviert". Kann man zwei "Überwachungs-Makros" gleichzeitig im Blatt haben? Weiters möchte ich noch erreichen, dass der Cursor nach dem Filtern automatisch in der betreffenden Zeile in die Spalte Q springt. Dazu habe ich Musterdatei unter [url]http://www.netupload.de/detail.php?img=c37e7e427aa1e04be645e8e0c5185718.xls [/url] hochgeladen. Ciao Tom

Antwort 1 von DukeNT

Hi Tom,
du kannst ja auch auf Änderung einzelner Zellen die Abfrage machen.
Mit Target.Address bekommst du die geänderte Zelle als $A$1 ausgegeben.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Autofilter_ein : End
If Intersect(Target, Range("q:q")) Is Nothing Then
Else
If Target.Value <> "" Then
Cells(Target.Row, 18) = Now
Else
Cells(Target.Row, 18).Clear
End If
End If
End Sub

Gruß Niels

Antwort 2 von Tomschi

Hi Niels!

Probier ich zu Hause gleich aus und melde mich dann morgen nochmals bei Dir.

Thanx!

Tom

Antwort 3 von Tomschi

Guten Morgen!

Danke, funktioniert!
Wieder was dazugelernt.

Kann man meine zweite Vorgabe
Weiters möchte ich noch erreichen, dass der Cursor nach dem Filtern automatisch in der betreffenden Zeile in die Spalte Q springt.

auch noch umsetzen?

Bye

Tom

Antwort 4 von Tomschi

Hi!

Nachfrage:
Kann man auch mehrere : End einbauen?

Wie mus die Syntax für z. B.
If Target.Address = "$A$1" Makro1 + Marko2 : End aussehen?

Ciao

Tom

Antwort 5 von DukeNT

Hi Tom,
zu Frage 4:
Rufe doch einfach am Ende von Makro1 Makro2 auf.
z.B.
Sub Makro1()
dein Makro code
...
...
Makro2
End Sub

Zu Frage 3 muß ich nochmal schaun.
Gruß Niels

Antwort 6 von Tomschi

Mahlzeit!

Ich habe Deinen Lösungsvorschlag beherzigt und ein Makro gebaut, welches die anderen Makros aufruft. Thanks!



Mit Hilfe einer Hilfsspalte ermittle ich die Zeilennummer des Eingabewertes von Zelle A1.
Diesen Wert lese ich per Makro aus und springe dann in die beteffende Zelle.

Zwar keine elegante Lösung, aber es funktioniert.
Gerne probiere ich aber auch andere Ansätze aus.

LieGrü

Tom

Antwort 7 von DukeNT

Hi,
der Eingabewert in A1 ist das immer eine Zahl aus Spalte A ?
Wenn ja dann passe das Makro Sub Autofilter_ein() wie folgt an.

Sub Autofilter_ein()
Application.ScreenUpdating = False
Worksheets("spam_bword_alle").Activate
Range("a2:aa2").AutoFilter Field:=1, Criteria1:=Range("a1").Value
If ActiveCell.Value = "" Then
Sheets("spam_bword_alle").Select
Selection.AutoFilter Field:=1
End If
Application.ScreenUpdating = True
If Cells(1, 1) <> "" Then Range("Q" & Cells(1, 1).Value + 2).Select
End Sub

Mit Application.Screenupdating = false wird die Bildschirmaktualisierung deaktiviert was dem Filtern ein bischen mehr geschwindigkeit gibt.
Am Ende muß das wieder auf True gesetz werden.
Gruß Niels

Antwort 8 von Tomschi

Hi!

Vielen Dank für Deine tolle Unterstützung!

Eingabewert Zelle A1 = Werte in Spalte A --> ABER:

Mein erster Versuch entsprach in etwa Deinem, jedoch kommen einige Werte in der Spalte A doppelt vor.
Somit habe ich zurzeit 2.145 Einträge (Spalte B) aber nur 2.044 laufende Nummern (Spalte A).

If Cells(1, 1) <> "" Then Range("Q" & Cells(1, 1).Value + 2).Select --> genau hier liegt das Problem.

Beispiel:
laufende Nr. 2.000 (Spalte A) entspricht bereits der Zeile 2.103 (Spalte B) --> 2.000 + 2 = Zeile 2.002 = Wert 1.901 (Spalte A)

Daher auch mein Lösungsansatz mit der Hilfsspalte:
Beispiel:
=wenn($A$1=A177;Zeile();"---")
Die Formel max(Hilfsspalte) gibt mir dann die Zeilennummer zurück und damit arbeit ich im Makro weiter.

Bye

Tom

Antwort 9 von Tomschi

Guten Morgen!

Noch eine Frage zu einem älteren Beitrag.
Warum wird bei der Verwendung des Makros aus "Antwort 1" die Funktion "Rückgängig" deaktiviert?

Was kann man tun damit diese doch funktioniert?

Ciao

Tom

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: