PDA

Vollständige Version anzeigen : Inputbox mit Auswahl-Antworten


Matthias Kunz
21.02.2008, 05:58
Beim Starten meiner Datei muss der Benutzer eine Nummer eingeben, welche in Kombination mit zusätzlichem Text den Speichernamen generiert. Anschliessend wird die Datei automatisch gespeichert. Der Code sieht wie folgt aus:

Private Sub Workbook_Open()
Dim sInput As String
sInput = InputBox("Bitte Zugsnummer eingeben (NUR Nummer)!:", "Zug?")
If sInput = "" Then
MsgBox "Die Zugsnummer wurde nicht eingegeben - bitte wiederholen!", vbExclamation, "Info"
sInput = InputBox("Dateiname eingeben:", "Pfad")
Else
ActiveWorkbook.SaveAs ("H:\Desktop\Dienstpläne\" & sInput & "-Zug" & "-" & Cells(1, 1).Value)
End If
End Sub


Funktioniert einwandfrei!!!

Meine Frage; kann man die 3 zulässigen Antworten vordefinieren, quasi mit Wahl eines Options- oder Listenfeldes. Also statt der manuellen Eingabe der Nummer durch den Anwender einfach die 3 Antworten "Zug 1 & 2", "Zug 3 & 4" sowie "Zug 5 & 6" per Anklicken auswählen? So wäre ein einheitliches Speichern sichergestellt und bei der Eingabe würden keine Fehler entstehen. Die Datei wird (leider) von vielen Anwendern benutzt.

Besten Dank für die Antwort! ;-)

Schöne Grüsse, Matthias

jinx
21.02.2008, 06:43
<font size="2" face="Century Gothic">Moin, Matthias,

die im Access-Forum erhaltenen Antworten bekommst Du mit Sicherheit auch hier.

Du kannst in den Text der Inputbox noch die Kombinationen aufnehmen, aber ich würde eher eine UserForm mit einem Kombinations-/Listenfeld oder Kontrollkästchen bzw. Optionsschaltflächen verwenden, um das Problem zu lösen...</font>

Matthias Kunz
21.02.2008, 07:50
Hi und besten Dank für die Antwort. Da ich von VBA nicht grosse Ahnung habe, würde ich interessieren, wie so ein Code aussehen würde? Dürfte ich mit eurer Unterstützung rechnen?

Herzlichen Dank und schöne Grüsse, Matthias

jinx
21.02.2008, 07:55
<font size="2" face="Century Gothic">Moin, Matthias,

kannst Du dann bitte die Wünsche für die Unterstützung etwas präzisieren? Oder einfach einmal "mit alles", wie man beim Bestellen eines Döners heute zu sagen pflegt? ;)</font>

Matthias Kunz
21.02.2008, 08:34
Also, ich versuch`s nochmals! ;-)

Beim Starten meiner Excel-Datei wird eine Inputbox eingeblendet. Der Benutzer muss dann eine Nummer-Kombo (z.B. 1&2) eingeben, welche in Kombination mit zusätzlichem Text (siehe Makro-Code) den Speichernamen generiert. Anschliessend wird die Datei automatisch in einen Ordner gespeichert. Der Code sieht wie folgt aus:

Private Sub Workbook_Open()
Dim sInput As String
sInput = InputBox("Bitte Zugsnummer eingeben (NUR Nummer)!:", "Zug?")
If sInput = "" Then
MsgBox "Die Zugsnummer wurde nicht eingegeben - bitte wiederholen!", vbExclamation, "Info"
sInput = InputBox("Dateiname eingeben:", "Pfad")
Else
ActiveWorkbook.SaveAs ("H:\Desktop\Dienstpläne\" & sInput & "-Zug" & "-" & Cells(1, 1).Value)
End If
End Sub

>>> Funktioniert einwandfrei!!! <<<



Meine Frage; kann man die 3 zulässigen Antworten vordefinieren, quasi mit Wahl eines Options- oder Listenfeldes. Also statt der manuellen Eingabe der Nummer-Kombo durch den Anwender einfach die 3 Antworten "Zug 1 & 2", "Zug 3 & 4" sowie "Zug 5 & 6" zum Anklicken bereitsstellen? So wäre ein einheitliches Speichern sichergestellt und bei der Eingabe würden keine Fehler entstehen. Die Datei wird (leider) von vielen Anwendern benutzt.


Die Inputbox müsste dann in etwa so daher kommen:

Bitte wählen Sie den Zug aus?
O "Zug 1&2" O "Zug 3&4" O "Zug 5&6"

> OK
> Abbrechen

Es geht lediglich darum, die Inputbox-Eingabe nicht manuell (Tastatur) auszuführen sondern per Mausklick eines der 3 Felder anwählen zu können.






Besten Dank für die Antwort! ;-)

Schöne Grüsse, Matthias

jinx
21.02.2008, 09:38
Moin, Matthias,

im Anhang findest Du eine Beispielmappe sowohl im 2007 als auch im normalen Excelformat. Bei Öffnen mit aktivierten Makros wird die UserForm mit der Abfrage geöffnet, ein Verlassen ohne Wahl einer Option ist nur durch Schließen (nicht jedoch mit einem Speichern) möglich.

'Diese Arbeitsmappe
Private Sub Workbook_Open()
frmAbfrage.Show
End Sub
'hinter der Userform
Private Sub cmdCancel_Click()
Unload Me
End Sub
<hr>
Private Sub cmdOK_Click()
Dim sInput As String
If optWahl1 Then sInput = "Zug 1 & 2"
If optWahl2 Then sInput = "Zug 3 & 4"
If optWahl3 Then sInput = "Zug 5 & 6"
ActiveWorkbook.SaveAs ("H:\Desktop\Dienstpläne\" & sInput & "-Zug" & "-" & Cells(1, 1).Value)
Unload Me
End Sub
<hr>
Private Sub optWahl1_Click()
cmdOK.Enabled = True
End Sub
<hr>
Private Sub optWahl2_Click()
cmdOK.Enabled = True
End Sub
<hr>
Private Sub optWahl3_Click()
cmdOK.Enabled = True
End Sub
<hr>
Private Sub UserForm_Activate()
optWahl1 = False
optWahl2 = False
optWahl3 = False
cmdOK.Enabled = False
End Sub
Bitte ggf, den Code zum Speichern anpassen...

Matthias Kunz
21.02.2008, 10:45
Hammer-mässig! Vielen, vielen Dank für die Super-Hilfe!!!!! ;-)

Schöne Grüsse, Matthias