Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro nach Zelleingabe automatisch durchführen

Makro nach Zelleingabe automatisch durchführen
03.01.2005 21:56:15
Tom
Hallo,
ich versuche ein Makro (sortieren) automatisch starten zu lassen, wenn ich in Zelle G31:I155 etwas eingebe.
Ich habe einen Lösungsansatz (von TinoB) im Archiv gefunden, komme aber nicht so recht weiter ...
Meine Lösung sieht so aus (funktioniert aber nicht ...)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$g$31:$i$105" Then
Range("C163:F187").Select
Selection.Sort Key1:=Range("C164"), Order1:=xlAscending, Key2:=Range( _
"F164"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End If
End Sub

Wer hat ne Lösung?
Danke vorab.
Tom
****************************************************************************
Hallo,
nach Verändern eines Zellwertes in B8 soll ein Makro ablaufen.
Wie ist dies machbar?
Danke.
Tankred
sollte so funktionieren.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$8" Then
Dein_Makro
End If
End Sub


AW: Makro nach Zelleingabe automatisch durchführen
03.01.2005 22:03:52
Josef
Hallo Tom!
Probier mal.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G31:I105]) Is Nothing Then
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
Range("C163:F187").Sort Key1:=Range("C164"), Order1:=xlAscending, Key2:=Range( _
"F164"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
End If
ERRORHANDLER:
Application.EnableEvents = True
End Sub 

Gruß Sepp
AW: Makro nach Zelleingabe automatisch durchführen
Tom
Hi Sepp,
tut sich immer noch nix ...
Tom
AW: Makro nach Zelleingabe automatisch durchführen
Reinhard
Hi Tom,
ungetestet, ersetze mal target durch target.Address
Gruß
Reinhard
Anzeige
AW: Makro nach Zelleingabe automatisch durchführen
Tom
Hi Reinhard,
ebenfalls negativ ...
Tom
AW: Makro nach Zelleingabe automatisch durchführen
Tom
Hi Reinhard,
ebenfalls negativ ...
Tom
AW: Makro nach Zelleingabe automatisch durchführen
Kay
Hallo Tom
ich glaube das liegt an dieser Zeile:
If Not Intersect(Target, [G31:I105]) Is Nothing Then
müste so heißen:
If Not Intersect(Target,Range ("G31:I105")) Is Nothing Then
Gruß
Kay
@Kay
03.01.2005 22:25:19
Josef
Hallo Kay!
If Not Intersect(Target, [G31:I105]) Is Nothing Then
ist das selbe wie
If Not Intersect(Target, Range("G31:I105")) Is Nothing Then
nur kürzer;-)
Gruß Sepp
AW: @Sepp
Kay
Hallo Sepp,
DANKE
habe ich noch nicht gewusst.
Wieder was dazu gelernt, bin auch noch ein kleine Anfänger.
Gruß
Kay
Anzeige
OT Nachfrage
PeterW
Hallo Sepp,
vielleicht kannst du mir die Frage beantworten, warum Hans rät, auf die eckigen Klammern zu verzichten? Ist das ein Relikt aus Vorgängerversionen oder spielt es keine Rolle? Bislang empfand ich seine Hinweise als zutreffend. (Punkt 13.5)
https://www.herber.de/xlfaq/xlbasics/var_20.htm
Danke und Gruß
Peter
AW: OT Nachfrage
03.01.2005 22:39:06
Josef
Hallo Peter!
Streng nach VBA Regeln ist das verwenden von eckigen Klammern nicht
korrekt.
Ich habe aber noch nie negative Erfahrungen damit gemacht!
Gruß Sepp
AW: OT Nachfrage
PeterW
Hallo Sepp,
danke für die Info.
Gruß
Peter
Anzeige
AW: OT Nachfrage
Ulf
Wieso dass denn? Eigentlich wird da intern nur Evaluate ausgeführt, was bei großen Datenmengen langsamer ist, als mit Range zu arbeiten.
Ulf
AW: Makro nach Zelleingabe automatisch durchführen
03.01.2005 22:23:21
Josef
Hallo Tom!
Bei mir funktioniert es!
Der Code gehört in das Modul der Tabelle!
(Rechtsklick auf Register &gt Code anzeigen &gt Code einfügen!)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G31:I105]) Is Nothing Then
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
Range("C163:F187").Sort Key1:=Range("C164"), Order1:=xlAscending, Key2:=Range( _
"F164"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
End If
ERRORHANDLER:
Application.EnableEvents = True
End Sub

Versuch mal Folgendes:
Drücke in VBA-Editor [Strg+G] schreibe in das Direktfenster
"Application.EnableEvents = True"
und bestätige mit Enter.
Versuch dann nochmal ob das Makro läuft.
Gruß Sepp
Anzeige
AW: Makro nach Zelleingabe automatisch durchführen
Tom
Hossa Sepp,
es funktioniert wunderbar !!
Vielen Dank! (auch an alle anderen)
Tom
freut mich das es klappt! wo lag der Fehler? o.T.
03.01.2005 22:40:37
Josef
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige