Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Leerbereich zwischen Zellen auswählen
#1
Hallöchen,

ich möchte gerne den Leerbereich (hier zwischen Zeile 9 und Zeile 14 ) auswählen und selektieren. Die aktive Zelle kann sich dabei beliebig irgendwo im Leerbereich befinden .
Wie lautet der entsprechende VBA Code dafür?

[
Bild bitte so als Datei hochladen: Klick mich!
]
Antworten Top
#2
z.B. so:
Code:
ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks).Select
Antworten Top
#3
Hallöchen,

leider nicht ganz das was ich suche. Habe vergessen zu erwähnen, dass in der Nachbarspalte(n) auch noch etwas stehen kann.
Bei meinem hier angegeben Beispiel würde


Code:
Range("A:A").SpecialCells(xlCellTypeBlanks).Areas(1).Select

gut funktionieren. Aber das Problem bei oben genanntem Code ist, das der Leerbereich überall in der Spalte stehen kann, dass es beliebig viele Leerbereiche geben kann und
dass ich nicht weiß wie man die Index von Area, im Beispiel hier ja gleich 1, bestimmen kann. Brauch also noch etwas Hilfe von euch.
Antworten Top
#4
Code:
Sub M_snb()
  for each it in columns(1).specialcells(4).areas
    msgbox it.address
  next
End Sub
Antworten Top
#5
Hallo Snb,

danke schon mal für deinen Code. Den habe ich habe hier mal etwas erweitert und für die Forumsmitglieder auch etwas leichter verständlich geschrieben.
(Objektdeklaration nachgeholt)


Code:
Sub M_snb_Forumfreundlich()
Dim it As Object

'Alle Leerbereiche in Spalte in 1
For Each it In Columns(1).SpecialCells(xlCellTypeBlanks).Areas
Debug.Print it.Address
Debug.Print it.Select
Next

'Alle Bereiche mit Inhalt in Spalte 1
For Each it In Columns(1).SpecialCells(xlCellTypeConstants).Areas
Debug.Print it.Address
Debug.Print it.Select
Next

End Sub
Adressen und Zellbereiche von leeren/nichtleeren Bereichen werden angegeben bzw. markiert. Interessante Erweiterung, beantwortet aber noch nicht meine Frage bzw.
höchstens indirekt, da die Sache über ForEach Schleife abgewickelt wird, müßte dann der entsprechende Bereich ausgerechnet werden. So etwas kann ich natürlich auch
mit End(XluP) und End(XlDown) etc. machen. Was mir vorschwebt ist die elegante Lösung. Am besten ein Einzeller.


Code:
Debug.Print "Areaanzahl mit Inhalt: " & Range("A:A").SpecialCells(xlCellTypeConstants).Areas.Count
Debug.Print "Areanzahl die leer sind: " & Range("A:A").SpecialCells(xlCellTypeBlanks).Areas.Count

Damit läßt sich die Areaanzahl angeben. Es muß duch auch möglich sein, die "Area" in der sich die aktuelle Zelle befindet direkt über einen Befehl auszugeben oder?!
Antworten Top
#6
Statt 100% überflüssige Code (die Besucher hier sind kluger als du meinst) hinzufügen wäre es besser deine Frage exakter zu formulieren.
Antworten Top
#7
Hallöchen,
ganz einfach: Bei einer gegebenen AktivenZelle in einem leeren Zellbereich in Spalte 1 möchte ich wissen, welcher Index für das Area das ist, denn dann kann ich
mit den schon von mir gemachten Angaben den Leerbereich direkt markieren:


Code:
Range("A:A").SpecialCells(xlCellTypeBlanks).Areas(???).Select
Antworten Top
#8
Code:
Sub M_snb()
  for each it in columns(1).specialcells(4).areas
    if not intersect(activecell,it) is nothing then exit for
  next
  it.select
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • santana
Antworten Top
#9
Hallo Snb,

dat is it!! Danke, Super gemacht!!!!

P.S.: Freu dich bzw. freut euch nicht zu früh, habe bestimmt noch Fragen und nerv weiter. Aber für heute schalt ich den Rechner aus.
Euch einen schönen Abend.
Antworten Top
#10
Hallo,

geht so etwas nicht auch mit der WorksheetFunction.CountIF ?!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste