Frage zu ActiveCell.Offset

Bild

Betrifft: Frage zu ActiveCell.Offset
von: Scotty
Geschrieben am: 09.12.2003 11:35:46

Hallo,

habe eine Tabelle, in der ich mit folgenden Makro alle grauen Zellen überspringen kann. Das Makro funktioniert auch, es gibt nur noch ein kleines Prob. Wenn ich die Tab. von oben nach unten beschreibe (tut man ja normalerweise :)), ist es von Vorteil, das unter der jeweils grauen Zelle weiter eingegeben werden kann. Kann aber jetzt per Tastatur nicht mehr über die graue Zelle hinweg nach oben springen. (logisch, siehe Makro)Kann man da irgendwas ändern, das ich wenn ich von oben nach unten eingebe, unter der Zelle weiterschreibe und umgekehrt?


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   If ActiveCell.Interior.ColorIndex = 15 Then
      ActiveCell.Offset(1, 0).Select
   End If
End Sub


Danke euch allen
Liebe Grüße
Scotty
Bild


Betrifft: AW: Frage zu ActiveCell.Offset
von: Boris
Geschrieben am: 09.12.2003 11:52:17

Hi Scotty,

arbeite mit einer Publicvariable, die außerhalb der Prozedur deklariert wird und die Zeilennummer "ziwschenspeichert":

Option Explicit

Public Oldrow As Long


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Oldrow = 0 Then Oldrow = 1
If ActiveCell.Row < Oldrow Then
    Oldrow = ActiveCell.Row
    Exit Sub
End If
If ActiveCell.Interior.ColorIndex = 15 Then
    ActiveCell.Offset(1, 0).Select
    Oldrow = ActiveCell.Row
End If
End Sub


Grüße Boris


Bild


Betrifft: AW: Frage zu ActiveCell.Offset
von: Scotty
Geschrieben am: 09.12.2003 12:04:00

Hallo Boris,

danke für dein Tipp, der funktioniert echt prima! Dankeschön!!! Sag mal, kann man beim "hochspringen" die grauen Zellen auch irgendwie überspringen?

Vielleicht kannst du mir auch bei nen anderen Prob helfen. Ist es irgendwie möglich, nach jeden Seitenwechsel eine bestimmte Zeile einzufügen. z. B. die Zellen von A1:F1?

Danke dir
Scotty


Bild


Betrifft: AW: Frage zu ActiveCell.Offset
von: Boris
Geschrieben am: 09.12.2003 12:16:51

Hi Scotty,

auf die Schnelle:

Option Explicit

Public Oldrow As Long


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Oldrow = 0 Then Oldrow = 1
If ActiveCell.Row = 1 Then Exit Sub
If ActiveCell.Row < Oldrow Then
    Oldrow = ActiveCell.Row
        If ActiveCell.Interior.ColorIndex = 15 Then
            ActiveCell.Offset(-1, 0).Select
            Oldrow = ActiveCell.Row
        End If
    Exit Sub
End If
If ActiveCell.Interior.ColorIndex = 15 Then
    ActiveCell.Offset(1, 0).Select
    Oldrow = ActiveCell.Row
End If
End Sub


Für die Zusatzfrage starte einen neuen Thread.

Grüße Boris


Bild


Betrifft: Spitzenklasse!!
von: Scotty
Geschrieben am: 09.12.2003 12:36:01

Hi Boris,

danke für das Makro was du mir gezaubert hast. Es funktioniert prima!!

Gruß Scotty


Bild

Beiträge aus den Excel-Beispielen zum Thema " Alter berechnen vba"