Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Code kürzen für Rahmenmuster stetzen

Code kürzen für Rahmenmuster stetzen
21.02.2020 09:35:27
Dieter(Drummer)
Guten Morgen Spezialisten/innen.
In der Musterdatei können per Code diverse Rahmenmuster in Zellen gesetzt werden. Die entsprechenden Codes funktionieren. Die Codes sind wohl nicht professionell, entsprechend zu lang und hoffe, dass es einen kürzeren Code dafür gibt, an dem ich auch lernen kann.
Was macht der Code:
In den Zellen ab B7:B31, in jeweils 2 Zellen Sprung, werden per Klick diverse Musterrahmen gesetzt. Also B7, B9, B11 ... bis B31.
Musterdatei: https://www.herber.de/bbs/user/135341.xlsm
Mit der Bitte um Hilfe.
Gruß, Dieter(Drummer

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code kürzen für Rahmenmuster stetzen
21.02.2020 09:49:58
Werner
Hallo Dieter,
ohne Select. Da du die Zellen explizit ansprichst, brauchst du doch das ganze Plus2 doch nicht. Wenn sich der Code auf dem aktiven Blatt auswirken soll, dann brauchst du auch die ganzen ActiveSheet nicht.
Beim Löschen der Rahmen würde ich mit einer Schleife im Step 2 arbeiten. Dann würden Rahmen, die u.U. in den geraden Zeilen dazwischen, also 6, 8, 10... davon unberührt bleiben.
Sub Rahmen_setzen() 'Ab B7
Application.ScreenUpdating = False
Range("B7").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlContinuous, Weight:=xlHairline
Range("B9").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDot, Weight:=xlThin
Range("B11").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDashDotDot, Weight:=xlThin
Range("B13").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDashDot, Weight:=xlThin
Range("B15").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDashDot, Weight:=xlThin
Range("B17").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlContinuous, Weight:=xlThin
Range("B19").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDashDotDot, Weight:=xlMedium
Range("B21").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlSlantDashDot, Weight:=xlMedium
Range("B23").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDashDot, Weight:=xlMedium
Range("B25").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDash, Weight:=xlMedium
Range("B27").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlContinuous, Weight:=xlMedium
Range("B29").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlContinuous, Weight:=4 '4 =  _
xlThik
Range("B31").BorderAround ColorIndex:=xlAutomatic, LineStyle:=xlDouble, Weight:=4 '4 = xlThik
End Sub
Sub Rahmen_loesch()
Dim i As Long
Application.ScreenUpdating = False
For i = 5 To 31 Step 2
Cells(i, 2).Borders.LineStyle = xlNone
Next i
End Sub
Gruß Werner
Anzeige
AW: Code kürzen für Rahmenmuster setzen
21.02.2020 10:05:27
Dieter(Drummer)
Danke Werner,
für Hinweis und gekürzten Code. Ursächlich wollte ich ja nicht jedesmal die einzelnen Zellen mit Range ansprechen, aber da fand ich keine Lösung, deshalb den "Plus2" Code.
Am Besten wären, wenn z.B. Plus2 mit einer Startzelle beginnt und dann im 2-Zellensprung die einzelnen, entsprechenden Rahmen gestzt werden.
Hättest Du da auch einen Lösungscode?
Gruß, Dieer(Drummer)
AW: Code kürzen für Rahmenmuster setzen
21.02.2020 11:40:40
Werner
Hallo Dieter,
meinst du so? Die Werte holt er sich aus den Spalten D und F.
Sub Rahmen_setzen() 'Ab B7
Dim i As Long
For i = 5 To 31 Step 2
Cells(i, "B").BorderAround ColorIndex:=xlAutomatic, LineStyle:=CLng(Cells(i, "D")), Weight:= _
CLng(Cells(i, "F"))
Next i
End Sub
Gruß Werner
Anzeige
AW: Code kürzen für Rahmenmuster setzen
21.02.2020 12:38:14
Dieter(Drummer)
Hallo Werner,
Danke für diesen kurzen, prima funtionierenden Code.
Alledings hatte ich die Vorstellung, dass die Rahmenangaben nicht aus den Nachbarzellen geholt werden, sondern aus den Angaben meinen Angaben in den Range-Zeilen. So müssen ja die erforderlichen Rahmenangaben in anderen Zellen vorhanden sein, was ich eigentlich nicht wollte. Ich hatte sie dort angelegt, damit ich weiß, welche Angaben ich im Code einsetzen musste.
Falls Du da auch eine Lösung hast, wäre das prima.
Gruß, Dieter(Drummer)
AW: Code kürzen für Rahmenmuster stetzen
21.02.2020 12:56:48
Rudi
Hallo,
so?
Sub Rahmen()
Dim i As Integer, vntStyle, vntWeight
vntStyle = Array(, -4142, 1, -4118, 5, 4, -4115, 1, 5, 13, 4, -4115, 1, 1, -4119)
vntWeight = Array(, 2, 1, 2, 2, 2, 2, 2, -4138, -4138, -4138, -4138, -4138, 4, 4)
For i = 1 To UBound(vntStyle)
Cells(i * 2 + 3, 2).BorderAround _
ColorIndex:=xlAutomatic, _
LineStyle:=vntStyle(i), _
Weight:=vntWeight(i)
Next
End Sub

Gruß
Rudi
Anzeige
AW: Code kürzen für Rahmenmuster stetzen
21.02.2020 13:07:53
Dieter(Drummer)
Danke Rudi,
für die kurze und perfekte Lösung mit den jeweiligen Wertanageben der Rahmen.
Der Code geht über mein VBA-Wissen hinaus.
Was bedeutet vnt?
Herzlichen Dankt und Gruß,
Dieter(Drummer)
AW: Code kürzen für Rahmenmuster stetzen
21.02.2020 13:17:06
Rudi
Hallo,
vnt ist nur ein Kürzel für den Datentyp Variant. Hat weiter keine Bedeutung.
Gruß
Rudi
AW: Danke Rudi für Erklärung. Gruß. owT
21.02.2020 13:28:28
Dieter(Drummer)
AW: Code kürzen für Rahmenmuster stetzen
21.02.2020 18:56:39
robert
..jetzt hast Du einen kurzen Code und verstehst ihn nicht- Super...
AW: Es ging nur um "vnt". Sermon robert! ...
22.02.2020 09:04:13
Dieter(Drummer)
... alles andere konnte ich verstehen.
Sparen sie sich doch ihre dusseligen Anmerkungen! Aber offensichtlich brauchen sie das ...
AW: Es ging nur um "vnt". Sermon robert! ...
22.02.2020 09:56:15
Daniel
Hier gehts nur darum, den Variablentyp schon im Variablennamen mit anzuzeigen.
Kann man machen, muss man aber nicht.
Wenn man es macht, steht
vnt für Variante
lng für Long
str für String
Usw
Gruß Daniel
Anzeige
AW: Danke Daniel für Erklärung. Gruß, owT
22.02.2020 10:29:17
Dieter(Drummer)
Der Code geht über mein VBA-Wissen hinaus.
22.02.2020 11:28:06
robert
..wie verstehst Du diese Meldung?
Da sieht man mal wieder, ...
22.02.2020 14:07:05
Luc:?
…robert (& Dieter),
wie die sinnlose dirty UN-Variante Leute verwirren kann (vor allem Anfänger). Entweder UN richtig oder gar nicht. Eine Variant-Variable auch noch extra als solche zu kennzeichnen, obwohl das der VB-Standard bei Fehlen expliziter Deklaration ist…
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige