Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

Userform befüllen

Userform befüllen
25.12.2017 18:31:44
Silke
Hallo und frohe Weihnachten,
ich habe eine Liste mit Daten und Mitarbeiteranzahl
Diese ist in D:\Excel\Daten\Mitarbeiter.xlsm drin
https://www.herber.de/bbs/user/118511.xlsm
(Diese Daten werden per Userform eingegeben.)
Jetzt möchte ich gerne per Userform1 in der Datei Mitarbeiteranzeigen diese Daten aufrufen und gegenfalls ändern.
Es soll im Userform1 ein Datum eingeben und dann soll ein zweites Userform2 die Daten aus der Mitarbeiterliste füllen und auch abgeändert werden, wenn die Daten vorher falsch eingegeben worden ist.
https://www.herber.de/bbs/user/118513.xlsm
Wäre sowas möglich?
Danke an ALLE

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform befüllen
25.12.2017 23:29:57
Piet
Hallo Silke
anbei deine Beispieldatei zurück. Ich habe mir erlaubt die UserForm direkt in die Mitarbeiter Datei einzubauen. War für mich leichter zu programmieren. Sollte das nicht erwünscht sein aendern wir es.
In der Tabelle 2017 siehst du oben Links einen Button, der passt genau da hin! Damit startest du die UserForm2 - (ohne UserForme1!) und gibst das Datum direkt ins untere Textfeld Datum ein. Wenn das Datum gefunden wird werden alle Daten in die Textfelder geladen.
Nur bei der Überschrift "Label1" wusste ich nicht welcher Datensatz damit gemeint ist? Ich habe einfach einen Datensatz genommen. Das Makro ist aber so einfach geschrieben das du es selbst anpassen kannst. Du Zuordnung ist leicht zu verstehen.
Würde mich feuen wenn dir diese Lösung gefaellt ....
https://www.herber.de/bbs/user/118517.xlsm
Anzeige
AW: Userform befüllen
26.12.2017 02:41:11
Silke
Hallo Piet,
Super Danke für deine Wertvolle Zeit.
Der Button müsste aber in die andere Datei, denn es soll keiner Zugriff auf die ganze Auswertung ( Mitarbeiteranzahl) haben.
Aber sonst ist alles super.
Könntest du das noch anpassen ?
Wäre echt Klasse von Dir.
AW: Userform befüllen
26.12.2017 13:58:37
Silke
Hallo Piet,
Kann man es auch auf das Tabellenblatt 2017 festlegen ?
AW: Userform befüllen
26.12.2017 21:08:35
Piet
Hallo Silke
ich schicke dir hier wie gewünscht den geaenderten Code ohne Beispieltabelle. Einfach kopieren.
Im Modul1 musst du für die Ziel-Tabelle natürlich bei Public Const deinen Dateinamen einsetzen!
Die vielleicht etwas komplizierten "On Error" Befehle gehören unbedingt mit hinein!
Der Button zum Starten von UserForm2 befindet sich jetzt in der UserForm Mapppe!!
Danach sollte es problemlos laufen. Würde mich freuen wenn es klappt.
Dann haben wir uns beide ein frohes neues Jahr verdient!! ... - Prost
mfg Piet
Option Explicit   'Modul1:
'Öffentliche Variablen für Modul:  UserForm2 !!
'** diese Variablen dürfen nicht gelöscht werden !!
'**  hier bitte den eigenen Original Namen angeben, (unten ist meine Datei)
'**  Die Quell Mappe = ThisWorkbbok, muss hier nicht extra benannt werden!!
Public Const Ziel_Mappe = "118511  Mitarbeiter füllen"    'Name der Ziel Mappe
Sub UF2_zeigen()
UserForm2.Show
End Sub

Option Explicit         '26.12.2017  Piet  Herber Forum
Dim AC As Range, sp As Integer, Datum As Date
Dim ZielWb As Object, ZTb As String
'Aenderungen buchen und Speichern
Private Sub CommandButton1_Click()
On Error GoTo 0
Datum = CDate(UserForm2.TextBox11)
ZTb = CStr(Right(UserForm2.TextBox11, 4))
If InStr(ZTb, ".") Then
MsgBox "'" & ZTb & "'  - Das Jahr stimmt nicht - Eingabe nicht verbucht!!": Exit Sub
End If
On Error Resume Next  'Abbruch bei Fehler!!
'Zielmappe setzen - vier Stellen Jahresdatum
Set ZielWb = Workbooks(Ziel_Mappe).Worksheets(ZTb)
If Err > 0 Then MsgBox ZTb & " - Diese Jahres Tabelle exisitert nicht !!": Exit Sub
On Error GoTo Fehler  'Abbruch bei Fehler!!
'Suche nach Datum von B1-N1  (Find klappt nicht!!)
For Each AC In ZielWb.Range("B1:ND1")
If AC.Value = Datum Then sp = AC.Column: Exit For
Next AC
If sp = Empty Then MsgBox Datum & "  kann Datum nicht finden!": Exit Sub
With UserForm2
ZielWb.Cells(3, sp) = .TextBox1.Value    'TextBox1 = Daten1
ZielWb.Cells(4, sp) = .TextBox7.Value    'TextBox7 = Daten2
ZielWb.Cells(6, sp) = .TextBox9.Value    'TextBox9 = Daten4
ZielWb.Cells(8, sp) = .TextBox5.Value    'TextBox5 = Daten6
ZielWb.Cells(11, sp) = .TextBox10.Value  'TextBox10 = Daten9
ZielWb.Cells(12, sp) = .TextBox4.Value   'TextBox4 = Daten10
ZielWb.Cells(13, sp) = .TextBox8.Value   'TextBox8 = Daten11
ZielWb.Cells(24, sp) = .TextBox3.Value   'TextBox3 = Daten22
ZielWb.Cells(27, sp) = .TextBox6.Value   'TextBox6 = Daten25
ZielWb.Cells(19, sp) = .TextBox2.Value   'TextBox2 = ** Labe1 =17
End With
'** speichert sofort nach Eingabe
Workbooks(Ziel_Mappe).Save
Exit Sub
Fehler:  MsgBox Datum & " - unerwarteter Fehler beim Eingabe buchen!!"
End Sub
'UserForm2 aus 2017 laden
Private Sub TextBox11_AfterUpdate()
On Error GoTo 0
Datum = CDate(UserForm2.TextBox11)
ZTb = CStr(Right(UserForm2.TextBox11, 4))
If InStr(ZTb, ".") Then
MsgBox "'" & ZTb & "'  - Das Jahr stimmt nicht - kann nicht befüllen!!": Exit Sub
End If
On Error Resume Next  'Abbruch bei Fehler!!
'Zielmappe setzen - vier Stellen Jahresdatum
Set ZielWb = Workbooks(Ziel_Mappe).Worksheets(ZTb)
If Err > 0 Then MsgBox ZTb & " - Diese Jahres Tabelle exisitert nicht !!": Exit Sub
On Error GoTo Fehler  'Abbruch bei Fehler!!
'Suche nach Datum von B1-N1  (Find klappt nicht!!)
For Each AC In ZielWb.Range("B1:ND1")
If AC.Value = Datum Then sp = AC.Column: Exit For
Next AC
If sp = Empty Then MsgBox Datum & "  kann Datum nicht finden!": Exit Sub
With UserForm2
.TextBox1.Value = ZielWb.Cells(3, sp)    'TextBox1 = Daten1
.TextBox7.Value = ZielWb.Cells(4, sp)    'TextBox7 = Daten2
.TextBox9.Value = ZielWb.Cells(6, sp)    'TextBox9 = Daten4
.TextBox5.Value = ZielWb.Cells(8, sp)    'TextBox5 = Daten6
.TextBox10.Value = ZielWb.Cells(11, sp)  'TextBox10 = Daten9
.TextBox4.Value = ZielWb.Cells(12, sp)   'TextBox4 = Daten10
.TextBox8.Value = ZielWb.Cells(13, sp)   'TextBox8 = Daten11
.TextBox3.Value = ZielWb.Cells(24, sp)   'TextBox3 = Daten22
.TextBox6.Value = ZielWb.Cells(27, sp)   'TextBox6 = Daten25
.TextBox2.Value = ZielWb.Cells(19, sp)   'TextBox2 = ** Labe1 =17
End With
Exit Sub
Fehler:  MsgBox Datum & " - unerwarteter Fehler beim TextBox befüllen!!"
End Sub

Anzeige
AW: Userform befüllen
27.12.2017 05:35:40
Silke
Hallo Piet,
mega Danke für deine Hilfe.
Muss bei :
Public Const Ziel_Mappe = "118511 Mitarbeiter füllen" 'Name der Ziel Mappe
nur 2017 rein oder den Pfad der Datei D:\....
Den wenn ich nur 2017 eingebe kommt eine Fehlermeldung.
Dankeschön erstmal.
Liebe Grüße Silke
was mache ich Falsch?
27.12.2017 09:59:34
Silke
Hallo,
ich denke, bald haben wir es geschafft :-)
Anbei die Datei:
https://www.herber.de/bbs/user/118532.xlsm
Irgendwas mache ich falsch.
Wenn ich 07.01.2017 eingebe, kommt eine Fehlermeldung
Dankeschön
AW: Userform befüllen
27.12.2017 10:39:07
Piet
Hallo Silke
vielleicht hast du den Begriff "Ziel_Mappe" falsch verstanden. Ich erklaere dir bitte mal mein System:
"118511 Mitarbeiter füllen" - du siehtst es ist die Nummer deiner Beispieldatei und mein -interner Text- "Mitarbeiter Füllen" damit ich weiss zu welchem Thread diese Beispieldatei gehört. Hat man 5-6 Beispiele zum bearbeiten geladen verliert man -ohne- diesen Text schnell die Übersicht zu welchem Trhead das Beispiel gehört! Es ist somit der Dateiname in meinem Forum Ordner!
Du hast das Datum 2017 angegeben, das ist aber ein Tabellen Name! - Nicht der Datei Name in der sich deine Mitarbeiter Daten befinden. Dort gehört also der Name deiner Datei hin! Den kann ich ja am Laptopğ nicht sehen. Wenn diese Datei in einem anderen Ordner liegt auch bitte mit Pfadangabe. Probier es solange aus bis es klappt.
Für die Eingabe muss diese Mitarbeiter Datei geöffnet sein, ich mache kein automatisches Öffnen!!
Probier solange bis es klappt, das Makro wurde ja getestet. In meinem Ordner laeuft es einwandfrei.
mfg Piet
Anzeige
AW: Userform befüllen
27.12.2017 10:48:39
Piet
Nachtrag:
den Tabellen Namen 2016 oder 2017 brauchst du nicht extra anzugeben! - Den ermittelt mein Makro aus der Datums Eingabe, und geht davon aus dass die Jahreszahl der richtige Tabellen Name ist. Solltest du das Datum falsch eingeben. z.B. "03.01.217" statt 2017 kommt eine Fehlermeldung dass das Jahr nicht stimmt. Existiert diese Tabelle nicht kommt eine Fehlermeldung das diese Tabelle nicht existiert. Findet er das Datum nicht in der Tabelle kommt die Fehlermeldung dass mein Makro das Datum nişcht findet.
Deshalb diese vielen verschiedenen "On Error" Anweisungen. - Unerwartete Fehler kann auch heissen: die Datei ist nicht geöffnet!!.
Das habe ich nicht separat geprüft...
mfg Piet
Anzeige
.........
27.12.2017 19:13:41
Silke
Hallo Piet,
es funktioniert einfach nur PERFEKT.
Ich möchte mich ganz herzlich bei dir Bedanken, auch für deine Zeit und deine Geduld.
Schön das es solche Menschen gibt, wie Dich, die einen helfen.
DANKE DANKE DANKE
Liebe Grüße
Silke

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige