Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1544to1548
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 Rahmenlinie einfügen

VBA Rahmenlinie einfügen
12.03.2017 20:03:23
lena
Hallo zusammen,
ich habe eine Frage.
Ich habe eine Excel Tabelle, in der die Zeilen- und Spaltenanzahl variiert.
Ich möchte nun ein VBA anwenden, welches folgendes ausführt:
In Spalte A soll immer wenn ein Eintrag (Nummer) steht über dieser Nummer die Rahmenlinie (oben) automatisch bis zur letzten Spalte (variabel) eingefügt werden.
In Spalte A ist zudem der Abstand zwischen den eingetragenen Nummern unterschiedlich. Mal 1, mal 2, mal 3, mal 4, mal 5 leere Zellen dazwischen.
Ich habe ein Beispiel Excel angehängt und dort auch schon die gewünschte obere Rahmenlinie eingefügt.
https://www.herber.de/bbs/user/112126.xlsx
Ich hoffe es kann mir jemand helfen diese Formatierung mittels VBA zu automatisieren.
Vielen vielen Dank & ich wünsche einen schönen Abend.
Lena

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Rahmenlinie einfügen
12.03.2017 22:45:34
Henner
Hallo Lena
Das geht wie folgt. Für die letzte benutzte Spalte im benutzten Bereich musst Du eine Function einbauen, die letzte Zeile kannst Du einfach ermitteln. Fertige Datei siehe unten. In der Beispieldatei Makro "Linien" aufrufen.

Function FindLetzte(mySH As Worksheet) As Range
Dim LRow As Long, LCol As Long
Dim A As Long
With mySH.UsedRange
On Error Resume Next
LRow = .Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
LRow = Application.Max(LRow, .Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious). _
Row)
If LRow = 0 Then LRow = 1
For A = .Columns(.Columns.Count).Column To .Columns(1).Column Step -1
LCol = mySH.Columns(A).Find("*", , xlValues, xlWhole, xlByRows, xlPrevious). _
Column
LCol = Application.Max(LCol, mySH.Columns(A).Find("*", , xlFormulas, xlWhole,  _
xlByRows, xlPrevious).Column)
If LCol > 1 Then: LCol = A: Exit For
Next A
If LCol = 0 Then LCol = 1
End With
Set FindLetzte = mySH.Cells(LRow, LCol)
End Function
Sub Linien()
Dim intLRow As Integer
Dim intLCol As Integer
intLRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Rows.Row
intLCol = FindLetzte(ActiveSheet).Column
For t = intLRow To 2 Step -1
If ActiveSheet.Cells(t, 1).Value  "" Then ActiveSheet.Range(Cells(t, 1), Cells(t, intLCol) _
).Borders(xlEdgeTop).LineStyle = xlContinuous
Next t
End Sub
Download:

Die Datei https://www.herber.de/bbs/user/112131.xlsm wurde aus Datenschutzgründen gelöscht


Funktioniert? Gruss Henner
Anzeige
KORREKTUR: VBA Rahmenlinie einfügen
12.03.2017 22:53:40
Henner
Hallo Lena
Kleine Korrektur: Dimensioniere LRow und LCol als Long - nicht Integer.
Korrigierte Version der Datei: https://www.herber.de/bbs/user/112133.xlsm

Dim lngLRow As Long
Dim lngLCol As Long
Funktioniert? Gruss Henner
AW: KORREKTUR: VBA Rahmenlinie einfügen
13.03.2017 18:37:55
Lena
Hallo Henner,
Vielen vielen Dank funktioniert perfekt. Super.
Danke für deine Hilfe.
Lg & schönen Abend,
Lena
Gerne, danke für die Rückmeldung. (owT)
13.03.2017 19:55:02
Henner
.
AW: VBA Rahmenlinie einfügen
12.03.2017 23:27:12
Luschi
Hallo lena list,
hier mal mein Versuch: https://www.herber.de/bbs/user/112134.xlsm
Starte dazu das Makro 'MachMal'.
Gruß von Luschi
aus klein-Paris
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige