Anzeige
Archiv - Navigation
1588to1592
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 Dateneingabe

Userform Dateneingabe
06.11.2017 09:38:01
Stefan
Moin Leute.
Ich möchte gerne mit VBA ein Userform erstellen, bei dem ich mehrere Eingaben vornehmen kann. Dabei möchte ich, dass die Eingabe in einer vorhandenen Tabelle auf Übereinstimmung untersucht wird und bei einem treffer soll der User einen Eintrag vornehmen können.
Präziser ausgedrückt, habe ich links in der Spalte B verschiedene vorhandene Produktnummern stehen und in der Zeile C2 bis L2 habe ich Kalenderwochen stehen.
In der Userform soll, der User Produktnummer und KW aus einem Dropdown-Menü auswählen können und dort wo es sich überschneidet, soll er die Anzahl der z.B produzierten Produkte eingeben können.
Ich hänge ein Beispiel an.
https://www.herber.de/bbs/user/117467.xlsx
Indem Beispiel sucht der Benutzer die Produktnummer 620104 und Kalenderwoche 5 aus. Dort Wo sich Zeile und Spalte schneiden, soll dann die Anzahl eingebeben werden können.
Ich wäre sehr dankbar für Ratschläge und Hilfen.
VG Stefan

48
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Und wo ist das UserForm? - o.w.T
06.11.2017 10:21:45
Beverly


AW: Und wo ist das UserForm? - o.w.T
06.11.2017 11:02:29
Stefan
Hallo Armin,
wow genau wie ich es mir vorgestellt habe. Super !!! Vielen lieben dank !!
Eine Frage hätte ich aber noch dazu. Ist es möglich, dass die Userform offen bleibt, nachdem ich einen Eintrag bestätigt habe ?
Liebe Grüße Stefan
AW: Und wo ist das UserForm? - o.w.T
06.11.2017 11:15:50
Stefan
Moin Armin,
soweit läuft alles gut. Ich versuche grade den Code zu verstehen und es das Beispiel auf meine Arbeitsmappe zu übertragen. Da stehen die Kalenderwochen jedoch nicht in der Zeile C2 bis L2, sondern in der Zeile Q3 bis BP52. Wo genau im Code kann ich das anpassen. Blicke da nicht so durch. Vielen danke nochmal für eure Hilfe :)
Liebe Grüße Stefan
Anzeige
AW: Und wo ist das UserForm? - o.w.T
06.11.2017 11:44:38
Werner
Hallo Stefan,
stellt sich nur die Frage, warum du das nicht von Anfang an geschrieben hast. Private Sub UserForm_Activate() Dim K As Integer, N As Integer ComboBox1.Clear ComboBox2.Clear With Tabelle1 For K = 3 To .Cells(Rows.Count, 2).End(xlUp).Row ComboBox1.AddItem .Cells(K, 2).Value Next For K = 3 To .Cells(3, Columns.Count).End(xlToLeft).Column ComboBox2.AddItem .Cells(3, K).Value Next End With End Sub Gruß Werner
Schleifenbeginn anpassen!
06.11.2017 11:53:50
Matthias
Hi Werner
Da musst Du aber auch den Schleifenbeginn anpassen
Für Zeile ab 4
Für Spalte ab 17
     For K = 4 To .Cells(Rows.Count, 2).End(xlUp).Row
ComboBox1.AddItem .Cells(K, 2).Value
Next
For K = 17 To .Cells(3, Columns.Count).End(xlToLeft).Column
ComboBox2.AddItem .Cells(3, K).Value
Next
Tabelle1

 BQRSTUV
3Produktnummer123456
4620012      
5620014      
6620045      
7620053      
8620055      
9620104      
10620106      
11620107      
12620108      
13620109      
14620110      
15620190      
16620204      
17620217      
18620219      


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
stimmt natürlich
06.11.2017 12:00:49
Werner
Hallo Matthias,
da hast du natürlich recht. Habe die Zeilenverschiebung um eins nach unten und vor allem die Spaltenverschiebung total aus den Augen gelassen.
Danke für die Korrektur.
Gruß Werner
AW: Schleifenbeginn anpassen!
06.11.2017 12:38:33
Stefan
Hallo Matthias und Werner,
ja darauf bin ich auch eben gekommen und habe es angepasst und es funktioniert einwandfrei. Das Problem ist meine orginale Tabelle ist sehr groß und unübersichtlich, daher habe ich es auf ein kleines Beispiel übertragen.
Die Userform dient zum befüllen einer großen Tabelle, die Daten entnehme ich einzelnen kleineren Tabellen. Ist auch möglich, per VBA die kleinen Tabellen einzulesen und diese automatisch wie im Beispiel zuvor einzutragen.
Das heißt ich habe für jede Kalenderwoche kleinere Tabellen zu den Produkten und möchte die automatisch einlesen und für die KW eintragen lassen.
Ist sowas denn überhaupt möglich ?
Liebe Grüße Stefan
Anzeige
AW: Schleifenbeginn anpassen!
06.11.2017 13:07:11
Armin
Hallo Stefen,
leider war ich heute Vormittag in einer anderen Sache unterwegs.
Aber Du hast ja Hilfe bekommen. Wie Du sicher gemerkt hast muss man schon genau sagen was/wie alles laufen soll! Bei Deiner letzten Anfrage ob man Sheets lesen kann per VBA - Natürlich geht das. Aber ich fürchte das geht nicht in einem Forum. Dazu muss Du sowohl Haupt-Sheet und Einzel-Sheet zur Verfügung stellen.
Gruß Armin
AW: Schleifenbeginn anpassen!
06.11.2017 13:54:15
Stefan
Hallo Armin,
tut mir leid wenn ich mich nicht präzise genug ausgedrückt habe. Eure Hilfe bringt mich, aber aufjedenfall sehr weit. Danke nochmal dafür.
Für meine letzte Anfrage füge ich mal Hauptsheet ein(links stehen die Produktnummern in Grün/Orange und oben in der Zeile Q3-AU3 die KW) :
https://www.herber.de/bbs/user/117474.xlsx
In dem alles übertragen werden soll und ein Beispiel Einzelsheet:
https://www.herber.de/bbs/user/117475.xlsx
,von dem die Daten gelesen werden sollen und in den Hauptsheet übertragen werden sollen. Dazu muss noch gesagt werden, dass es mehrere Einzelsheets gibt. Ich stelle mir das ganze so vor, dass ich wieder eine CommandButton erstelle, den ich Einlesen nenne. Nach dem ich betätige, kann ich die EinzelSheets vom zum Beispiel vom Desktop auswähle und Excel bzw. VBA die Daten automatisch erkennt und in das Hauptsheet einträgt.
Ich hoffe ihr versteht, wie ich es meine :/
Liebe Grüße Stefan
Anzeige
AW: Schleifenbeginn anpassen!
07.11.2017 07:27:38
Armin
Guten Morgen Stefan,
erster Versuch
https://www.herber.de/bbs/user/117486.xlsm
Einlesen von Daten wird gestartet mit rechter Maustaste in Zelle Produktnummer (B1).
Gruß Armin
AW: Schleifenbeginn anpassen!
07.11.2017 11:17:56
Stefan
Grüß dich Armin. Wow bin echt überwältigt. Funktioniert super. Versuche aber grade den Code zu analysieren. Wo müsste ich den Code ändern, wenn sich die Bezeichnung Produktnummer in einen anderen namen ändern würde ? oder es in der zweiten Datei(nicht die Hauptdatei) in einer anderen Spalte stehen würde ? erkennt er das automatisch ?
VG Stefan
Anzeige
AW: Schleifenbeginn anpassen!
07.11.2017 11:27:15
Stefan
Grüß dich
also könnte ich das auf verschiedene Dateien anwenden. Die gegebenenfalls ein anderes Format haben. Sowie dieses :
https://www.herber.de/bbs/user/117492.xlsx
Und wie hast du bei der Zelle Produktnummer (B1) das mit dem Rechtsklick realisiert ?
Danke dir nochmal für deine große Hilfe.
Gruß Stefan
AW: Anpassen Code
07.11.2017 11:57:33
Armin
Hallo Stefan,
allso eine Eierlegendewollmilchsau werden wir daraus nicht zaubern können.
Wieviele von den verschiedenen Excel-Daten-File hast Du? Welche Daten sollen dann wohin?
Zitat:
Wo müsste ich den Code ändern, wenn sich die Bezeichnung Produktnummer in einen anderen namen ändern würde ?
Verstehe ich leider nicht!
Gruß Armin
Anzeige
AW: Anpassen Code
07.11.2017 12:16:01
Stefan
Hallo Armin,
also ich würde gerne zwei mal das ganze erstellen. Einmal mit Bolzennummer worauf ich gerne, diese Datei : https://www.herber.de/bbs/user/117492.xlsx anwende.
Und das was du vorher geschickt hast, würde ich so für produktnummern beibehalten. Leider schaffe ich es noch nicht den code auf für die Bolzennummer Datei anzuwenden. Ich denke der hacken muss irgendwo am Ende des Codes stehen, in der Schleifenbedingung. Da in der Bolzennummer Datei(siehe oben) die Bolzennummer etc in anderen Spalten stehen.
Liege ich da richtig ?
Gruß Stefan
Anzeige
AW: Anpassen Code
07.11.2017 13:36:43
Armin
Hallo Stefan,
Du hast aber meine Fragen nicht beantwortet!
Heute kann ich leider nicht weiter machen.
AW: Anpassen Code
07.11.2017 15:49:48
Armin
Hallo Stefan,
bin doch noch dazu gekommen mir die Sheet mit der Bolzen-Nr. anzuschauen.
Also prinzipiell solltest Du Dir merken: Zellen verbinden sollte nur in Ausnahmefällen erfolgen!!
Mit VBA hast Du da nur Probleme.
D.h. das Sheet mit den Bolzen-Nr. hat verbundene Zellen A+B, H+I, J+K das ist völlig überflüssig. Die Spalten kann man ja entsprechend breit einrichten (Format-Spaltenbreite).
Das solltest Du ändern wenn Du mit VBA arbeiten willst.
Dann muss ja noch ein Sheet existieren wohin die Daten sollen! Denn eine KW ist zwar vorhanden aber welche weiteren Daten sollen dann wohin (habe ich schon mal angefragt!).
Gruß Armin
Anzeige
AW: Anpassen Code
09.11.2017 10:37:42
Stefan
Hallo Armin,
ich habe noch eine kurze Frage vielleicht kannst du mir da weiter helfen.
Also ich möchte nun nicht nur eine Spalte auslesen und eintragen sondern mehrere. Habe schon eine Ahnung wo ich den Code anpassen muss, aber ich komme nicht drauf wie.
Tabelle1.Cells(RW.Row, Spalte).Value = .Cells(Zeilen, 2).Value 'Anzahl eintragen
Ich möchte also in dem Bereich .Cells(Zeilen, 2).Value nicht nur spalte 2 sondern von Spalte 2 bis Spalte 5 auslesen und eintragen. Habe es mit einer Schleife versucht. Leider vergebens.
Kannst du mir auf die Sprünge helfen ?
Liebe Grüße Stefan
Anzeige
AW: Anpassen Code
09.11.2017 11:41:45
Armin
Hallo Stefan,
obwohl Du auf Fragen nicht eingehst und sie auch nicht beantwortest, hier wieder Fragen:
Wohin sollen denn die zusätzlichen Daten 3-5? Meinst Du die ganzen Spalten oder nur vier Zellen oder oder.....
Gruß Armin
AW: Anpassen Code
09.11.2017 11:56:41
Stefan
Hallo Armin,
das war keine Absicht. Bin relativ neu hier im Forum und übersehe so einiges. Das tut mir leid. Jetzt weiß ich auch nicht auf welche Fragen du dich beziehst. Zu deiner letzten Frage. Also es Sollen aus der Datei :https://www.herber.de/bbs/user/117548.xlsx
nicht nur die Daten aus der Spalte B ausgelesen werden, sondern auch die der kompletten Spalte C,D und E. Diese sollen dann wie gehabt in die Haupttabelle : https://www.herber.de/bbs/user/117549.xlsm eingetragen werden.
VG Stefan
AW: Anpassen Code
09.11.2017 11:57:46
Stefan
Hallo Armin,
das war keine Absicht. Bin relativ neu hier im Forum und übersehe so einiges. Das tut mir leid. Jetzt weiß ich auch nicht auf welche Fragen du dich beziehst. Zu deiner letzten Frage. Also es Sollen aus der Datei :https://www.herber.de/bbs/user/117548.xlsx
nicht nur die Daten aus der Spalte B ausgelesen werden, sondern auch die der kompletten Spalte C,D und E. Diese sollen dann wie gehabt in die Haupttabelle : https://www.herber.de/bbs/user/117549.xlsm eingetragen werden.
VG Stefan
AW: Anpassen Code
09.11.2017 12:05:15
Armin
Hallo Stefan,
ja und wohin?
AW: Anpassen Code
09.11.2017 12:17:23
Stefan
Hallo Armin,
ja in die Haupttabelle wie gehabt.
Ab Spalte Q
Siehe auf dem Bild
Userbild
AW: Anpassen Code
09.11.2017 13:07:38
Armin
Hallo Stefan,
ich verstehe Dein Vorhaben leider nicht. Siehe das Bild im Anhang. Die Kalenderwoche wird anders behandelt (ist ja die Spalte-Nr.) und die Werte aus Spalte B sind "Anzahl der Fehler"! Was soll dann in Deiner Aufgabenstellung C,D,E sein? Diese müssen ja entsprechend behandelt werden!!!
Gruß Armin
AW: Anpassen Code
09.11.2017 14:02:32
Armin
Hallo Stefan,
1. ändert sich damit die Spalte für die KW! Die Spalte wird aber durch die KW bestimmt!!!!
2. nocheinmal wie sollen die Werte in die Übersicht eingetragen werden. Das heißt Du willst die Werte von B,C,D,E in eine Zelle schreiben! Addieren? oder was.
So ganz langsam wird mir das zu aufwendig denn Du weißt warscheinlich selbst noch nicht was Du haben willst. Oder wir Außenstehenden können Deine Erklärungen nicht kapieren.
Gruß Armin
AW: Anpassen Code
09.11.2017 14:26:01
Stefan
Hallo Armin,
entschuldige wenn es zu Missverständnisse gekommen ist. Ich glaube ich habe mich nicht gut genug ausgedrückt. Also ich möchte ,wie du schon sagst die Summer der Werte aus B,C,D,E
Userbild
jeweils in diese Zellen schreiben
Userbild
Dabei soll die spalte wie gehabt nach der KW bestimmt werden.
Also ich möchte jetzt nur lediglich noch die Spalten C,D,E mit in die Auswertung nehmen.
Das muss doch möglich sein.
Gruß Stefan
AW: Anpassen Code
09.11.2017 15:16:24
Stefan
Hallo Armin,
Ich gehe grade deinen Code durch. Funktioniert bisher einwandfrei. Danke dir dafür Armin.
Aber ich habe grade per Zufall entdeckt, dass ein paar mal eine Bolzennummer doppelt vorkommt. Wird die Auswertung trotzdem durchgeführt anhand beider oder nur einer Bolzennummer ?
Gruß Stefan
AW: Anpassen Code
09.11.2017 15:24:04
Stefan
Hey Armin,
merke doch grade, dass deine Programmierung doch nicht funktioniert. Also er nimmt nicht die Summe der Spalten und schreibt sie in die zelle hinein. Er nimmt lediglich die Werte aus der Spalte B.
Irgendeine Idee woran das liegen könnte ?
LG Stefan
AW: Anpassen Code
09.11.2017 15:28:24
Stefan
Hey Armin,
habe den Fehler gefunden :D
Tabelle1.Cells(RW.Row, Spalte).Value = SumAnz hast das vergessen.
Vielen lieben Dank Armin.
Gruß Stefan
AW: Anpassen Code
09.11.2017 15:36:55
Armin
Hallo Stefan,
Nein das geht nicht! Es wird immer der erste gefunden von oben!
Gruß Armin
AW: Anpassen Code
09.11.2017 15:36:18
Stefan
Hallo Armin,
also nochmal zum Problem , wenn eine Bolzennummer doppelt in einer KW vorkommt. Beim einlesen wird jedoch die Bolzennummer dann nur einmal gezählt und dadurch entsteht eine falsche Summe.
Wenn wir dieses noch lösen würden, wäre ich vollkommen glücklich mit dem Ergebnis.
LG Stefan
AW: Anpassen Code
09.11.2017 16:20:53
Armin
Hallo Stefan,
wieviele BolzenNr. existieren denn in einem Sheet? Davon ist abhängig wie man das Suchen gestaltet.
Gruß Armin
AW: Anpassen Code
10.11.2017 07:35:29
Stefan
Hallo Armin,
perfekt !! Ich danke dir
PS: Warum nicht zu viele Daten ?
VG Stefan
AW: Anpassen Code
10.11.2017 11:03:46
Armin
Hallo Stefan,
ich habe eine Schleife eingebaut (For Next) und lass alle Zeilen durchlaufen und wenn das zu viele sind dauert das halt eine Zeit.
Gruß Armin
AW: Anpassen Code
10.11.2017 11:11:55
Stefan
Hallo Armin,
okay jetzt verstehe ich was du meinst. Ne das bleibt bei dieser Anzahl.
Jetzt ist mir aber nun aber eine pfiffige Idee in den Kopf gekommen. Könnte man den Einlesevorgang soweit automatisieren, dass sich die Datei automatisch aktualisiert, wenn jemand in der Datei
https://www.herber.de/bbs/user/117589.xlsx
etwas einträgt. Irgendwie müsste man einen Pfad setzen auf die obenstehende Datei und sobald etwas in die eingetragen wird. Startet der Einlesevorgang automatisch.
VG Stefan
AW: Anpassen Code
10.11.2017 12:33:15
Armin
Hallo Stefan,
sorry daraus wird leider nichts. Ein In einem einem 2.Sheet kannst Du keinen Event auslösen. Und ständige Abfrage macht Excel sehr langsam bist stillstand.
Das einzige was man da machen kann wäre eine Abfrage z.Bsp. in jeder Stunde ein mal. Aber das macht für mich keinen Sinn.
Gruß Armin
Übrigens dieser Thread wir wahrscheinlich bald nicht mehr verwendbar sein. E-Mail Adresse?
AW: Anpassen Code
10.11.2017 12:37:34
Stefan
Hey Armin,
nochmal ganz schnell ein Gedanke. Also der soll nicht alle 2 Sekunden aktualisieren, sondern nur wenn jemand die andere Datei verändert und dann abspeichert. Also vielleicht kann man ein Befehl schreiben, der sagt, dass wenn jemand die externe Datei abspeichert oder schließt, dann soll mein Hauptsheet/Hauptdatei die Einlese-Funktion ausführen.
Du kannst mir auch gerne unter dieser Email Adresse schreiben
trfmazod@gmail.com
VG Stefan
AW: Anpassen Code
10.11.2017 12:57:53
Armin
Hallo Stefan,
habe ich doch gerade geschrieben es wird kein Event für ein Externes Sheet erzeugt also wenn Du speicherst wird ein Event für gleiche Sheet erzeugt, aber nicht für ein anderes!!!
Du müsstest zum Beispiel ständig Abfragen hat jemand das andere Sheet geschlossen. Und dass nun z.Bsp. jede Stunde oder so, ist für mich Unfug.
Gruß Armin
AW: Anpassen Code
10.11.2017 13:26:50
Stefan
Hallo Armin,
okay verstehe. Besteht sonst eine Möglichkeit mein Sheet mit einer Datenbank wie Access zu verbinden und zu automatisieren ?
VG Stefan
AW: Anpassen Code
10.11.2017 13:41:53
Stefan
Hallo Armin,
ich habe grade noch einen Ansatz gefunden. Damit schließt und öffnet sich die Datei. Somit würde sich ja nach jedem öffnen wieder aktualisieren.
Kann man nun eine Beziehung zwischen Hauptdatei und Externedatei erstellen ?
Sub OeffneExceltabelle()
' OeffneExceltabelle Makro
' das heißt nach dem öffnen akkt sich die datei
Workbooks.Open Filename:="C:\01_BR 222\Projekt Dashboard VB97\Kopie von Kopie von  _
2017_Laufende Reklamierte Bolzen BR222_getuned_.xlsm"
Application.OnTime Now + TimeValue("00:00:30"), "OeffneExceltabelle"
End Sub

AW: Anpassen Code
10.11.2017 15:21:44
Armin
Hallo Stefan,
wenn das aller 30Sek laufen soll, wie wird das mit Pfad und vorallem Filename werden? Dann müsste der ja immer gleich sein. Den müsstest Du dann bekannt geben. Oder willst Du aller 30Sek die Auswahl vornehmen.
Also für mich ist das ......
Übrigens wie entstehen die Daten die Eingelesen werden? Excelsheet oder ....?
Gruß Armin
AW: Anpassen Code
10.11.2017 15:58:15
Stefan
Hallo Armin,
also ja der Pfad/Filename und die Datei soll immer die selbe sein.
C:\01_BR 222\festerFilename
Die Auswahl soll z.B jede Woche einmal getroffen werden. Kann man da einen Zeitpuffer einbauen wie beim öffnen ?
Also die entstehenden Datei werden per Hand immer eingetragen.
AW: Anpassen Code
13.11.2017 08:41:33
Armin
Hallo Stefan,
ich habe Dir an Deine E-Mail Adresse eine Nachricht gesendet!
AW: Und wo ist das UserForm? - o.w.T
06.11.2017 12:08:00
Stefan
hey hab es durch probieren selber gelöst :D
Nochmals vielen Dank.
LG Stefan

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige