Office - Word, Excel und Co. 9.744 Themen, 41.408 Beiträge

Excel: Mittels Userform (VBA) Daten in eine Tabelle einfügen (mit Rahmen)

minbari / 33 Antworten / Flachansicht Nickles

Moin,

ich bin gerade dabei, eine Excel-Tabelle zu erstellen.
Mittels einer Eingabemaske (Userform) werden die Daten in eine Tabelle eingefügt.

Ich habe soweit alles fertig. Das Einzige, was noch nicht funktioniert ist, dass die eingetragenen Daten in eine Zelle mit Rahmen eingefügt werden.

Es geht hier speziell um den Rahmen!

Folgenden Code verwende ich:

Private Sub Abbrechen_Button_Click()

' Eingabefenster schließen

Unload Eingabemaske

End Sub


Private Sub Eintragen_Button_Click()

' Eingaben der Maske in das Fahrtenbuch übernehmen

Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(65536, 2).End(xlUp).Row + 1
Ws.Cells(StartZeile, 2) = CDate(Text_Datum.Text)
Ws.Cells(StartZeile, 3) = Zweck
Ws.Cells(StartZeile, 4) = Fahrzeug
Ws.Cells(StartZeile, 5) = Begleitung
Ws.Cells(StartZeile, 6) = Bemerkung

' nach Datum sortieren

Range("B6:F3300").Sort Key1:=Range("B7")

' Eingabemaske schließen

Unload Eingabemaske

End Sub


Private Sub UserForm_Initialize()

'Automatischer Eintrag Datum

Eingabemaske.Text_Datum.Value = Date

'Dropdownmenü Begleitung

Eingabemaske.Begleitung.RowSource = "Daten!$A$2:$A$8"

'Dropdownmenü Fahrzeug

Eingabemaske.Fahrzeug.RowSource = "Daten!$C$2:$C$15"

'Dropdownmenü Bemerkung

Eingabemaske.Bemerkung.RowSource = "Daten!$E$2:$E$9"

'Dropdownmenü Zweck der Fahrt

Eingabemaske.Zweck.RowSource = "Daten!$G$2:$G$32"


End Sub

Ich benutze Excel 2016.


Betreffen würde es B6:F6, wobei dies natürlich veränderlich ist, da immer neue Einträge eine Zeile tiefer ansetzen.

Habt Ihr eine Idee?

Danke für die Hilfe!

minbari

bei Antwort benachrichtigen
hddiesel minbari „Genau das wollte ich nicht. Das wird eine Jahrestabelle mit geschätzten 3000-4000 Eintragungen.“
Optionen

Hallo minbari,

warum fügst du die Rahmen, nicht per bedingter Formatierung ein?

Formel zur Ermittlung der zu formatierenden Zellen verwenden
=$B2>0

Deinen Wunschrahmen / Außen wählen

Wird angewendet auf z.B
=$B$2:$F$4000

Alle Zeilenbereiche von Spalte B bis Spalte F erhalten einen Rahmen, wenn die Zelle in der Spalte B > 0 ist.

Oder per VBA

Sub Rahmen_Bedingte_Formatierung()

    ' Rahmen im Bereich B:F, bis zur letzen Zeile, in welcher die Zelle in Spalte B > 1
    With ActiveSheet.Range("B2:F" & ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=$B2>0"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).Borders(xlLeft).LineStyle = xlContinuous
        .FormatConditions(1).Borders(xlRight).LineStyle = xlContinuous
        .FormatConditions(1).Borders(xlTop).LineStyle = xlContinuous
        .FormatConditions(1).Borders(xlBottom).LineStyle = xlContinuous
        .FormatConditions(1).StopIfTrue = False
    End With
End Sub

Windows 10 Pro 64-Bit, 22H2: MS Office Pro Plus 2016 32-Bit: Mein Motto: Leben und leben lassen: Gruss Karl
bei Antwort benachrichtigen