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

Range dynamisch festlegen

Range dynamisch festlegen
02.11.2013 18:30:31
lupo
Hallo Forum.
Ich habe wieder mal eine neue Herausforderung und komme nicht weiter.
Ich habe eine Tabelle, die sich in der Zeilen und auch Spalten Zahl dynamisch ändern kann.
Nun möchte ich den Range ermitteln, damit ich ihn formatieren kann.
Folgendes habe ich schon:
Sub Rahmen_formatieren()
Dim Rahmen As Range
' Bereich festlegen
Set Rahmen =  ' Hier soll der Range dynamisch ermittelt werden
' Rahmen anwählen
Rahmen.Select
' Rahmen formatieren:
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous         ' Links
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous          ' Oben
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous       ' Unten
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous        ' Rechts
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous   ' Innen senkrecht
Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous ' Innen waagerecht
Range("A1").Select
End Sub
Kann mir dann bitte jemand weiterhelfen?
DANKE,
mfg
lupo

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

Betreff
Datum
Anwender
Anzeige
AW: Range dynamisch festlegen
02.11.2013 18:54:50
lupo
Hallo Hajo.
Danke für die schnelle Antwort.
Leider funktioniert "Sheets(1).UsedRange" nicht.
Evtl. liegt es dran, dass nicht alle Zellen genutzt werden.
Die Erste Spalte, die Text enthält ist A5 und die erste Zeile ist I5.
Der Bereich A1 bis H4 ist mehr oder weniger leer.
Gibt es noch eine andere Möglichkeit?
mfg lupo

Anzeige
AW: Range dynamisch festlegen
02.11.2013 19:11:44
Hajo_Zi
ich sehe den Code nicht. Bei mir geht es.
Sub n()
With Sheets(1).UsedRange
.Value = 1
End With
End Sub
Gruß Hajo

AW: Range dynamisch festlegen
02.11.2013 19:25:33
lupo
Ich habe mal ein Beispiel der Tabelle hoch geladen:
https://www.herber.de/bbs/user/87908.xls
Vielleicht wird dann meine Herausforderung klarer.
Die Anzahl der Projekte (Zeilen) ist dynamisch und wird automatisch aus einem anderen Programm übernommen.
Genauso ergeben sich die Kalenderwochen (Spalten) aus der Abfrage aus dem anderen Programm.
Daher sind die Zeilen und Spalten dynamisch und ich kann den Range nicht vorher ermitteln.
mfg lupo

Anzeige
Du solltest besser lesen und umsetzen ...
02.11.2013 19:34:00
Matthias
Hallo
Hajos Antwort war genau das was Du suchst:
Sub Rahmen_formatieren()
Dim Rahmen As Range
' Bereich festlegen
Set Rahmen = ActiveSheet.UsedRange ' Hier soll der Range dynamisch ermittelt  _
werden
With Rahmen
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous         ' Links
.Borders(xlEdgeTop).LineStyle = xlContinuous          ' Oben
.Borders(xlEdgeBottom).LineStyle = xlContinuous       ' Unten
.Borders(xlEdgeRight).LineStyle = xlContinuous        ' Rechts
.Borders(xlInsideVertical).LineStyle = xlContinuous   ' Innen senkrecht
.Borders(xlInsideHorizontal).LineStyle = xlContinuous ' Innen waagerecht
End With
Set Rahmen = Nothing
End Sub
Gruß Matthias

Anzeige
AW: Range dynamisch festlegen
02.11.2013 19:46:13
lupo
Hallo zusammen.
Danke für die Unterstützung.
Warum der Ansatz von Hajo nicht geklappt hat oder ich es nicht geblickt habe weiss ich nicht.
Jetzt scheint es zu funktionieren.
mfg lupo

AW: Range dynamisch festlegen
02.11.2013 18:36:45
Daniel
Hi
wenn die Zellen lückenlos zusammenhängen, am einfachsten so:
set Rahmen = Range("A1").Currentregion
kleiner Tip noch, lass das Selection weg und bearbeite die Zellen direkt, ohne sie zu selektieren:
Rahmen.Borders(xlEdgeLeft).LineStyle = xlContinuous
warum und wieso steht hier:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß Daniel

Anzeige
AW: Du verwechselst die Beiträge von Hajo & lupo
02.11.2013 19:02:43
Hajo
Ja, irgendwie bin ich verwirrt.
Der Makrorekorder hilft mir tatsächlich nicht weiter, auch wenn ich ihn als Basis genutzt habe.
Ich möchte den Bereich von A1 bis zum Schnittpunkt der letzten Zeile und Spalte mit Inhalt ermitteln.
Wobei der Bereich A1 bis H4 mehr oder weniger leer ist und daher zur Rangeermittlung nicht taugt.
Gibt es da eine andere Möglichkeit?
mfg torsten

Anzeige
Du solltest gezielter Fragen ...
02.11.2013 19:25:23
Matthias
Hallo
Zitat:

Wobei der Bereich A1 bis H4 mehr oder weniger leer ist und daher zur Rangeermittlung nicht taugt.
Die Aussage ist aber falsch
Du kannst wie von Hajo vorgeschlagen UsedRange benutzen oder Daniels Vorschlag mit CurrentRegion.
Und so kannst Du es Tetsen

Sub tt1()
MsgBox Sheets(1).UsedRange.Address
End Sub
Sub tt2()
MsgBox Sheets(1).Range("A1").CurrentRegion.Address
End Sub
Wobei beide Varianten durchaus unterschiedliche Adressen wiedergeben,
wenn z,B. die Zeile 4 im Bereich bereits einmal genutzt wurde und dann deren Inhalt wieder gelöscht wurde.
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige