Live-Forum - Die aktuellen Beiträge
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

Cursor springen

Cursor springen
Erich
Hallo zusammen,
nach dem wählen eines bestimmten Tabellenblattes soll der Cursor zwischen den Zeilen 4 und 309 immer auf der ersten leeren Zelle der Spalte K stehen. Und zwar unterhalb gefüllter K-Zellen. Gibt es dazwischen Leerzellen in K, soll er auf der ersten leeren K-Zelle stehen.
Nach Eingeben eines Zahlenwertes in dieser Zelle, soll er auf die L-Zelle springen. Habe ich auch die L-Zelle mit einem Zahlenwert gefüllt, soll er auf die nächste freie K-Zelle hüpfen.
Ich bitte um Hilfe.
Gruß EM

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Cursor springen
14.01.2012 10:37:14
Josef

Hallo Erich,
probier mal.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Activate()
  Dim rng As Range
  On Error Resume Next
  Set rng = Range("K6:K309").SpecialCells(xlCellTypeBlanks).Cells(1, 1)
  On Error GoTo 0
  If Not rng Is Nothing Then Application.Goto rng
  Set rng = Nothing
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  If Not Intersect(Target, Range("K6:L309")) Is Nothing Then
    On Error Resume Next
    If Target(1, 1).Column = 11 Then
      Set rng = Range("L6:L309").SpecialCells(xlCellTypeBlanks).Cells(1, 1)
    Else
      Set rng = Range("K6:K309").SpecialCells(xlCellTypeBlanks).Cells(1, 1)
    End If
    On Error GoTo 0
    If Not rng Is Nothing Then Application.Goto rng
  End If
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Cursor springen
14.01.2012 11:48:53
fcs
Hallo Erich,
und noch eine Variante,
Ich hab deine Frage so verstanden, dass nach Eingabe eines Wertes in Spalte K jeweils die Nachbarzelle in Spalte L selektiert werden soll.
Gruß
Franz
'Code im Tabellenblatt-Modul, dessen Änderungen überwacht werden sollen
Option Explicit
Private Const Zeile1 As Long = 4, Zeile2 As Long = 304
Private Sub Worksheet_Activate()
Call Finden_leere(Spalte:=11, ZeileStart:=Zeile1, ZeileEnde:=Zeile2)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 _
And Not Intersect(Target, Range(Cells(Zeile1, 11), Cells(Zeile2, 12))) _
Is Nothing Then
Select Case Target.Column
Case 11 'Spalte K
If IsEmpty(Target) Then
Target.Select
Else
Cells(Target.Row, 12).Select
End If
Case 12 'Spalte L
If IsEmpty(Target) Then
Target.Select
Else
Call Finden_leere(Spalte:=11, ZeileStart:=Zeile1, ZeileEnde:=Zeile2)
End If
Case Else
'do nothing
End Select
End If
End Sub
'Function kann auch in einem allgemeinen Modul angelegt werden
Public Function Finden_leere(ByVal Spalte As Long, _
Optional ByVal ZeileStart As Long = 1, _
Optional ByVal ZeileEnde As Long = 0, _
Optional ByVal Selektieren As Boolean = True, _
Optional wks As Worksheet) As Range
'Findet 1. Leere Zelle in Spalte bzw. Zeilen-Bereich der Spalte
If wks Is Nothing Then Set wks = ActiveSheet
With wks
If ZeileEnde = 0 Then
ZeileEnde = .Rows.Count
End If
With .Range(.Cells(ZeileStart, Spalte), .Cells(ZeileEnde, Spalte))
Set Finden_leere = .Find(What:="", After:=wks.Cells(ZeileEnde, Spalte), _
LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
If Finden_leere Is Nothing Then
MsgBox "Alle Zellen im Bereich " & .Address(RowAbsolute:=False, ColumnAbsolute:=False) _
& " sind ausgefüllt"
Else
If Selektieren = True Then
.Activate
Finden_leere.Select
End If
End If
End With
End With
End Function

Anzeige
DANKE
14.01.2012 12:39:57
Erich
Herzlichen Dank an Euch,
alle drei Lösungen passen !!!!!
Da wäre aber noch eine Frage : Was ändert sich an Euren Lösungen, wenn von K nach L nach M und N
gesprungen wird.
Erst nach der N-Eingabe soll der Cursor zurück auf K.
Gruß EM
AW: DANKE
14.01.2012 13:37:09
Josef

Hallo Erich,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Activate()
  Dim rng As Range
  On Error Resume Next
  Set rng = Range("K6:K309").SpecialCells(xlCellTypeBlanks).Cells(1, 1)
  On Error GoTo 0
  If Not rng Is Nothing Then Application.Goto rng
  Set rng = Nothing
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, lngC As Long
  If Not Intersect(Target, Range("K6:N309")) Is Nothing Then
    On Error Resume Next
    lngC = Target(1, 1).Column - 10
    If lngC > 3 Then lngC = 0
    Set rng = Range("K6:K309").Offset(0, lngC).SpecialCells(xlCellTypeBlanks).Cells(1, 1)
    On Error GoTo 0
    If Not rng Is Nothing Then
      Application.Goto rng
    Else
      Application.Goto Range("K6:K309").Offset(0, lngC).Cells(1, 1)
    End If
  End If
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: DANKE Sepp
14.01.2012 14:13:02
Erich
.
AW: DANKE
14.01.2012 22:15:53
Erich
.
Antworten gefunden
15.01.2012 11:31:21
Erich
Hallo zusammen,
Frage hat sich erledigt.
Gruß EM

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige