Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alternative Eingaben über InputBox

Alternative Eingaben über InputBox
22.06.2008 12:30:00
KlausF
Hallo Excellenzen!
Habe in einer Riesentabelle die automatische Durchrechnung ausgeschaltet.
Bevor die Sheets per Button manuell durchgerechnet werden, prüfe ich, ob die unbedingt notwendigen Eintragungen vorgenommen wurden = 5Zellen mit wichtigen Parametern. Sind diese Zellen leer, soll der Nutzer mittels Inputbox zur Eingabe aufgefordert werden. So weit habe ich das Makro zusammen.
Aber:
Bei einem Parametern gibt es eine alternative Eingabemöglichkeit:
Der Nutzer soll entweder die maximale Korngröße in G10 oder die Korngröße bei 80%-igem Durchgang in G12 eingegeben haben (trägt er doch beides ein, wird letzteres weiter verwendet).
Frage:
Wie kann ich diese alternative Eingabe mittels InputBox lösen?
Grüße
Klaus

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alternative Eingaben über InputBox
22.06.2008 12:52:00
Reinhard
Hi Klaus,
probiers mal so:

Korn = Range("G12")
If Range("G10") = "" And Range("G12") = "" Then
Korn=inputBox(...)
If Korn = "" Then Exit Sub
ElseIf Korn = "" Then
Korn = Range("G10")
End If


Gruß
Reinhard

AW: Alternative Eingaben über InputBox
22.06.2008 13:45:00
KlausF
Hallo Reinhard,
erst mal Danke für Deine Mühe!
Aber hier fehlt irgendwie eine zweite Inputbox.
Sind G10 und G12 beide leer, soll er entweder zu G10 oder zu G12 etwas eingeben- ansonsten Ende Sub.
Mein Versuch, das "If Korn = "" Then Exit Sub" rauszunehmen und "Korn = Range("G10")" durch eine zweite Inputbox zu ersetzen führen leider nicht zum Erfolg ;-(
Fällt Dir dazu was besseres ein?

Anzeige
Sorry, mir unklar, Frage noch offen o.w.T.
22.06.2008 14:33:00
Reinhard


AW: Sorry, mir unklar, Frage noch offen o.w.T.
22.06.2008 14:41:00
fcs
Hallo Klaus,
hier ein Vorschlag wie die die beiden Zellen prüfen und vie Input-Boxen die Eingabe der Werte steuern kannst. Dabei muss wenn beide Zellen leer sind zunächst die auszufüllende Zelle gewählt werden.
Ich hab den Ablauf so eingestellt, dass die Eingabe bei Klick auf Abbrechen wiederholt werden muss. Dies muss du ggf. ändern.
Gruß
Franz

Sub aatt()
Dim varEingabe
If IsEmpty(Range("G10")) And IsEmpty(Range("G12")) Then
'Beide nicht ausgefüllt
Eingabe01:
varEingabe = Application.InputBox(Prompt:="Eingabe in G10 oder G12 isterforderlich!" _
& vbLf & "Was wollen Sie eingeben?" & vbLf _
& "1 = maximale Korngröße in G10" & vbLf _
& "2 = Korngröße bei 80% Durchgang in G12", _
Title:="Kontrolle Eingabewerte", _
Default:=2, Type:=1)
Select Case varEingabe
Case 1
Eingabe02:
varEingabe = Application.InputBox(Prompt:="maximale Korngröße (mikrometer) in G10:", _
Title:="Kontrolle Eingabewerte", Default:=250, Type:=1)
If varEingabe > 0 Then
Range("G10").Value = varEingabe
Else
MsgBox "Unzulässige Eingabe, Abbrechen nicht zulässig. Bitte wiederholen!"
GoTo Eingabe02
End If
Case 2
Eingabe03:
varEingabe = Application.InputBox( _
Prompt:="Korngröße bei 80% Durchgang (mikrometer) in G12:", _
Title:="Kontrolle Eingabewerte", Default:=250, Type:=1)
If varEingabe > 0 Then
Range("G12").Value = varEingabe
Else
MsgBox "Unzulässige Eingabe, Abbrechen nicht zulässig. Bitte wiederholen!"
GoTo Eingabe03
End If
Case 0
'Eingabe wurde abgebrochen
MsgBox "Abbrechen der Eingabe nicht zulässig!"
GoTo Eingabe01
Case Else
MsgBox " Falsche Eingabe für Auswahl!"
GoTo Eingabe01
End Select
ElseIf Not (IsEmpty(Range("G10")) Or IsEmpty(Range("G12"))) Then
'beide Zellen ausgefüllt
Eingabe04:
varEingabe = Application.InputBox(Prompt:="Nur eine der Zellen G10 oder G12 darf ausgefüllt  _
sein!" & vbLf _
& "Welchen Wert wollen Sie verwenden?" & vbLf _
& "1 = maximale Korngröße in G10:               " & Range("G10").Value & vbLf _
& "2 = Korngröße bei 80% Durchgang in G12:  " & Range("G12").Value, _
Title:="Kontrolle Eingabewerte", _
Default:=2, Type:=1)
Select Case varEingabe
Case 1
Range("G12").ClearContents
Case 2
Range("G10").ClearContents
Case 0
'Eingabe wurde abgebrochen
MsgBox "Abbrechen der Eingabe nicht zulässig!"
GoTo Eingabe04
Case Else
MsgBox " Falsche Eingabe für Auswahl"
GoTo Eingabe04
End Select
End If
End Sub


Anzeige
AW: Vieleicht so?
22.06.2008 15:51:07
hary
Hallo Klaus
Versuchs mal so. Vieleicht ist es so in etwa.

Dim Korn, Korn2 As Variant
Sub kornRe()
Korn = InputBox("eingabe")
Range("G10") = Korn
If Range("G12") = "" Then
Korn2 = InputBox("Eingabe2")
Range("G12") = Korn2
If Korn2 = "" Then Exit Sub
End If
End Sub


Gruss Hary

AW: Alternative Eingaben über InputBox
22.06.2008 14:40:26
Gerd
Hallo Klaus,
hast Du eine Brennerei ? :-)

Sub Alternativer_Wert()
Dim Körner As Variant
Do While Len(Range("G10")) * Len(Range("G12")) = 0 And Körner = Empty
Körner = InputBox("Körner oder Quote eingeben")
If StrPtr(Körner) = 0 Then Exit Do 'bei Abbrechen
If MsgBox("Ist Wert Quote?", vbYesNo) = vbYes Then
Range("G12") = Körner
Else
Range("G10") = Körner
End If
Loop
If Körner= "" then Exit Sub
End Sub


Gruß Gerd

Anzeige
@Franz und Gerd:
22.06.2008 15:42:00
KlausF
Hallo, Ihr beiden!
Danke für die viele Mühe!!!
Beim Vorschlag von Franz hab ich den Teil 4 (beides ist ausgefüllt) gekillt (und damit auch paar Fehlermeldungen): funzt.
Der Vorschlag dient mir in Zukunft für Eigenentwicklungen zum "Eingabemanagement" (bis ich mal UF beherrsche).
Ich bevorzuge aber trotzdem den Vorschlag von Gerd - wegen der Kürze.
(Gerd: Ich habe leider keine Brennerei - das Thema gehört zu Baustoffmahlanlagen)
Nur ein kleines Prob habe ich nun neu:
Nach diesen Kontrollen und Eingaben folgt die Veranlassung der Durchrechnung.
Worksheets("Mühlen").Calculate
Und da meckert jetzt Excel: "Laufzeitfehler 9 : Index außerhalb des gültigen Bereiches"
Bisher gings. Woran kann das nun liegen?
Bit besten Dank an Euch beide
Klaus

Anzeige
AW: @Franz und Gerd:
22.06.2008 15:54:55
Reinhard
Hi Klaus,
überprüfe die exakte Schreibweise von Mühlen.
Gruß
Reinhard

AW: @Franz und Gerd:
22.06.2008 15:58:10
fcs
Hallo Klaus,
die Info läßt uns leider im Nebel stochern. Bei welcher Anweisung in einer Prozedur tritt denn der Fehler auf?
Ursache sind typischer Weise Zählerüberlauf bei Array-Variablen oder Probleme bei fehlenden Blattnamen/Dateinamen.
Manchmal kann auch die Übergabe von Zahlen als Text sein, wo Excel eine richtige Zahl erwartet. Kann passieren, wenn man Zahlen via Textboxen/Inputboxen eingibt.
Wir brauchen mehr Infos.
Gruß
Franz

OT nachfrage
22.06.2008 18:27:00
Reinhard
Hallo Franz,
die Fehlermeldung:
Laufzeitfehler 9 : Index außerhalb des gültigen Bereiches
kommt m.E. nur dann wenn es ein Objekt oder wie immer man das korrekt benennt nicht gibt.
Falscher Blattname ist klar, auch wenn ich in einem 100 Einträge großen Array den Wert von arrDaten(123) haben will ist auch kar daß dann dieser Fehler kommt.
Was ich nicht verstanden habe ist dieses:
******************************************************************
Manchmal kann auch die Übergabe von Zahlen als Text sein, wo Excel eine richtige Zahl erwartet. Kann
passieren, wenn man Zahlen via Textboxen/Inputboxen eingibt.
******************************************************************
Kommt denn da nicht die Fehlermeldung "Falscher Typ" o.ä.?
Danke ^ Gruß
Reinhard

Anzeige
AW: OT nachfrage
23.06.2008 00:42:00
fcs
Hallo Reinhard,
an einen falsch geschriebenen Blattnamen hatte ich bei Klaus's Problem ja garnicht gedacht.
Manchmal sind es ja nur Kleinigkeiten, die einen scheinbar zur Verzweiflung bringen können, weil man bei der Deklaration von Variablen bzw. der Dateneingabe ein wenig großzügig war.
Lege z.B. in einer Arbeitsmappe ein Blatt mit dem Namen 12 an.
Makro aaaTest reagiert ggf. mit Fehlermeldung. Die anderen beiden funktionieren.
Gruß
Franz

Sub aaaTest()
Dim Blattname
Blattname = 12
Worksheets(Blattname).Select
End Sub
Sub bbbTest()
Dim Blattname
Blattname = "12"
Worksheets(Blattname).Select
End Sub
Sub cccTest()
Dim Blattname As String
Blattname = 12
Worksheets(Blattname).Select
End Sub


Anzeige
AW: @Franz und Reinhard:
22.06.2008 16:15:00
KlausF
Hallo Ihr beiden!
Reinhard hat den Nagel getroffen: Ich Depp hab' ein Leerzeichen vor dem Blattnamen eingetippt.
Also jetzt alles in Butter!
Franz: Und da ich inzwischen "weitergestrickt" habe, bin ich wieder zu Deinem Code in abgewandelter Form "zurückgekehrt" - später Triumph ;-)))
Danke Euch allen!
Und einen schönen Sonntag noch!
Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige