Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1244to1248
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

zurück in leere Zelle

zurück in leere Zelle
Tom
Hallo zusammen,
habe in der Arbeitsmappe folgenden Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren
End If
End Sub
Sobald also in der Spalte H ein Wert eingeben wird, startet das sortieren-Makro.
Nun möchte ich aber zusätzlich erreichen, dass der Cursor nach Makroausführung automatisch in die nächste Leere Zelle im Bereich F4:H18 springt.
Hat jemand ne Lösung?
Danke
TOM

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zurück in leere Zelle
20.01.2012 10:11:15
Tom
Zusatzfrage:
Wie kann ich dies zusammenfassen, dass Gruppe A, B, C und D extra sortiert werden bei den Eingaben in die jeweiligen Bereiche - so funktioniert e leider nicht (Fehlermeldung):
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_A
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("t4:t18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_B
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H32:h46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_C
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("t32:t46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_D
End If
End Sub

Anzeige
AW: zsammenfassen
20.01.2012 10:17:22
hary
hallo Tom
zusammenfassen:
Intersect(Target, Range("H4:h18", "t4:t18"))

gruss hary
AW: zsammenfassen
20.01.2012 11:03:19
Tom
Hallo Harry,
so kommt aber eine Fehlermeldung ...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18", "t4:t18", "h32:h46", "t32:t46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren
End If
End Sub
Gruß
TOM
das geht so ja auch nicht
20.01.2012 11:11:17
Matthias
Hi
Du hast doch vier Sotiermakros
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_A
End If
If Not Intersect(Target, Range("t4:t18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_B
End If
If Not Intersect(Target, Range("H32:h46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_C
End If
If Not Intersect(Target, Range("t32:t46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_D
End If
End Sub
Gruß Matthias
Anzeige
AW: stimmt Matthias
20.01.2012 11:54:27
hary
Hallo
da hab ich gepennt. Aber so muesste es gehen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18", "t4:t18")) Is Nothing Then
Select Case Target.Column
Case 8: MsgBox "SucheA" 'Hier Makro
Case 20: MsgBox "SucheB"
'----usw-----
End Select
End If
End Sub

gruss hary
AW: stimmt Matthias
20.01.2012 12:25:29
Tom
Hallo Hary,
nur zum Verständnis für mich: die 2.Lösung von Dir war nur ne Alternative zu der von Mathias !? Damit ist die Suche nach der leeren Zelle noch nicht behoben, oder?
AW: Erst Sortieren, dann leere Zelle aktivieren ...
21.01.2012 02:13:51
Tom
Hallo Matthias,
danke an Dich. Dennoch springt der Cursor nicht in die richtige leere Zeile. Ich habe es so zusammengebaut:
Option Explicit
Public Rng As Range

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_A
End If
For Each Rng In Range("H4:H18")
If Rng.Value = "" Then Rng.Select: Exit For
Next
If Not Intersect(Target, Range("t4:t18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_B
End If
For Each Rng In Range("t4:t18")
If Rng.Value = "" Then Rng.Select: Exit For
Next
If Not Intersect(Target, Range("H32:h46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_C
End If
For Each Rng In Range("H32:h46")
If Rng.Value = "" Then Rng.Select: Exit For
Next
If Not Intersect(Target, Range("t32:t46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_D
End If
For Each Rng In Range("t32:t46")
If Rng.Value = "" Then Rng.Select: Exit For
Next
End Sub

Hast Du einen Optimierungsvorschlag?
Danke :-)
TOM
Anzeige
Das funktioniert doch ...
21.01.2012 09:22:02
Matthias
Hallo Tom
Ich hatte Dir bereits die Lösung als Datei gepostet!
Tabelle
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H4:h18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_A
End If
If Not Intersect(Target, Range("t4:t18")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_B
End If
If Not Intersect(Target, Range("H32:h46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_C
End If
If Not Intersect(Target, Range("t32:t46")) Is Nothing Then
Call Modul3.Tabelle_Vorrunde_Sortieren_D
End If
End Sub



Modul3
Option Explicit
Public Rng As Range
Sub Tabelle_Vorrunde_Sortieren_A()
Range("H4:H18").Sort Key1:=Range("H4"), Order1:=xlAscending, Header:=xlGuess
For Each Rng In Range("H4:H18")
If Rng.Value = "" Then Rng.Select: Exit For
Next
End Sub
Sub Tabelle_Vorrunde_Sortieren_B()
Range("t4:t18").Sort Key1:=Range("t4"), Order1:=xlAscending, Header:=xlGuess
For Each Rng In Range("t4:t18")
If Rng.Value = "" Then Rng.Select: Exit For
Next
End Sub
Sub Tabelle_Vorrunde_Sortieren_C()
Range("H32:H46").Sort Key1:=Range("H32"), Order1:=xlAscending, Header:=xlGuess
For Each Rng In Range("H32:H46")
If Rng.Value = "" Then Rng.Select: Exit For
Next
End Sub
Sub Tabelle_Vorrunde_Sortieren_D()
Range("t32:t46").Sort Key1:=Range("t32"), Order1:=xlAscending, Header:=xlGuess
For Each Rng In Range("t32:t46")
If Rng.Value = "" Then Rng.Select: Exit For
Next
End Sub
Wobei Du Header auch auf XlNo setzen könntest


Das in Block C und D für Dich der Cursor anscheinend nicht in der richtige Zelle platziert wird, liegt ganz einfach daran das in diesen Blöcken je eine Zelle einen Leerstring hat. Der wird mitsortiert.
Ich hatte nur nach dem Testen die Zellen nicht wieder geleert. Sorry fürs Verwirren ;o)
In Block C in Zelle H35
In Block D in Zelle T34
Mit der Formel: Länge(DeineZelle) in den jeweiligen Nachbarzellen hattest Du das auch selbst herausgefinden können ;o)
Gruß Matthias
Anzeige
AW: das geht so ja auch nicht
20.01.2012 12:18:48
Tom
Ok, danke. Jetzt brauch ich nur noch die Lösung, dass der Cursor in die nächste freie Zelle springt.
Dann bin ich happy :-)
Danke vorab! :-)
TOM

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige