Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

mehrere Rahmen zeichnen?
#1
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


Angehängte Dateien
.xlsm   mehrere Rahmen zeichnen.xlsm (Größe: 22,69 KB / Downloads: 3)
Antworten Top
#2
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".
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#3
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
Antworten Top
#4
Das stimmt nicht. Statt nur der 

Anzahl 

musst Du auch noch

Breite
Höhe
Abstand

der Rahmen angeben.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#5
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
Antworten Top
#6
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Andreas-Frage
Antworten Top
#7
Danke Elex, super!
Antworten Top


Gehe zu:


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