Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1724to1728
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
Inhaltsverzeichnis

Werte per userform in bestimmte Tabelle eintragen

Werte per userform in bestimmte Tabelle eintragen
26.11.2019 12:33:52
Ludger
Hallo,
Suche Hilfe, möchte Werte per Userform in bestimmte Zeilen einer Tabelle eintragen
Wie ich mir das vorstelle hab auf dem Tabellenblatt geschrieben.
Jetzt schon mal vielen Dank für eure Hilfe auch wenn es nicht funktionieren sollte
Hab die Muster Datei hochgeladen
https://www.herber.de/bbs/user/133445.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte per userform in bestimmte Tabelle eintragen
27.11.2019 09:14:10
volti
Hallo Ludger,
das sieht nach 'ner Menge Arbeit aus und eindeutig beschrieben ist es leider (für mich) auch nicht.
Da ist viel Interpretation möglich.
Wenn es nicht eilig ist und sonst keiner 'ne bessere Idee hat, schlage ich Dir mal einen Weg vor, wie man das angehen könnte.
viele Grüße
Karl-Heinz
AW: Werte per userform in bestimmte Tabelle eintragen
27.11.2019 10:09:01
Ludger
Hallo Karl-Heinz,
erst mal vielen Dank für dein Antwort. Es ist nicht eilig,
würde mich freuen für jede Hilfe.
Brauche einen Ansatz wie man es machen könnte.
viele Grüße
Ludger
AW: Werte per userform in bestimmte Tabelle eintragen
27.11.2019 13:06:55
volti
Hallo Ludger,
hier mal eine (erste) Idee, wie Du Dein Anliegen lösen könntest. Natürlich musst Du das selbst noch weiter entsprechend ergänzen:
Zunächst wird die Userform (z.B. über einen Button) aufgerufen, die Daten aus Tabelle1 übertagen. Dann kann der User den Rest ergänzen und "Beenden" klicken.
In der Beenden-Sub könntest Du für jedes Feld noch eine Plausi machen, ob dies auch ausgefüllt ist....
Hier die Beenden-Sub in das UF-Modul aufnehmen:
Option Explicit
Private Sub cbbeenden_Click()
'Abschluss-Plausibilisierung für diverse Muss-Felder
 With Me
  If .cboneukunde = "?" Then
   MsgTxt "Du hast das Feld 'Neukunde' nicht ausgefüllt!""
   .cboneukunde.SetFocus: Exit Sub
  End If
  If .txtstraße = "" Then
   MsgTxt "Du hast keine Straße eingegeben!"
   .txtstraße.SetFocus: Exit Sub
  End If
  .Hide
  Fill_PDF
 End With
End Sub
Private Sub MsgTxt(Txt As String)
 MsgBox Txt, vbOKOnly Or vbExclamation, "Fehlerhafte Eingabe"
End Sub

alles korrekt, dann UF schließen und PDF füllen

Die Initialisierungs-Sub kann weg und wenn Du nicht eine Sofortübertragung der Daten eines Feldes wünscht, können Deine anderen Sub's auch weg.
Die Füllen-Sub's einfach in ein Modul einfügen:
Option Explicit
Sub Test()
 Fill_UF "Fa. Bon*"
End Sub
Sub Fill_UF(Such As String)
'Füllen der Felder der Userform anhand der Tabelle1-Daten
'Zunächst die gewünschte Zeile suchen und aus dieser dann die Daten in UF übertragen
'Es kann alternativ auch eine Zeilennummer übergeben werden
'Userform zur weiteren Bearbeitung aufrufen
 Dim UF As Object, WSh As Worksheet, iZeile As Long
 Set UF = UserForm1
 Set WSh = ThisWorkbook.Sheets("Tabelle1") 'ggf. Tabellennamen anpassen
 On Error Resume Next
 If Val(Such) > 0 Then
  iZeile = Val(Such)
 Else
  iZeile = 0
'Suchbegriff in Spalte L suchen
  iZeile = Application.WorksheetFunction.Match(Such, WSh.Range("L:L"), 0)
 End If
 If iZeile > 0 Then
  With WSh
'Jetzt die Daten übernehmen
   With UF.cboneukunde
    .AddItem "Ja"
    .AddItem "Nein"
    .Value = "?"
   End With
   UF.txtfahrer = Trim$(Replace(.Cells(2, "L").Value, "Name des Fahrers:", ""))
   UF.txtDatum = .Cells(iZeile, "B").Value
   UF.txtanfang_uhrzeit = Format$(.Cells(iZeile, "C").Value, "hh:mm")
   UF.txtende_uhrzeit = Format$(.Cells(iZeile, "D").Value, "hh:mm")
   UF.txtstunden_gesamt = Format$((.Cells(iZeile, "D").Value - .Cells(iZeile, "C").Value) * 24, "#0.0")
   If Val(UF.txtstunden_gesamt) < 0 Then UF.txtstunden_gesamt = "Error! <0"
   UF.txtkm_anfang = .Cells(iZeile, "E").Value
   UF.txtkm_ende = .Cells(iZeile, "F").Value
   UF.txtkm_gesamt = UF.txtkm_ende - UF.txtkm_anfang
   If Val(UF.txtkm_gesamt) < 0 Then UF.txtkm_gesamt = "Error! <0"
   UF.txtort = .Cells(iZeile, "I").Value
   UF.txtkundenNr = .Cells(iZeile, "K").Value
   UF.txtname = .Cells(iZeile, "L").Value
   UF.Show
  End With
 End If
 Set UF = Nothing
End Sub
Sub Fill_PDF()
 Dim UF As Object
 Set UF = UserForm1
 With ThisWorkbook.Sheets("PDF") 'ggf. Tabellennamen anpassen
  .Select
  .Cells(5, "G").Value = UF.txtDatum
  .Cells(7, "G").Value = UF.txtfahrer
  .Cells(12, "G").Value = UF.txtname
  .Cells(13, "G").Value = UF.txtstraße
  .Cells(14, "G").Value = UF.t
  .Cells(14, "J").Value = UF.txtort
  .Cells(16, "G").Value = UF.txtkundenNr
  .Cells(19, "I").Value = UF.txtanfang_uhrzeit
  .Cells(19, "N").Value = UF.txtende_uhrzeit
  .Cells(19, "S").Value = UF.txtstunden_gesamt
  .Cells(20, "I").Value = UF.txtkm_anfang
  .Cells(20, "N").Value = UF.txtkm_ende
  .Cells(20, "S").Value = UF.txtkm_gesamt
  .Cells(36, "B").Value = "Neukunde: " & UF.cboneukunde
  Set UF = Nothing
 End With
End Sub


Tipp:
ja/Nein-Angaben könntest Du auch mit Checkboxen besser lösen.
Bau es bei Dir mal ein und probiere einfach mal, ob es so geht.
Ich hoffe, dass es so gedacht war.
viele Grüße
Karl-Heinz

Anzeige
AW: Werte per userform in bestimmte Tabelle eintragen
27.11.2019 15:37:13
Ludger
Hallo Karl Heinz,
Danke, Danke für deine Mühe!!! Werde es heute Abend probieren,
bin sehr gespannt auf das Ergebnis.
Werde mich melden wenn ich es geschafft hab.
Nochmals Danke
viele Grüße
Ludger
AW: Werte per userform in bestimmte Tabelle eintragen
28.11.2019 15:26:10
Ludger
Hallo Karl-Heinz,
Hab den Code eingefügt, nur beim Aufruf werden keine Daten eingelesen. Wenn ich sie Händisch eingebe
funktioniert alles perfekt. Hab vieles Probiert aber es will nicht funktionieren.
Hab die Datei hochgeladen.
https://www.herber.de/bbs/user/133476.xlsm
viele Grüße
Ludger
Nochmals Danke für deine Mühe!!!
Anzeige
AW: Werte per userform in bestimmte Tabelle eintragen
29.11.2019 12:29:24
volti
Hallo Ludger,
habe gerade erst Deinen Beitrag lesen können.
Da hast eine neue Schaltfläche eingefügt die über die

Sub CommandButton1_Click() einfach nur die Userform1 anzeigt, ohne dass die 

Sub Fill_UF ausgeführt wird. Diese füllt ja erst die Daten in die Userform ein.
Diese Möglichkeit gäbe es z.B.

Sub CommandButton1_Click()
' Fill_UF "6"   'Daten werden aus Tabelle1, Zeile 6 übernommen
' Fill_UF "Fa. Maler*"  'Daten werden aus der Zeile, in der der Kunde Fa. Maler" aus Tabelle1 ü _
bernommen.
End Sub

Aber bitte beschreib noch mal genau Schritt für Schritt, wie der Anwender jetzt genau vorgehen soll und was passieren soll.
Ich schaue mir noch mal Deine Aktivitäten an und melde mich noch mal hier.
viele Grüße
Karl-Heinz
Anzeige
AW: Werte per userform in bestimmte Tabelle eintragen
29.11.2019 13:47:40
volti
Hallo Ludger,
hier die Datei zurück mit ein paar Anpassungen und etwas Text.
https://www.herber.de/bbs/user/133496.xlsm
Gruß
KH

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige