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

VBA: befüllten Bereich einrahmen

VBA: befüllten Bereich einrahmen
26.02.2020 09:16:44
Axel
Hallo zusammen,
ich möchte den befüllten Bereich ab einer bestimmten Stelle (A12) identifizieren lassen und Rahmen setzen.
Im Netz habe ich einige Anregungen gefunden, kann die aber nicht auf meine Anforderung umsetzen.
In folgender Datei habe ich ein Makro "usedRange" angefangen, das aber nicht funktioniert.
https://www.herber.de/bbs/user/135442.xlsm
Zwei Makros aus der Datei sind bereits ausgeführt, jetzt muss nur noch der befüllte Bereich, der variieren kann, komplett mit Rahmen versehen werden.
Ich bin leider nicht der VBA Profi, der den Code korrekt schreiben könnte und erbitte mal wieder eure Hilfe.
Vielen Dank vorab und beste Grüße
Axel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: befüllten Bereich einrahmen
26.02.2020 09:25:43
Nepumuk
Hallo Axel,
teste mal:
Option Explicit
Public Sub Rahmen_setzen()
Call Range(Cells(12, 1), Cells(Rows.Count, 5).End(xlUp)) _
.BorderAround(LineStyle:=xlContinuous, Weight:=xlThin, Color:=vbBlack)
End Sub

Gruß
Nepumuk
AW: VBA: befüllten Bereich einrahmen
26.02.2020 09:57:43
Axel
Hallo Nepumuk,
vielen Dank für die schnelle Hilfe. Ich dachte, das wird ein ellenlanger Code und es sind gerade mal 2 Zeilen...
Dein Makro funktioniert.
Ich glaube, ich hatte mich an einer Stelle nicht deutlich ausgedrückt. Es sollen alle Rahmen im Bereich gesetzt werden.
Gibt es eine einfachere Lösung als jede Linie separat aufzuführen:
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
so wie Dein .BorderAround? Ich hab im Netz nichts gefunden.
Vielen Dank noch mal!
Axel
Anzeige
AW: VBA: befüllten Bereich einrahmen
26.02.2020 10:09:48
Nepumuk
Hallo Axel,
so?
Option Explicit
Public Sub Rahmen_setzen()
Dim enmBordersIndex As XlBordersIndex
With Range(Cells(12, 1), Cells(Rows.Count, 5).End(xlUp))
Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin, Color:=vbBlack)
For enmBordersIndex = xlInsideVertical To xlInsideHorizontal
With .Borders(enmBordersIndex)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbBlack
End With
Next
End With
End Sub

Gruß
Nepumuk
AW: VBA: befüllten Bereich einrahmen
26.02.2020 10:19:36
Axel
Nepumuk, sehr geil!
Wenn ich die Rahmen bis Spalte I setzen will, hatte ich gedacht, ich ersetze die 5 einfach durch 9, aber das funktioniert nicht:
Public Sub Rahmen_setzen()
Dim enmBordersIndex As XlBordersIndex
With Range(Cells(12, 1), Cells(Rows.Count, 9).End(xlUp))
Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin, Color:=vbBlack)
For enmBordersIndex = xlInsideVertical To xlInsideHorizontal
With .Borders(enmBordersIndex)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbBlack
End With
Next
End With
End Sub
Ich dachte, die 5 steht für die Anzahl Spalten...
Das funktioniert aber nicht.
Was muss denn geändert werden, wenbn ich bis einschließlich Spalte I einrahmen will?
Danke
Axel
Anzeige
AW: VBA: befüllten Bereich einrahmen
26.02.2020 10:25:00
Nepumuk
Hallo Axel
in Spalte 5 wird die letzte benutze Zeile gesucht. Da in Spalte I nichts steht schlägt das natürlich fehl. Da geht dann so:
With Range(Cells(12, 1), Cells(Cells(Rows.Count, 5).End(xlUp).Row, 9))

Gruß
Nepumuk
gelöst
26.02.2020 11:05:38
Axel
Hallo Nepumuk,
ja perfekt.
Hier noch mal der ganze Code:
Option Explicit
Public Sub Rahmen_setzen()
Dim enmBordersIndex As XlBordersIndex
With Range(Cells(12, 1), Cells(Cells(Rows.Count, 5).End(xlUp).Row, 9))
Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin, Color:=vbBlack)
For enmBordersIndex = xlInsideVertical To xlInsideHorizontal
With .Borders(enmBordersIndex)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbBlack
End With
Next
End With
End Sub
Danke für alles!!!
Beste Grüße
Axel
Gruß
Axel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige