Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Drucklayout gestalten VBA

Betrifft: Drucklayout gestalten VBA von: Gerhard
Geschrieben am: 13.08.2008 21:30:06

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

  

Betrifft: AW: Drucklayout gestalten VBA von: Daniel
Geschrieben am: 13.08.2008 22:41:41

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


  

Betrifft: AW: Drucklayout gestalten VBA von: Gerhard
Geschrieben am: 13.08.2008 23:07:30

vielen vielen Dank Daniel...

Nuja... wenn ich ir da meinen Codesalat da ankucke... ist noch vieles zu lernen...

Nochmal THX!!!

Gruß Gerhard


 

Beiträge aus den Excel-Beispielen zum Thema "Drucklayout gestalten VBA"