Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: InputBox auslesen?

InputBox auslesen?
Lisa
Hallo zusammen, vielleicht könnt ihr mir bei folgendem Problem helfen.
Mittels diesen Makros füge ich Tabellenblätter in meine bestehende Mappe ein.
Richtigerweise eins weniger als eingegeben wird, also Eingabe -1
Dim i As Integer
i = InputBox("wie viele Blätter wollen sie anfügen?") - 1~f~
~f~Do Until i < 1
Sheets("Tabelle1").Copy After:=Sheets("Tabelle3")
ActiveSheet.Name = "MSD VP " & i
i = i - 1
Loop
Nun möchte ich gern in meiner Userform in einem Label anzeigen lassen wie viele Blätter angefügt wurden!
Kann man hierzu die Inputbox abfragen und in einem Label auf meiner Userform ausgeben lassen?
UserForm1.Label1 =InputBox oder ähnlich?
Vielen Dank für die Bemühungen
LG Lisa
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
ME ist das aber nicht gut durchdacht ...
09.08.2011 16:43:12
Matthias
Hallo
Nur als Denkanstoß
Option Explicit
Sub BlaetterEinfuegen()
Dim i As Integer
Dim FirstTab&, LastTab&
FirstTab = ThisWorkbook.Worksheets.Count 'Anzahl Blätter einlesen zu Beginn des Code
i = InputBox("wie viele Blätter wollen sie anfügen?") - 1
Do Until i 


Ich würde es aber so, ganz ehrlich gemeint nicht realisieren
Es muss immer eien "Tabelle3" geben
Du kannst den Code nur einmal laufen lassen.
Gruß Matthias
Anzeige
AW: die InputBox bzw. MsgBox auslesen?
10.08.2011 08:04:48
Lisa
Hallo Mathias, vielen Dank für deinen Versuch, leider hilft mir einen MsgBox nicht weiter.
Aber, wenn ich hierzu deinen Denkanstoss erweitere und die MsgBox versuche auszulesen, dass ginge auch schon mit der InputBox, bekomme ich in meinem Label einen Wert angezeigt. Leider aber immer nur eine 1 und nicht den Wert den ich eingegeben habe?
Lässt es sich in der Form, wie ich es lt. Code versucht habe umzusetzen, irgendwie realisieren? Odr kann man die Inputbox bzw. MsgBox nicht auslesen?
Natürlich ist mein Versuch ein eher spärlicher Versuch einer unwissenden was VBA anbetrifft, deshalb seid nicht so hart zu mir mit euren Kommentaren :)
Private Sub CommandButton1_Click()
Dim i As Integer
Dim FirstTab&, LastTab&
FirstTab = ThisWorkbook.Worksheets.Count 'Anzahl Blätter einlesen zu Beginn des Code
i = InputBox("wie viele Blätter wollen sie anfügen?") - 1
Do Until i 
LG Lisa
Anzeige
AW: gelöst!
10.08.2011 09:52:53
Lisa
Danke für die Hilfe, ich habe es, mit Hilfe des Denkanstosses von Matthias gelöst!
Hier das Makro dazu!
Private Sub CommandButton1_Click()
Dim Eingabe As String
Dim FirstTab&, LastTab&
FirstTab = ThisWorkbook.Worksheets.Count
Eingabe = InputBox("Bitte Wert eingeben") - 1
Label1 = Eingabe
Do Until Eingabe 
LG Lisa
Anzeige
Nein - das hast Du noch nicht richtig gelöst ...
10.08.2011 17:09:19
Matthias
Hallo Lisa
Was passiert denn, wenn Du "ok" klickst und Nichts in die Inputbox eingegeben hast,
oder Du hast Text eingegeben, oder Du hast nur eine 1 eingegeben, oder Du hast einfach nur "Abbrechen" angeklickt.
Probiers mal aus !
Ich hatte ja geschrieben, ich würde es so nicht realisieren.
Ich kann es z.B. nicht verstehen, das Du z.B. eine 2 eingeben mußt / willst,
wenn Du nur 1 Blatt einfügen willst.
Wenn ich nur ein Blatt einfügen will gebe ich eine 1 in die Inputbox ein !
Sicher kann Dir geholfen werden, aber dann solltest Du mit eigenen Worten
mal etwas genauer erlären was Du wirklich möchtest.
Was soll z.B passieren, wenn es ein Tabellenblatt mit dem entsprechenden Namen schon gibt?
Und Du bist auch nicht darauf eingegengen das ich bemerkte,
das es immer ein Tabellenblatt mit dem RegisterNamen "Tabelle3" geben muß.
Ich denke eher Du willst immer hinter das letzte Blatt einfügen
das geht z.B. mit WorkSheets.Count
Hier ein Beispiel
https://www.herber.de/bbs/user/76110.xls
Und das mit den BlattNamen bekommst vielleich selbst hin
Sonst melde Dich einfach nochmal
Gruß Matthias
Anzeige
;
Anzeige

Infobox / Tutorial

InputBox in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf einen vorhandenen VBA-Projektordner und wähle Einfügen > Modul.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Private Sub CommandButton1_Click()
        Dim Eingabe As String
        Dim FirstTab As Integer, LastTab As Integer
        FirstTab = ThisWorkbook.Worksheets.Count
        Eingabe = InputBox("Wie viele Blätter wollen Sie anfügen?") - 1
        Label1.Caption = Eingabe  ' Label in der Userform aktualisieren
        Do Until Eingabe < 1
            Sheets("Tabelle1").Copy After:=Sheets(FirstTab)
            ActiveSheet.Name = "MSD VP " & Eingabe
            Eingabe = Eingabe - 1
        Loop
    End Sub
  4. Userform anpassen: Stelle sicher, dass du eine Userform mit einem Label (Label1) und einem Button (CommandButton1) hast.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über die Userform aus.


Häufige Fehler und Lösungen

  • Fehler 1: Eingabe ist leer oder ungültig.

    • Lösung: Füge eine Validierung für die Eingabe hinzu, um sicherzustellen, dass der Benutzer eine Zahl eingibt:
    If Not IsNumeric(Eingabe) Or Eingabe < 1 Then
        MsgBox "Bitte geben Sie eine gültige Zahl größer als 0 ein."
        Exit Sub
    End If
  • Fehler 2: Blattname bereits vorhanden.

    • Lösung: Überprüfe, ob der Name bereits existiert, bevor du das Blatt kopierst.
    On Error Resume Next
    ActiveSheet.Name = "MSD VP " & Eingabe
    If Err.Number <> 0 Then
        MsgBox "Der Blattname ist bereits vergeben. Bitte einen anderen Namen wählen."
        Err.Clear
        Exit Sub
    End If
    On Error GoTo 0

Alternative Methoden

  • Verwendung von MsgBox: Anstelle einer InputBox kannst du auch eine MsgBox zur Bestätigung verwenden, aber das ist weniger interaktiv.

  • Direkte Eingabe in Zelle: Du kannst die Anzahl der Blätter auch direkt in eine Zelle eingeben und den Wert daraus lesen, um ein besseres Benutzererlebnis zu schaffen.


Praktische Beispiele

  1. Beispiel zur Eingabe: Wenn der Benutzer 3 eingibt, werden 2 neue Blätter hinzugefügt (3-1).
  2. Dynamische Blattnamen: Der Name der neuen Blätter wird dynamisch anhand der Eingabe erstellt, z. B. "MSD VP 2", "MSD VP 1".

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine umfassende Fehlerbehandlung, um das Makro robuster zu machen.

  • Benutzerführung: Erkläre dem Benutzer, wie er die InputBox verwenden soll, um Missverständnisse zu vermeiden.

  • InputBox anpassen: Du kannst auch die Eingabemaske der InputBox anpassen, indem du eine benutzerdefinierte Userform erstellst, die mehr Kontrolle und Gestaltung ermöglicht.


FAQ: Häufige Fragen

1. Warum wird der Wert in der InputBox nicht richtig angezeigt? Wenn du den Wert nicht richtig ausgibst, überprüfe, ob du den Wert korrekt in das Label überträgst. Es sollte Label1.Caption = Eingabe sein.

2. Was passiert, wenn ich "Abbrechen" drücke? Wenn der Benutzer "Abbrechen" wählt, wird die Eingabe "" sein. Du solltest dies abfangen, um Fehler zu vermeiden.

3. Wie kann ich sicherstellen, dass die Anzahl der Blätter korrekt ist? Füge eine Validierung ein, die sicherstellt, dass der Benutzer eine Zahl größer als 0 eingibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige