Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA Inputbox minimieren

21 views
Skip to first unread message

Dan

unread,
Nov 2, 2009, 5:27:37 AM11/2/09
to
Hi Zusammen!

Gibt es die Möglichkeit eine Inputbox zu minimieren, bzw. während eine
solche offen ist, die aktive Tabelle weiterhin zu bedienen?

Hintergrund: Wenn ein bestimmter Wert nicht gefunden wird, soll eine
Inputbox aufgehen, in die die passende Zeilennummer von Hand
eingetragen werden kann. Hierzu muss es dem Benutzer jedoch möglich
sein im Dokument zu scrollen etc.

Danke für Infos,
Dan

Alexander Wolff

unread,
Nov 2, 2009, 5:44:46 AM11/2/09
to
Als <news:ecb5f337-1f93-4fd0...@o10g2000yqa.googlegroups.com>
lie�
Dan verlautbaren, evtl. nachfolgend zitiert:

> Gibt es die M�glichkeit eine Inputbox zu minimieren, bzw. w�hrend eine


> solche offen ist, die aktive Tabelle weiterhin zu bedienen?

Da wirst Du Dich wohl mit Userforms befassen m�ssen.
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2

Andreas Killer

unread,
Nov 2, 2009, 6:59:26 AM11/2/09
to
On 2 Nov., 11:27, Dan <omni...@googlemail.com> wrote:

> Gibt es die Möglichkeit eine Inputbox zu minimieren, bzw. während eine
> solche offen ist, die aktive Tabelle weiterhin zu bedienen?

Nein und ergänzend zu Alexanders Antwort noch eine kleine Bau-
Anleitung, denn es gibt es einen kleinen Haken:

Wenn Du aus einem Makro eine gebundene Userform aufrufst (.Show), dann
"wartet" Dein Makro solange bis sie wieder zugeht. Wenn Du eine
ungebundene Userform (.Show vbmodLess) aufrufst, dann wird sie
gestartet und Dein Makro läuft sofort weiter.

Und wenn Du scrollen willst, dann musst Du Sie ungebunden aufrufen,
damit Du den Task auf Excel umschalten kannst. Nun muss Dein Makro
aber in einer Schleife warten bis die Form wieder zu ist..., das ist
alles nicht so einfach wenn man's noch nie gemacht hat.

Mach mal eine neue Mappe, füge im VBA-Editor eine Userform ein,
erstelle auf dieser einen Label (Bezeichnungsfeld), eine Textbox
(Textfeld) und 2 Commandbutton's (Befehlsschaltflächen). Drück F7 und
füge in das CodeModul der Userform diesen Code:

--- schnipp ---
Private Sub CommandButton1_Click()
'Ok-Button
Antwort = TextBox1 'Antwort zurückgeben
Unload Me 'Userform zu
End Sub

Private Sub CommandButton2_Click()
'Abbruch-Button
Unload Me 'Userform zu
End Sub

Private Sub UserForm_Initialize()
'Annehmen der User bricht ab
Antwort = ""
'Wir werden ausgeführt
Läuft = True

'Die Eigenschaften der Buttons sollte/kann man natürlich _
auch direkt einstellen:
'Dieser Button wird ausgelöst wenn man ENTER drückt
CommandButton1.Default = True
'Dieser Button wird ausgelöst wenn man ESC drückt
CommandButton2.Cancel = True
End Sub

Private Sub UserForm_Terminate()
'Zurückmelden das die Form zu ist
Läuft = False
End Sub
--- schnapp ---

Erstelle ein normales Modul und füge diesen Code ein:

--- schnipp ---
Public Antwort As String
Public Läuft As Boolean

Sub Test()
With UserForm1
'Titel
.Caption = "Titel"
'Prompt setzen
.Label1 = "Frage"
'Vordefinierte Antwort setzen
.TextBox1 = "123"
'Anzeigen aber umschalten zulassen
.Show vbModLess
End With

'Solange sie läuft
Do While Läuft
'Alle anderen dürfen auch mal
DoEvents
Loop

If Antwort = "" Then
'Abbruch
Else
'Antwort = Zeile
End If
End Sub
--- schnapp ---

Nun starte das Makro Test und wenn' Dir so gefällt dann kannst Du es
als InputBox durchstylen.

Und wie man nur Zahlen als Eingabe in einer Userform erlaubt ließ
bitte hier nach:
http://groups.google.de/group/microsoft.public.de.excel/browse_thread/thread/735a1acacd9b9753?hl=de#

Andreas.

0 new messages