Hilfe

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Label TextBox MsgBox
Bild

Betrifft: Hilfe
von: Armbruster
Geschrieben am: 25.11.2015 17:42:24

Ich habe noch eine Frage an die community.
Ich habe eine userform mit der ich daten mit Hilfe von Textboxen in Tabellenblätter eintragen lasse mit folgendem Code.
Private Sub cmdEintragen_Click()
Dim intErsteLeereZeile As Long
intErsteLeereZeile = ActiveSheet.Range("B39").End(xlUp).Row + 1

If intErsteLeereZeile > 5 And intErsteLeereZeile <= 39 Then


ActiveSheet.Cells(intErsteLeereZeile, 2).Value = Me.DTPicker1.Value

'' MsgBox intErsteLeereZeile
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.cboKostenstellen.Value
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = Me.txtGeplanteAusgaben.Value
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtSonstigeAusgaben.Value
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.txtEinnahmen.Value
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = Me.txtGeldtransfer.Value

End If

''MsgBox intErsteLeereZeile

Unload frmBank
frmBank.Show
End If
Nun will ich, damit ich nicht immer in die Tabelle schauen muss, die EIntragungen gleichzeitig innerhalb der Userform noch mal eintragen. Welches Steuerelemt kann ich dafür nehmen bzw. ist das überhaupt umsetzbar?
Gruß Ich hoffe auf eure Unterstürzung

Bild

Betrifft: AW: Hilfe
von: Sepp
Geschrieben am: 25.11.2015 19:09:09
Hallo ?,
innerhalb des UF kannst du auf das Schlüsselwort 'Me' verzichten.
Verwende ein Label-Steuerelement, z. B. 'Label1'.


If intErsteLeereZeile > 5 And intErsteLeereZeile <= 39 Then
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = DTPicker1.Value
'' MsgBox intErsteLeereZeile
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = cboKostenstellen.Value
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = txtGeplanteAusgaben.Value
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = txtSonstigeAusgaben.Value
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = txtEinnahmen.Value
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = txtGeldtransfer.Value
'Ausgabe im Label
Label1 = cboKostenstellen.Value & vblf & txtGeplanteAusgaben.Value & _
  vblf & txtSonstigeAusgaben.Value & vblf & txtEinnahmen.Value & vblf & _
    txtGeldtransfer.Value
End If
Gruß Sepp


Bild

Betrifft: AW: Hilfe
von: Armbruster
Geschrieben am: 26.11.2015 16:11:02
Hallo Sepp,
vielen Dank für den Tipp aber leider funktioniert der Code nicht bzw. es erscheint nichts im Label wenn ich eine Eingabe mache. Der Sinn ist, dass ich mehre Buchungen eingebe und alle in der UF angezeigt werden so das ich bevor ich sie an das Tabellenblatt übergebe noch mal überprüfen kann.
Gruß Felix

Bild

Betrifft: AW: Hilfe
von: Sepp
Geschrieben am: 26.11.2015 17:52:08
Hallo Felix,
nimm zur Datenprüfung eine MsgBox.

Private Sub cmdEintragen_Click()
Dim intErsteLeereZeile As Long
Dim strMsg As String

strMsg = "Überprüfen Sie Ihre Angaben!" & vbLf & vbLf & String(35, "-") & vbLf
strMsg = strMsg & "Datum:" & String(10, " ") & vbTab & Format(DTPicker1.Value, "dd.mm.yyyy") & vbLf
strMsg = strMsg & "Kostenstelle:" & String(3, " ") & vbTab & cboKostenstellen.Value & vbLf
strMsg = strMsg & "Gepl. Ausgaben: " & vbTab & txtGeplanteAusgaben.Value & vbLf
strMsg = strMsg & "Sonst. Ausgaben:" & vbTab & txtSonstigeAusgaben.Value & vbLf
strMsg = strMsg & "Einnahmen:" & String(6, " ") & vbTab & txtEinnahmen.Value & vbLf
strMsg = strMsg & "Transfer:" & String(7, " ") & vbTab & txtGeldtransfer.Value & vbLf
strMsg = strMsg & String(35, "-") & vbLf & vbLf & "Sollen diese Daten eingetragen werden?"

If MsgBox(strMsg, vbQuestion + vbYesNo, "Überprüfung") = vbYes Then
  
  intErsteLeereZeile = ActiveSheet.Range("B39").End(xlUp).Row + 1
  
  If intErsteLeereZeile > 5 And intErsteLeereZeile <= 39 Then
    
    ActiveSheet.Cells(intErsteLeereZeile, 2).Value = DTPicker1.Value
    ActiveSheet.Cells(intErsteLeereZeile, 3).Value = cboKostenstellen.Value
    ActiveSheet.Cells(intErsteLeereZeile, 6).Value = txtGeplanteAusgaben.Value
    ActiveSheet.Cells(intErsteLeereZeile, 5).Value = txtSonstigeAusgaben.Value
    ActiveSheet.Cells(intErsteLeereZeile, 4).Value = txtEinnahmen.Value
    ActiveSheet.Cells(intErsteLeereZeile, 7).Value = txtGeldtransfer.Value
    
  End If
  
  Unload frmBank
  
  frmBank.Show
  
End If

End Sub

Gruß Sepp


Bild

Betrifft: AW: Hilfe
von: Armbruster
Geschrieben am: 28.11.2015 10:55:56
Vielen Danke das war guter Tipp ist echt gut aus!
wenn ich jetzt aber 20 Belege eingeben muss dann wäre es rein praktisch gesehen, leichter wenn ich alle 20 belege eingebe und dann die eingabe überprüfen könnte und ggf. Änderungen vornehmen kann.
Wenn das nicht möglich ist reicht die variante von dir aus, die wirklich richtig gut ist.
Gruß Felix

Bild

Betrifft: AW: Hilfe
von: Sepp
Geschrieben am: 28.11.2015 11:53:27
Hallo Felix,
das war aber nicht deine Frage!
Das kann ich so nicht beantworten, weil ich nicht weiß, was genau du in deiner Datei machst.
Da müsste man sich schon genauer überlegen, wie man das bewerkstelligt, eine MsgBox ist dazu sicher ungeeignet. Das wird für eine Forumsfrage aber wahrscheinlich zu umfangreich!

Gruß Sepp


Bild

Betrifft: AW: Hilfe
von: Armbruster
Geschrieben am: 28.11.2015 16:55:26
Hallo Sepp,
dann verwende ich die msgbox. Vielen Dank für deine Hilfe.
gruß Felix

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Addin in Excel 2003 mit Alt + F8 aktivieren"