Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Werte aus Tabelle in Userform zurückgeben
04.05.2007 13:53:57
Peter
Hallo alle zusammen,
über eine Userform "frmEingabe_neue_Zahlung" gebe ich bestimmte Werte in eine Tabelle ein.
Über eine andere Userform "frmZahlung_aendern", die genauso aufgebaut ist wie die zur Eingabe, möchte ich die Werte der markierte Zeile in den dafür bestimmten (wie in der Eingabe-Userform) Textfeldern und Comboboxen zurückgeben lassen, verändern können und wieder in die Zellen übertragen.
So kann ich dann, gegebenen Falls die Eintragungen jeder Zeile über eine Userform nachträglich ändern.
Problem ist, daß die Textfelder in der Userform keinen festen Zellen zugeordnet sind, sondern einige wenn dann Abfragen durchlaufen werden müssen. Für die Eingabe ist das alles geregelt. Wie ich das in "umgekehrter Richtung" machen soll weiß ich nicht. Im Makro "UserForm_Initialize()" habe ich einiges versucht, bekomme es aber nicht hin (zu komplex für meine VBA-Kenntnisse).
Kann mir jemand helfen?
Meine Datei:

Die Datei https://www.herber.de/bbs/user/42242.xls wurde aus Datenschutzgründen gelöscht


Mein Code:
Option Explicit

Private Sub cboArt_AfterUpdate()
OK_True
End Sub



Private Sub cboAusgang_Eingang_Gesellschaft_Konto_AfterUpdate()
OK_True
End Sub



Private Sub cboGesellschaft_Konto_AfterUpdate()
OK_True
End Sub



Private Sub cboGesellschaft_Konto_Change()
Select Case cboGesellschaft_Konto.Text
Case "AS/Allgemeines Lewa", "AW/Allgemeines Lewa", _
"AW/Allgemeines Euro", "AW/Treuhand Lewa", "AW/Treuhand Euro"
txtBetrag_MwSt.Text = ""
txtBetrag_MwSt.Enabled = False
txtBetrag_MwSt.BackColor = 14737632
Case Else
txtBetrag_MwSt.Enabled = True
txtBetrag_MwSt.BackColor = &H80000005
End Select
End Sub



Private Sub cmdAbbrechen_Click()
Unload Me
End Sub



Private Sub cmdOK_Click()
Dim cell As Range
Dim a As Long
Dim lbMsg As Byte
SpeedUp (True)
ActiveSheet.Unprotect Password:="Peter"
If Not IsDate(txtDatum.Text) = True Then
lbMsg = MsgBox("Geben Sie ein gültiges Datum ein", vbExclamation, "falsche Eingabe") _
txtDatum.Text = ""
txtDatum.SetFocus
cmdOK.Enabled = False
Exit Sub
End If
If Not IsDate(txtfaellig_zum.Text) = True Then
lbMsg = MsgBox("Geben Sie ein gültiges Datum ein", vbExclamation, "falsche Eingabe") _
txtfaellig_zum.Text = ""
txtfaellig_zum.SetFocus
cmdOK.Enabled = False
Exit Sub
End If
If cboAusgang_Eingang_Gesellschaft_Konto.Text = "Ausgang" Then
If Val(txtBetrag_Gesellschaft_Konto.Text) > 0 Then
lbMsg = MsgBox("Geben Sie einen negativen Wert ein", vbExclamation, " _
falsche Eingabe")
txtBetrag_Gesellschaft_Konto.Text = ""
txtBetrag_Gesellschaft_Konto.SetFocus
cmdOK.Enabled = False
Exit Sub
End If
If Val(txtBetrag_MwSt.Text)  0 Then
lbMsg = MsgBox("Geben Sie einen negativen Wert oder 0 ein", vbExclamation, " _
falsche Eingabe")
txtBetrag_MwSt.Text = ""
txtBetrag_MwSt.SetFocus
cmdOK.Enabled = False
Exit Sub
End If
End If
Range("A:A").Find("", after:=[A7]).Activate
'ActiveCell.Offset(-1, 0).EntireRow.Copy Destination:=ActiveCell
ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants).ClearContents
ActiveCell.Value = CDate(Me.txtDatum)
ActiveCell.Offset(0, 1).Value = CDate(Me.txtfaellig_zum)
ActiveCell.Offset(0, 2).Value = Me.cboArt
ActiveCell.Offset(0, 3).Value = Me.txtGegenseite
ActiveCell.Offset(0, 4).Value = Me.txtZahlungsgrund
If Me.cboGesellschaft_Konto = "DA/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 5).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 6).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 13).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 14).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Kontokorrent Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 17).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Kontokorrent Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 18).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Kontokorrent Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 21).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Kontokorrent Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 22).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Treuhand Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 25).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Treuhand Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 26).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Treuhand Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 29).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 10).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "DA/Treuhand Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 30).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 9).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "AS/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 33).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AS/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 34).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "LB/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 37).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 42).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LB/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 38).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 41).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LB/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 45).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 42).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LB/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 46).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 41).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LHB/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 49).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 54).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LHB/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 50).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 53).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LHB/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 57).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 54).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "LHB/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 58).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
ActiveCell.Offset(0, 53).Value = CDec(Me.txtBetrag_MwSt)
End If
If Me.cboGesellschaft_Konto = "AW/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 61).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Allgemeines Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 62).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 65).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Allgemeines Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 66).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Treuhand Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 69).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Treuhand Lewa" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 70).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Treuhand Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang" Then
ActiveCell.Offset(0, 73).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Treuhand Euro" And Me. _
cboAusgang_Eingang_Gesellschaft_Konto = "Eingang" Then
ActiveCell.Offset(0, 74).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
Unload Me
Range("A7:CM2000").Sort Key1:=Range("A7"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns(1).Find(CDate(Me.txtDatum)).Select
ActiveSheet.Protect Password:="Peter"
SpeedUp (False)
End Sub



Private Sub txtBetrag_Gesellschaft_Konto_AfterUpdate()
OK_True
End Sub



Private Sub txtBetrag_MwSt_AfterUpdate()
OK_True
End Sub



Private Sub txtDatum_AfterUpdate()
OK_True
End Sub



Private Sub txtfaellig_zum_AfterUpdate()
OK_True
End Sub



Private Sub txtGegenseite_AfterUpdate()
OK_True
End Sub



Private Sub txtZahlungsgrund_AfterUpdate()
OK_True
End Sub



Private Sub UserForm_Initialize()
Me.txtDatum = ActiveCell.Columns(1)
Me.txtfaellig_zum = ActiveCell.Columns(2)
With Me.cboArt
.AddItem "-"
.AddItem "-a"
.AddItem "-/+"
.AddItem "+"
.AddItem "+/-"
.AddItem "+a"
End With
Me.cboArt = ActiveCell.Columns(3)
Me.txtGegenseite = ActiveCell.Columns(4)
Me.txtZahlungsgrund = ActiveCell.Columns(5)
With Me.cboGesellschaft_Konto
.AddItem "DA/Allgemeines Lewa"
.AddItem "DA/Allgemeines Euro"
.AddItem "DA/Kontokorrent Lewa"
.AddItem "DA/Kontokorrent Euro"
.AddItem "DA/Treuhand Lewa"
.AddItem "DA/Treuhand Euro"
.AddItem "AS/Allgemeines Lewa"
.AddItem "LB/Allgemeines Lewa"
.AddItem "LB/Allgemeines Euro"
.AddItem "LHB/Allgemeines Lewa"
.AddItem "LHB/Allgemeines Euro"
.AddItem "AW/Allgemeines Lewa"
.AddItem "AW/Allgemeines Euro"
.AddItem "AW/Treuhand Lewa"
.AddItem "AW/Treuhand Euro"
End With
Me.cboGesellschaft_Konto = "Test" 'ActiveCell.Find("*", after:=Columns(5))
With Me.cboAusgang_Eingang_Gesellschaft_Konto
.AddItem "Ausgang"
.AddItem "Eingang"
End With
Me.cboAusgang_Eingang_Gesellschaft_Konto = "Ausgang"
Me.txtBetrag_Gesellschaft_Konto = Empty
Me.txtBetrag_MwSt = Empty
End Sub


Danke im Voraus
Grüße aus Berlin

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Tabelle in Userform zurückgeben
04.05.2007 15:29:29
Beni
Hallo Peter,
da würde ich die Ds mit einer fortlaufender Nr versehen.
Siehe Beispiel
Gruss Beni
https://www.herber.de/bbs/user/42244.xls

AW: Werte aus Tabelle in Userform zurückgeben
04.05.2007 16:48:00
Peter
Hallo Beni,
wie sollen mir in diesem Fall fortlaufende Nr. helfen?
Meine Userform hat keine Listbox in der man den betreffenden Datensatz markiert. Bei mir muß man erst eine Zeile (Datensatz) markieren, befor die Userform erscheint. Somit weiß Excel schon in welcher Zeile ich mich befinde. Der Code muß dann "nur" noch die Zeile ab Spalte 5 nach Werten (keine Formeln) durchsuchen.
Beispiel für Teil des Codes:
1.
wenn er in Spalte 6 oder 7 einen Wert findet muß der Kontoname "DA/Allgemeines Lewa" in der Combobox "cboGesellschaft_Konto" erscheinen
2.
wenn der Wert in 6 oder 7 > 0 ist dann muß in "cboAusgang_Eingang_Gesellschaft_Konto" das Wort "Eingang" erscheinen und bei 3.
der Wert aus Spalte 6 oder 7 muß dann im Textfeld "txtBetrag_Gesellschaft_Konto" erscheinen
4.
zusätzlich kann in Salte 10 oder 11 auch ein Wert stehen der in Textfeld "txtBetrag_MwSt" erscheinen muß
5.
wenn ich mit "cmdOK" bestätige müssen die Werte in den oben genannten Zelle gelöscht werden und die Änderungen in die betreffenden Zellen übertragen werden (den code für das Eintragen habe ich schon)
Kannst du mir den Code an diesem Beispiel einbauen. Die restlichen Spalten kann ich dann bestimmt selbst einbauen.
Danke
Grüße aus Berlin

Anzeige
AW: Werte aus Tabelle in Userform zurückgeben
05.05.2007 12:12:00
Peter
Hallo Beni,
funktioniert alles mit der Übername in die Userform.
Problem jetzt ist, daß der Commandbutton "cmdOK" nicht auf Enabled = True wird, er bleibt, obwohl in allen Feldern Eintragungen gemacht wurden auf False. Ich kann also nicht den Code zur Datenübername in die Zelle starten. Findest du den Fehler?
Danke
Grüße aus dem sonnigen Berlin

AW: Werte aus Tabelle in Userform zurückgeben
06.05.2007 16:20:54
Beni
Hallo Peter,
ich habe einiges geändert, z.B. ActiveCell,Offset(0, 9) gegen Cells(z, 10)
Gruss Beni
https://www.herber.de/bbs/user/42289.xls

Anzeige
AW: Werte aus Tabelle in Userform zurückgeben
06.05.2007 18:20:15
Peter
Hallo Beni,
ich habe nur noch "ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants).ClearContents"
eingefügt. Ansonsten funktioniert alles. Kannst du mir noch sagen, was du gemacht hast, damit damit "OK" True wird.
Was hast du sonst noch alles geändert und was bewirken die Änderungen?
Danke
Grüße aus Berlin

AW: Werte aus Tabelle in Userform zurückgeben
07.05.2007 09:02:00
Beni
Hallo Peter,
ich habe das OK_True ins Formular gestzt,

Private Sub OK_True()
cmdOK.Enabled = True
Dim Ob As MSForms.Control
For Each Ob In Controls
If TypeOf Ob Is MSForms.TextBox Then If Ob.Value = "" Then cmdOK.Enabled = False
If TypeOf Ob Is MSForms.ComboBox Then If Ob.Value = "" Then cmdOK.Enabled = False
Next Ob
If cmdOK.Enabled = True Then cmdOK.SetFocus
End Sub


zuerst wird cmdOK.Enabled = True, dann durchläuft es alle Controls und wenn es um eine Textbox oder Combobox handelt und leer ist, dann wird cmdOK.Enabled = False
Gruss Beni

Anzeige
AW: Werte aus Tabelle in Userform zurückgeben
07.05.2007 17:37:32
Peter
Danke

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige