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.

Rahmen von Zelle bis nächsten gefüllen Zelle
#1
Hey!

Ich würde gerne innerhalb einer Spalte einen Rahmen von A2 bis zu nächsten gefüllte Zelle ziehen und ab der nächsten von neuem also:

A2 > A3 > A4
A5>A6
A7
A8>A9>A10

Ich weiß zwar wie ich einen Rahmen ziehe:

base.UsedRange.Borders.LineStyle = xlContinuous


Aber nicht wie ich bis zur nächsten gefüllten Zelle komme.



Beste Grüße
Antworten Top
#2
Hallo,

Deine verschiedenen Angaben zumindest für mich in Gänze teils widersprüchlich bzw. nicht eindeutig.

Vielleicht stellst Du mal eine kleine Datei ein, wo Du händisch Deine Zellen entsprechend formatiert hast.
Gruß Werner
.. , - ...
Antworten Top
#3
Hallöchen,

z.B. so von A1 zur nächsten belegten Zelle, wenn ach A1 Leerzeichen beginnen. Ansonsten wird es die letzte belegte Zelle des ab A1 gefüllten Bereichs.
Cells(1, 1).End(xlDown).Address

Welche der Beiden Varianten es ist, könntest Du über eine Prüfung der vorherigen Zelle herausbekommen. Kommt nach der Zelle nix mehr, landest Du mit dem nächsten Sprung am Tabellenende.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Hey!

Vielen Dank für eure Antworten und Entschuldigung für meine mangelhafte Beschreibung.

Das problembezieht sieht auf einen ganzen Bereich, aber wenn ich die Lösung innerhalb einer Spalte erzeuge, kann ich diese auch auf einen ganzen Bereich ableiten.

Also:

Ich habe Spalte A, diese besitzt Zellen die leer sind.
So ist A2 gefüllt, und A3 und A4 beispielweise leer.
Nun möchte ich einen Ramen von A2 bis zur letzten leeren (einschließlich dieser) oder bis zur nächsten efüllten Zelle (ausschließlich dieser) ziehen.
Und dann geht es ab A5 wieder weiter. Es ist also eine Schleife nötig.

Wie gesagt, den Befehl zum ziehen eines Rahmens habe ich bereits herausgefunden. Aber welchen Schleifentyp benutze ich nun und wie schaut das weitere Prozedere aus?
Da ich noch kompletter Anfänger bin, tue ich mich sehr schwer.

Was fange ich nun mit diesem Befehl an?:

Cells(1, 1).End(xlDown).Address



Beste Grüße
Antworten Top
#5
(29.12.2016, 15:53)joshua schrieb: Was fange ich nun mit diesem Befehl an?:
Cells(1, 1).End(xlDown).Address

Na ja, du trägst ihn in den VBA-Editor ein ...
Und wenn du Neopas Aufforderung nachgekommen wärst, könnten wir es dir sogar am "lebenden Beispiel" zeigen ...
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#6
Hallo Joshua,

machen wir mal einen Step weiter. Bisschen was hatte ich ja schon dazu erklärt. Fülle mal ein paar Zellen in Spalte A aus, mit Leerzeilen dazwischen und auch mal mehreren gefüllten Zellen nacheinander, und lasse diesen Code drüber laufen:

Sub test()
For icnt = 1 To Cells(Rows.Count, 1).End(xlUp).Row
MsgBox Cells(icnt, 1).End(xlDown).Address
icnt = Cells(icnt, 1).End(xlDown).Row
Next
End Sub

Schaue Dir dabei die Ausgeben der Msgbox an und vergleiche sie ggf. mit den Einträgen in Spalte A. Dann machen wir weiter ... Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • joshua
Antworten Top
#7
Ohne VBA:

1. In gesamter Spalte Rechts-Links als normales Format
2. mit bedingter Formatierung: "Wenn Zelle gefüllt, Oben-Rechts-Links"
Antworten Top
#8
(30.12.2016, 09:55)schauan schrieb: Hallo Joshua,

machen wir mal einen Step weiter. Bisschen was hatte ich ja schon dazu erklärt. Fülle mal ein paar Zellen in Spalte A aus, mit Leerzeilen dazwischen und auch mal mehreren gefüllten Zellen nacheinander,  und lasse diesen Code drüber laufen:

Sub test()
For icnt = 1 To Cells(Rows.Count, 1).End(xlUp).Row
MsgBox Cells(icnt, 1).End(xlDown).Address
icnt = Cells(icnt, 1).End(xlDown).Row
Next
End Sub

Schaue Dir dabei die Ausgeben der Msgbox an und vergleiche sie ggf. mit den Einträgen in Spalte A. Dann machen wir weiter ... Smile

Hey, vielen Dank für die Hilfe!
Also die Messagebox zeigt mir nun alle gefüllten Zellen der Spalte A an.
Wie kriege ich es nun hin, dass nach dieser Auswahl der zu formatierende Bereich definiert wird?


Entschuldigt, dass ich mich so schwer tue. Ich hatte leider bisher sehr wenig/ kein Kontakt zu VBA, entsprechend besitze ich auch keine Erfahrung
Antworten Top
#9
Hallöchen,

es ist auch unabhängig vom VBA nicht ganz einfach Huh

So könnte es funktionieren:

Code:
Sub test()
icnt = 2
Do While icnt < Cells(Rows.Count, 1).End(xlUp).Row
If Cells(icnt, 1).Borders(xlEdgeBottom).LineStyle <> xlContinuous Then
  Range(Cells(icnt, 1), Cells(icnt, 1).End(xlDown)).BorderAround (xlContinuous)
End If
icnt = Cells(icnt, 1).End(xlDown).Row
Loop
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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