Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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

Springen zu nächte nichtleere Zelle,dann markieren

Springen zu nächte nichtleere Zelle,dann markieren
14.12.2013 12:51:03
Selma
Hallo Leute,
ab der aktive Zelle möchte ich nach unten gesehen erstmal zu nächste nichtleere Zelle spingen,
dann ab diese Zelle bis nächste leere Zelle (minus 1) die Zellen markieren.
Wie mache ich das bitte per VBA?
Gruß,
Selma

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

Betreff
Datum
Anwender
Anzeige
Nachfrage ...
14.12.2013 13:15:16
Matthias
Hallo Selma
Bsp.
Tabelle1

 B
2 
3 
4 
5x
6x
7 
8 
9 
10x
11 
12 
13x
14x
15x
16 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Was soll denn markiert werden, wenn z.B. B2 die aktive Zelle ist?
Geh dann mal immer weiter runter mit der Ausgangszelle
Was soll denn markiert werden, wenn z.B. B3 die aktive Zelle ist?
Was soll denn markiert werden, wenn z.B. B4 die aktive Zelle ist?
Was soll denn markiert werden, wenn z.B. B5 die aktive Zelle ist?
Was soll denn markiert werden, wenn z.B. B6 die aktive Zelle ist?
Was soll denn markiert werden, wenn z.B. B7 die aktive Zelle ist?
Was soll denn markiert werden, wenn z.B. B8 die aktive Zelle ist?
usw.
Ist für außenstehende dann sicherlich einfacher zu verstehen.
Gruß Matthias

Anzeige
AW: Nachfrage ...
14.12.2013 13:22:54
Selma
Hallo Matthias,
es soll nur einmal markiert werden. Ich möchte den Code der mir fehlt in ein anderes Makro intergrieren. Meine aktive Zelle ist immer leere.
Beispiel: B2, dann soll B5 und B6 markiert werden.
Beispiel: B12, dann soll B13 bis B15 markiert werden.
Gruß,
Selma

AW: hier eine Lösung mit Selection.Areas
14.12.2013 19:09:39
Selma
Hallo Matthias,
wie haben uns nicht verstanden :-)
Wenn ich in der aktive Zelle bin z.B. B2, dann soll B5 und B6 markiert werden. Mehr auch nicht!
Also immer ab der aktive Zelle nach unten die nächste nichtleere Zelle suchen und dann ab da bis nächste leere Zelle (minus 1) markieren.
Gruß,
Selma

Anzeige
dann hast Du es nicht verstanden ...
14.12.2013 20:12:14
Matthias
Hallo
Wenn ich in der aktive Zelle bin z.B. B2, dann soll B5 und B6 markiert werden. Mehr auch nicht!
Also immer ab der aktive Zelle nach unten

Genau das macht doch der Code
Lass doch einfach die MsgBox weg.
Gruß Matthias

AW: dann hast Du es nicht verstanden ...
15.12.2013 14:03:53
Selma
Hallo Matthias,
das stimmt, ich habe es übersehen.
Jetzt ist im Code eingetragen, dass es für Spalte B und bis zu der Zeile 20 gilt.
Wie kann ich bitte diesen Teil "Range("B" & Selection.Row & ":B20")" des Codes ändern, damit der Code immer für die aktive Spalte gilt und keine Zeilenbegrenzung hat?
Danke!
Gruß,
Selma

Anzeige
für die aktive Spalte ...
16.12.2013 06:40:42
Matthias
Hallo Selma
Wichtig!
Um ganz sicher zu gehen, sollte die letzte Zeile in der Tabelle leer bleiben.
Ich blende diese Zeile dann immer komplett aus.
Ich abeite meist mit 65536 Zeilen. Also Zeile(65536) is ausgeblendet und leer
Wenn das also für Dich möglich ist die letzte Zeile leer zu lassen,
kannst Du evtl. ohne Probleme diesen Code benutzen:
Mit XL2010 kann ich das nicht testen, da ich diese Version nicht zur Verfügung habe.
Option Explicit Sub Selma2() Dim Rng As Range, Spalte&, LoLetzte& On Error GoTo EndE Spalte = ActiveCell.Column LoLetzte = Cells(Rows.Count, Spalte).End(xlUp).Row Range(Cells(ActiveCell.Row, Spalte), Cells(LoLetzte, Spalte)).SpecialCells(xlCellTypeConstants, _ 23).Select 'Bereich anpassen! For Each Rng In Selection.Areas Range(Rng.Address).Select Exit For Next EndE: End Sub Gruß Matthias

Anzeige
AW: für die aktive Spalte ...
16.12.2013 10:20:20
Selma
Hallo Matthias,
es funktioniert. DANKE!
Gruß,
Selma

Nächster nichtleerer Bereich einer Spalte
14.12.2013 19:43:47
Erich
Hi Selma,
hier mal zwei Varianten. Die erste arbeitet mit "End(xlDown)", die zweite mit Matthias' Ansatz,
also SpecialCells(xlCellTypeConstants, 23).
Beide geben hier die Adresse eines Bereichs oder eine Fehlermeldung als String zurück.
Kannst/willst du mit der Adresse weiter arbeiten oder sollen die Fkt. den Bereich als Range zurückgeben?
Bei "Range" ist dann die Frage: Was soll im Fehlerfall zurückgegeben werden?
Probier mal

Option Explicit
Sub aTest()
Dim zz As Long
For zz = 3 To 17
Cells(zz, 2) = NxtFulAdr(Cells(zz, 1))
Cells(zz, 3) = NextFullAdr(Cells(zz, 1))
Next zz
For zz = ActiveSheet.Rows.Count - 5 To ActiveSheet.Rows.Count
Cells(zz, 2) = NxtFulAdr(Cells(zz, 1))
Cells(zz, 3) = NextFullAdr(Cells(zz, 1))
Next zz
End Sub
Function NextFullAdr(RngC As Range) As String
Dim rngA As Range, lngM As Long
lngM = RngC.Parent.Rows.Count
If RngC.Row = lngM Then
NextFullAdr = "undefiniert (Spaltenende 0)"
Else
If Not (IsEmpty(RngC) Or IsEmpty(RngC.Offset(1))) Then
Set rngA = RngC.End(xlDown).End(xlDown)
Else
Set rngA = RngC.End(xlDown)
End If
If rngA.Row = lngM Then
If IsEmpty(rngA) Then
NextFullAdr = "undefiniert (Spaltenende 1)"
Else
If IsEmpty(rngA.Offset(-1)) Then
NextFullAdr = rngA.Address(0, 0)
Else
NextFullAdr = "undefiniert (Spaltenende 2)"
End If
End If
Else
If IsEmpty(rngA.Offset(1)) Then
NextFullAdr = rngA.Address(0, 0)
Else
NextFullAdr = Range(rngA, rngA.End(xlDown)).Address(0, 0)
End If
End If
End If
End Function
Function NxtFulAdr(RngC As Range) As String  ' nach Matthias L
Dim rngA As Range, lngM As Long
lngM = RngC.Parent.Rows.Count
If RngC.Row = lngM Then
NxtFulAdr = "undefiniert (Spaltenende 0)"
Else
On Error Resume Next
Set rngA = Range(RngC, Cells(Rows.Count, RngC.Column)) _
.SpecialCells(xlCellTypeConstants, 23)
On Error GoTo 0
If rngA Is Nothing Then
NxtFulAdr = "undefiniert (Spaltenende 1)"
Else
If Intersect(RngC, rngA(1)) Is Nothing Then
NxtFulAdr = rngA.Areas(1).Address(0, 0)
Else
If rngA.Areas.Count > 1 Then
NxtFulAdr = rngA.Areas(2).Address(0, 0)
Else
NxtFulAdr = "undefiniert (Spaltenende 2)"
End If
End If
End If
End If
End Function
Und hier die BeiSpielMappe, bei der auch die alleruntersten Zeilen interessant sind...
https://www.herber.de/bbs/user/88518.xlsm
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Nächster nichtleerer Bereich einer Spalte
16.12.2013 10:21:48
Selma
Hallo Erich,
danke auch für Deine Variante!
Gruß,
Selma

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige