Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

sprung zur zweiten sichtbaren Zelle in spalte d

Forumthread: sprung zur zweiten sichtbaren Zelle in spalte d

sprung zur zweiten sichtbaren Zelle in spalte d
walter
Hallo,
ich suche eine Lösung, leider in Bsp. nicht fündig geworden, indem ich bei aktiviertem Autofilter in die zweite (sichtbare) Zelle in Spalte D springe.
Scvhon malö mit Dank
Gruß
Walter
Anzeige
Nur sichtbare Zellen in gefilterter Liste
16.10.2009 13:13:42
NoNet
Hallo Walter,
hier ein Beispiel-Code, wie Du den Wert, die Adresse einer bestimmten Zelle in der gefilterten Liste ermitteln kannst und wie Du eine bestimmte Zelle "anspringen" (selektieren) kannst :
VBA-Code:
Option Explicit
'16.10.2009, NoNet - www.excelei.de (z.Zt. down !)
Sub SichtbareZelleAusGefilterterSpalte()
    'Hinweis : Falls eine komplette spalte als Bereich angegeben wird,
    'ist die 1. "sichtbare" Zelle jeweils die Überschrift der Spalte !
    'Adresse der 3. sichtbaren Zelle aus der gefilterten Spalte B anzeigen
    MsgBox SichtbareZelle(Range("B:B"), 3).Address
    'Wert der 5. sichtbaren Zelle aus der gefilterten Spalte C anzeigen
    MsgBox SichtbareZelle(Range("C:C"), 5).Value
    '2. sichtbare Zelle aus dem gefilterten Bereich D2:D1000 selektieren
    SichtbareZelle(Range("D2:D1000"), 2).Select
End Sub
Function SichtbareZelle(rngSpalte, lngZ) As Range
    Dim rngBereich As Range
    Dim lngA As Long, lngS As Long
    Set rngBereich = Intersect(rngSpalte.SpecialCells(xlCellTypeVisible), ActiveSheet.UsedRange)
    lngS = lngZ
    For lngA = 1 To rngBereich.Areas.Count
        If rngBereich.Areas(lngA).Cells.Count < lngS Then
            lngS = lngS - rngBereich.Areas(lngA).Cells.Count
        Else
            Set SichtbareZelle = rngBereich.Areas(lngA)(lngS)
            lngA = rngBereich.Areas.Count  'Schleifenabbruch ohne EXIT FOR !
        End If
    Next
End Function
Gruß, NoNet
AW: Nur sichtbare Zellen in gefilterter Liste
walter

Hallo NoNet,
mit Dank erstmal, hatte allerdings nur mit einer Zeile gerechnet.
wird getetstet
Gruß
Walter
AW: sprung zur zweiten sichtbaren Zelle in spalte d
walter

Hallo NoNet,
doch noch ne Frage:
Wie muß ich die function einbauen ? in ein eigenes Modul ?
Danke für Info
Gruß
Walter
Ja, alles in ein allgemeines Modul _oT
NoNet

_oT = "ohne Text"
AW: Ja, alles in ein allgemeines Modul _oT
walter

Hallo Nonet,
sorry, Fehlermeldung:
erwartet Anweisungsende und markiert as range in der ersten function Zeile
Hast Du evtl. ne Idee
Danke
Walter
Ist unlogisch ! - Aber lass mal "as Range" weg
NoNet

Hallo Walter,
eigentlich dürfte hier keine FM erscheinen, wenn Du den Code 1:1 kopiert hast (hast Du doch, oder ? ;-).
"Zur Not" kannst Du die Typendeklaration "As Range" auch weglassen.
Teste auch mal folgenden Code - tritt hier auch ein Fehler auf ?
Sub TestBereich()
[A1].Select
MsgBox rngZelle(ActiveCell).Value
MsgBox rngZelle(ActiveCell).Address
End Sub

Function rngZelle(rngBereich) As Range
Set rngZelle = rngBereich
End Function
Gruß, NoNet
AW: Ist unlogisch ! - Aber lass mal "as Range" weg
walter

Hallo NoNet,
habe jetzt nochmals Deinen Code, original von dieser Seite kopiert und eingefügt, und ....
es funzt ---> Danke
(hatte vorher bereits ebenfalls keine (bewußten) Veränderungen vorgenommen, :-(( , evtl. Kopierfehler ?)
Auch Dein zweiter Code klappt:
erste Ausgabe: Lagerplatz
zweite Ausgabe: absolute Angabe A1
Also, erstmal alles bestens, mit Dank nochmals
Gruß und schönes Wochenende
Walter
Anzeige
AW: Nur sichtbare Zellen in gefilterter Liste
16.10.2009 13:19:01
walter
Hallo NoNet,
mit Dank erstmal, hatte allerdings nur mit einer Zeile gerechnet.
wird getetstet
Gruß
Walter
AW: sprung zur zweiten sichtbaren Zelle in spalte d
16.10.2009 14:33:04
walter
Hallo NoNet,
doch noch ne Frage:
Wie muß ich die function einbauen ? in ein eigenes Modul ?
Danke für Info
Gruß
Walter
Ja, alles in ein allgemeines Modul _oT
16.10.2009 14:35:45
NoNet
_oT = "ohne Text"
Anzeige
AW: Ja, alles in ein allgemeines Modul _oT
16.10.2009 15:09:53
walter
Hallo Nonet,
sorry, Fehlermeldung:
erwartet Anweisungsende und markiert as range in der ersten function Zeile
Hast Du evtl. ne Idee
Danke
Walter
Ist unlogisch ! - Aber lass mal "as Range" weg
16.10.2009 16:21:55
NoNet
Hallo Walter,
eigentlich dürfte hier keine FM erscheinen, wenn Du den Code 1:1 kopiert hast (hast Du doch, oder ? ;-).
"Zur Not" kannst Du die Typendeklaration "As Range" auch weglassen.
Teste auch mal folgenden Code - tritt hier auch ein Fehler auf ?
Sub TestBereich()
[A1].Select
MsgBox rngZelle(ActiveCell).Value
MsgBox rngZelle(ActiveCell).Address
End Sub

Function rngZelle(rngBereich) As Range
Set rngZelle = rngBereich
End Function
Gruß, NoNet
Anzeige
AW: Ist unlogisch ! - Aber lass mal "as Range" weg
16.10.2009 16:46:12
walter
Hallo NoNet,
habe jetzt nochmals Deinen Code, original von dieser Seite kopiert und eingefügt, und ....
es funzt ---> Danke
(hatte vorher bereits ebenfalls keine (bewußten) Veränderungen vorgenommen, :-(( , evtl. Kopierfehler ?)
Auch Dein zweiter Code klappt:
erste Ausgabe: Lagerplatz
zweite Ausgabe: absolute Angabe A1
Also, erstmal alles bestens, mit Dank nochmals
Gruß und schönes Wochenende
Walter
Anzeige

Forumthreads zu verwandten Themen

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige