Clever-Excel-Forum

Normale Version: mehrere Rahmen zeichnen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen Zusammen,

wie kann ich per VBA mehrere Rahmen (wie in der Tabelle) per Klick zeichnen?
Es können auch mal nur 3 oder 5 Rahmen sein.

Grüße,
Andreas
Eigentlich ein idealer Stoff für den Makrorekorder, um daran Code zu lernen.

OT: Übrigens: Rahmen funktioniert wunschgemäß bei Mehrfachselektionen. Sogar überschneidend, allerdings dann überlappend in Reihenfolge, nicht "transparent".
Ich möchte die Anzahl vorgeben. Wie man Rahmen zeichnet/erzeugt ist mir bekannt.

Worksheets("Tabelle1").Range("B6:D14").BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range("B17:D25").BorderAround ColorIndex:=1, Weight:=xlMedium
etc.

For i = 1 To 6     ????

oder

For i = 1 To 4

da brauche ich Hilfe.

Grüße, Andreas
Das stimmt nicht. Statt nur der 

Anzahl 

musst Du auch noch

Breite
Höhe
Abstand

der Rahmen angeben.
Dim Rahmen1, Rahmen2, Rahmen3, Rahmen4, Rahmen5, Rahmen6 As String

Rahmen1 = "B6:D14"
Rahmen2 = "B17:D25"
Rahmen3 = "B28:D36"
Rahmen4 = "B39:D47"
Rahmen5 = "B50:D58"
Rahmen6 = "B61:D69"

Worksheets("Tabelle1").Range(Rahmen1).BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range(Rahmen2).BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range(Rahmen3).BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range(Rahmen4).BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range(Rahmen5).BorderAround ColorIndex:=1, Weight:=xlMedium
Worksheets("Tabelle1").Range(Rahmen6).BorderAround ColorIndex:=1, Weight:=xlMedium


Hier ist jetzt die Breite, die Höhe und der Abstand fest definiert.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Meine Idee/Frage ist:  ich definiere nur einen Range-Bereich = z.B  "B6:D14" (Rahmengröße ist immer gleich),  Abstand sollen 2 Zellen nach unten sein.

Und nun noch die Anzahl, die gebraucht werden: 4 oder 6 oder...  (das der definierte Range-Bereich quasi über eine Schleife entsprechend der Anzahl dubliziert wird)   ?

Dim Anzahl as String
Dim Abstand as String
Dim Rahmengroesse as String

Abstand = "B15:D16"  'als Beispiel
Anzahl = "5" 'als Beispiel
Rahmengroesse = "B6:D14" 'als Beispiel


????

Grüße, Andreas
Hi

z.B.
Code:
Sub Rahmen_Zeichnen()
Dim Anzahl As Integer, Abstand As Integer, Rahmen1 As String, RNeu As String


Anzahl = 6
Abstand = 2
Rahmen1 = "I6:K14"
RNeu = Rahmen1

For i = 1 To Anzahl - 1
  RNeu = Range(RNeu).Offset(Range(RNeu).Rows.Count + Abstand).Address
  Rahmen1 = Rahmen1 & "," & RNeu
Next i
 
Sheets("Tabelle1").Range(Rahmen1).BorderAround ColorIndex:=1, Weight:=xlMedium
 
 
End Sub
Danke Elex, super!