Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Drucklayout gestalten VBA

Drucklayout gestalten VBA
13.08.2008 21:30:06
Gerhard
Hallo...
Ich wollte per UF Terminkärtchen erstellen und diese auf ein Tabellenblatt zum ausdrucken einfügen.
Gedacht habe ich mir es in inetwa so:
Erster Eintrag:
Erste freie Zelle, in der ersten freien Spalte Daten wie in meinem Beispiel eintragen.
den zweiten eintrag wollte ich daneben haben, also in Spalte E den nächsten in Spalte I und den letzten in Spalte M
Jetzt soll dann in der nächsten freien Zeile in Spalte A weiter eingetragen werden, wieder bis M und dann wieder die nächste freie Zeile in Spalte A usw.
Aber irgendwie fehlt mir dafür der Durchblick. Ich habe es versucht aber ich komm ned dahinter wie ich das lösen könnte. Weil ne kleine Schwierigkeit ist nochmals dabei.
Bei Klick auf eintragen, soll ermittelt werden, welche Farbe gewählt wurde und die Felder in denen Bezeichnung und Teilenummer eingetragen wurden mit einem Muster eingefärbt werden.
Kann mir dabei jemand behilflich sein? Das wäre super!!!
Hier mal die Datei, was ich bis jetzt zusammengemurkst habe...
https://www.herber.de/bbs/user/54589.xls
LG Gerhard

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drucklayout gestalten VBA
13.08.2008 22:41:41
Daniel
Hallo
hier der Code zum Eintragen der Daten.

Private Sub comB_Eintragen_Click()
Dim E_F_Z As Long
Dim LS As Long
Dim Zelle As Range
Dim Farbe As Long
'--- Freie Felder finden
For E_F_Z = 2 To 80 Step 4
For LS = 1 To 13 Step 4
If Sheets("PLANUNGSKARTEN").Cells(E_F_Z, LS) = "" Then Exit For
Next
If Sheets("PLANUNGSKARTEN").Cells(E_F_Z, LS) = "" Then Exit For
Next
If E_F_Z > 80 Then
MsgBox "Alle Felder belegt"
Exit Sub
End If
'--- gewählte Farbe festellen
If UF_EINGABE.opt_gruen.Value Then Farbe = 35
If UF_EINGABE.opt_gelb.Value Then Farbe = 36
If UF_EINGABE.opt_grau.Value Then Farbe = 15
If UF_EINGABE.opt_rot.Value Then Farbe = 38
'--- erste zwei Zeilen färben
With Cells(E_F_Z, LS).Resize(2).Interior
.Pattern = xlLightDown
.PatternColorIndex = Farbe
End With
'--- Texte eintragen
Sheets("PLANUNGSKARTEN").Cells(E_F_Z, LS) = txt_Bezeichung.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 1, LS) = txt_Teilenummer.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 2, LS) = txt_Auftragsnummer.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 3, LS + 2) = txt_Endtermin.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 2, LS + 2) = txt_Folgemaschine.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 3, LS) = txt_Arbeitsgang.Text
Sheets("PLANUNGSKARTEN").Cells(E_F_Z + 3, LS + 3) = txt_Zeit.Text
End Sub


Das suchen des ersten Freien Feldes erfolgt in zwei For-Next-Schleifen, die die Felder durchsuchen und stoppen, sobald ein freies Feld gefunden wird.
dazu ist allerdings erforderlich, daß die Kärtchen IMMER im 4 Zellen-Abstand beginnen, dh die beiden Leerzeilen, die eingefügt hast beim seitenwechsel müssen raus, die kärtchen müssen hier ohne Unterbrechung weiter gehen.
dafür kannst du an dieser Stelle einen über EINFÜGEN - SEITENUMBRUCH an dieser Stelle einen Seitenumbruch erzwingen, (dazu vorher die Zeile unterhalb des gewünschten Zeilenumbruchs markieren)
auch das Färben habe ich durch eine zusätliche Variable etwas vereinfacht.
gruß, Daniel

Anzeige
AW: Drucklayout gestalten VBA
13.08.2008 23:07:30
Gerhard
vielen vielen Dank Daniel...
Nuja... wenn ich ir da meinen Codesalat da ankucke... ist noch vieles zu lernen...
Nochmal THX!!!
Gruß Gerhard

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige