Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ToggleButton
BildScreenshot zu ToggleButton ToggleButton-Seite mit Beispielarbeitsmappe aufrufen

Excel-Formular für Bestellung

Betrifft: Excel-Formular für Bestellung von: Philip
Geschrieben am: 30.10.2012 10:38:35

Hallo Ihr lieben,

ich hoffe jemand kann mir bei meinem Anliegen behilflich sein!

Bei uns in der Firma gibt es ein Formular für Versandaufträge, welches ich hier auch gleich mal hochlade.

Alle gelb markierten Zellen werden für jeden Auftrag geändert.
Das Datum sollte immer "=HEUTE()" sein
Bei "Lieferung an:" gibt es 2 Varianten, entweder Privat, dann ist die Anschrift nur 3-zeilig, oder an ein Lager, dann ist es 4-zeilig.
Bei "Anlieferung:" sollte man zwischen dem vorgefertigten Eintrag "schnellstens" oder "erfolg tin KW xy" (wobei man hier nur die KW eintragen sollte) auswählen können.
in der Tabelle "Gegenstand" sollte man dann nur eine Anzahl auswählen können und eine kurze Beschriebung dazu eintippen können.
Mal wird nur 1 Gegenstand verschickt, mal aber auch 5 verschiedene, so dass die Tabelle variabel ist.

Nun meine Frage:
Gibt es hier eine Möglichkeit, eine Eingabemaske zu erstellen, wo man alle relevanten Daten eingibt. Kann man vielleicht sogar noch einen namen und Speicherpfad in dieser Maske mit eingeben?

Leider bin ich ziemlich hilflos und immer alles einzeln einzutragen und von Feld zu Feld zu klicken ist ziemlich nervig.

Ich habe auch schon ein bisschen gestöbert und etwas ähnliches gefunden, dort hatte auch jemand eine solche "Maske" programmiert, genau so stelle ich mir das vor:

https://www.herber.de/forum/archiv/916to920/t916502.htm

  

Betrifft: AW: Excel-Formular für Bestellung von: Philip
Geschrieben am: 30.10.2012 10:39:44

https://www.herber.de/bbs/user/82383.xls

Hier ist das Formular


  

Betrifft: AW: Excel-Formular für Bestellung von: Klaus M.vdT.
Geschrieben am: 30.10.2012 12:26:53

Hi Philip,
Basiskentnisse in Excel ... ich nehme an, du hast null Kentnisse in VBA?
Ich hab dir mal ein File hochgeladen.
https://www.herber.de/bbs/user/82386.xls
Ist das ungefähr was du dir vorstellst?

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Excel-Formular für Bestellung von: Philip
Geschrieben am: 30.10.2012 12:57:26

WUNDERBAR!!! :-)

Wow, das sieht super aus.

3 Fragen habe ich allerdings noch:

1. Wie kann ich diesen Button umbenennen?
2. Können Sie noch "einbauen", dass man seinen eigenen Namen eingibt und diese über dem Feld "Projektmanager" steht?
3. Kann ich irgendwo sehen, was Sie dort genau gebastelt haben? Ist das mit Makros gemacht, oder wie genau?

Wahrscheinlich erscheinen Ihnen meine Fragen wie die typischen "Anfängerfragen", aber leider bin ich das auch!

Aber vielen vielen Dank für Ihre Hilfe!


  

Betrifft: AW: Excel-Formular für Bestellung von: Klaus M.vdT.
Geschrieben am: 30.10.2012 13:09:26

Hallo Philip,
hier im Excel-Forum sagen wir gerne "du" zueinander. Ich hab mich beim lesen des Beitrages grad umgeschaut, ob mein Vater hinter mir steht ...
Ich verspreche, ich komme noch mit ein paar Erklärungen rum und baue dir auch gern noch die paar Sachen rein, aber jetzt gerade muss ich arbeiten :-) Ich meld mich mit einer weiteren Tabelle, wenn ich wieder etwas Luft habe.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Excel-Formular für Bestellung von: Philip
Geschrieben am: 30.10.2012 13:26:36

Super.
Dann danke ich DIR ;-) und warte schon gespannt auf eine weitere Antwort.


  

Betrifft: einfacherere Lösung ganz ohne VBA von: Klaus M.vdT.
Geschrieben am: 30.10.2012 14:06:55

Hallo Philip,
Ich hab mal auf die schnelle eine Version OHNE VBA und Eingabemasken gemacht.
https://www.herber.de/bbs/user/82388.xls

Die Eingaben sind in einem sheet komfortabel untereinander und werden per Formeln in den Lieferschein übertragen. Vor dem drucken müsstest du die nicht benötigten Zellen ausblenden.

Ich glaube, dass hilft dir eher ... wenn ich dir jetzt ein umfangreiches VBA Projekt mache und es ändert sich bei euch die kleinste Kleinigkeit, bist du sonst aufgeschmissen.


Zur alten Datei:
Wenn du die Zeit übrig hast: mit ALT+F11 in der (ersten) Datei kommst du in den VBA Editor. Dort gibt es links einen Projekt Explorer, wenn du da ein paar Sachen aufklappst siehst du auch die Eingabemaske (hier genannt UF1) unter "Forms". Die Buttons und alles andere kannst du mit "rechtsclick, properities" ansehen, der hinterlegte Programmcode erscheint durch doppelclick. Um die Beschriftung eines Buttons zu ändern, musst du die "Properity - Caption" finden und ändern.
Hast du bereits Erfahrung in einer Scriptsprache? Vielleicht in BASIC, oder Pascal? Dann findest du dich im VBA auch schnell zurecht.
So ganz ohne Programmiersprachen-Kentnisse könnten da wohl auch chinesische Zeichen stehen :-)

Bitte RÜ, ich helfe dir auch gerne weiter, auch mit der VBA Version. ZB indem ich einige Codezeilen kommentiere oder whatever.
Aber immer nur wenn ich Zeit habe, und sowas zuende zu entwickeln dauert ein bisschen ... aber ich glaube es ist besser, du hälst dich zunächst an die VBA-Freie Version?

Grüße,
Klaus M.vdT.


  

Betrifft: alles eigebaut :-) von: Klaus M.vdT.
Geschrieben am: 30.10.2012 15:11:40

Hallo Philip,
mir kommt gerade der Gedanke, dass du mit "der Button" warscheinlich das Monsterding meintest dass ich vorne in die Tabelle gehauen habe ... hab ich mal umbenannt und kleiner gemacht!
Um den zu verschieben, musst du im Excel den "Entwickler" Ribbon einschalten (bitte googeln wie das geht ...) und dort auf "Entwurfsmodus" clicken. Jetzt kannst du den Button anfassen, verschieben und (mit rechtsclick-Eigenschaften) umbenennen.
Deine Punkte mit "Namen eintragen" und "speichern" hab ich auch eingebaut. Ausserdem habe ich den Code einigermaßen durchkommentiert falls du ihn lesen willst ... F11, Forms, Userform, doppelclick auf ein Objekt ...

https://www.herber.de/bbs/user/82389.xls

In dem anderen Beitragsbaum hab ich das schon geschrieben, das ist warscheinlich zu viel für einen Anfänger.
Tip: Hier im Forum dabei bleiben und immer nur ganz kleine Sachen fragen. Dann immer die kleinen, kurzen Antworten nachvollziehen.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: alles eigebaut :-) von: Philip
Geschrieben am: 31.10.2012 08:11:20

Hallo Klaus,

vielen Dank, das sieht noch besser aus! :-)

Ja, ich kenne mich ein bisschen in Java und PowerShell aus, also ist es kein Chinesisch für mich! ;)

Ich spiele gerade ein bisschen herum und änder hier und da etwas.

Wenn ich noch Fragen habe, melde ich mich einfach.


  

Betrifft: AW: alles eigebaut :-) von: Klaus M.vdT.
Geschrieben am: 31.10.2012 08:25:59

Hi, danke für die Rückmeldung!
Bei Fragen oder Änderungswünschen stehe ich zur Verfügung.


  

Betrifft: einen hab ich noch! Zum Papiersparen ... von: Klaus M.vdT.
Geschrieben am: 31.10.2012 08:52:49

Hi Philip,
ich lad mal nicht mehr die ganze Datei hoch, da du ja schon "hier und da" Änderungen vorgenommen hast.

Ich hab gerade erst gelernt, wie aus VBA die Druckansicht geht ( https://www.herber.de/forum/messages/1284569.html ).
Lösch doch bitte in deiner Datei den Code hinter dem "PRINT" Button und tausche ihn durch diesen:

Private Sub CMB_PrintIt_Click()
'"Druckansicht" Button auf Druckansicht setzen und unnötige Zeilen ausblenden
    ToggleButton_Druck = True
    ActiveSheet.Range("B" & UF1.SpinButton_Zeile.Min & ":B" & UF1.SpinButton_Zeile.Max). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = ToggleButton_Druck
'Userform für die Dauer der Druckvorschau verstecken
    Me.Hide
'Userform nach 1sek zurückholen (Excel friert die Zeit in der Druckansicht, die Userform kommt  _
also unmittelbar nach beenden der Druckansicht wieder
    Application.OnTime Now + TimeSerial(0, 0, 1), "Form_Show"
'wechselt zur Druckansicht
    ActiveSheet.PrintPreview
End Sub
und kopiere ganz unten ins "Modul1" diesen Minicode:
Sub Form_show()
UF1.Show
End Sub
Was macht das?
Wenn der "PRINT" Button genutzt wird, schaltet das Blatt automatisch in die Druckansicht (unnötige Zellen ausblenden) und zeigt dann die Druckvorschau. Hier muss der User nur noch den Excel-Print-Button drücken und das Blatt kommt raus. Wenn noch was falsch ist (und hier sieht man es), kann man ohne zu drucken abbrechen.
Rettet vielleicht 1/100el Baum, aber das sollte es uns Wert sein :-)

Grüße,
Klaus M.vdT.


  

Betrifft: @Klaus M. vdT. ... Fehlender Button ;-) von: NoNet
Geschrieben am: 31.10.2012 13:48:43

Hallo Klaus,

Rettet vielleicht 1/100el Baum, aber das sollte es uns Wert sein :-)
Ich vermisse hier diesen Button ;-) :




Salut, NoNet


  

Betrifft: OT: @NoNet von: Klaus M.vdT.
Geschrieben am: 31.10.2012 15:02:07

Hallo NoNet,
danke für das "Like".
Hast du den Beitrag inklusive Dateien von Anfang an verfolgt? Mich wurmt da nämlich noch eine Sache und ich könnt Support gebrauchen von jemandem der besser in VBA ist als ich!

Wenn ich in "TextBox_Bezeichnung" etwas eingebe und ENTER drücke, lande ich (dank angepasster TAB-Reihenfolge) auf dem "CMB_NächsteZeile", drücke ich hier nochmal ENTER lande ich dank "UF1.TextBox_Stk.SetFocus" mit dem Focus wieder bei der Stückzahleingabe, um komfortabel die nächste Position einzugeben.
Dieses Doppelenter stört mich.
Ich hab folgendes gefunden:
Private Sub TextBox_Bezeichnung_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Hiermit wird Code ausgeführt, sobald ich die "TextBox_Bezeichnung " verlasse. Leider funkioniert es nicht, wenn ich den Code vom "CMB_NächsteZeile" hier direkt rein kopiere.
Frage:
Wie realisiere ich ein "SetFocus" in einem "EXIT" Ereignis?

Grüße,
Klaus M.vdT.

PS: Google sagt, ein handelsüblicher Baum macht rund 107.000 Blatt Papier


 

Beiträge aus den Excel-Beispielen zum Thema "Excel-Formular für Bestellung"