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

Forumthread: VBA Zelle auswählen über inputbox

VBA Zelle auswählen über inputbox
09.03.2020 19:31:28
Sarah
Hallo,
ich bin neu in VBA und hätte eine Frage. Ich programmiere derzeit in VBA Multiplikation von mehreren Zahlen und bin schon sehr weit. Jetzt zu meiner Frage wie kann ich wenn ich über die Inputbox frage in welcher Zelle man das Ergebnis der Rechnung haben möchte, verhindern das da wenn Schwachsinn reingeschrieben wurde, kein Fehler mit Zelle nicht gefunden erscheint? Sondern eine MsgBox mit "Bitte Zelle mit Großbuchstabe und Zahl angeben. Z.B. (A1)". Ich möchte das ja so programmieren das Leute ohne VBA Kenntnisse es nutzen können...

Sub Makro1()
Dim Eingabe As Variant
Eingabe = InputBox("In Welche Zelle soll das Ergebnis reingeschrieben werden? (Z.B. A1)", " _
Ergebnis")
If Eingabe=Schwachsinnn
MsgBox ("Bitte Zelle mit Großbuchstabe und Zahl angeben. Z.B. (A1)")
Range(Eingabe).Value = "Hallo"
End Sub

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle auswählen über inputbox
09.03.2020 19:59:11
Nepumuk
Hallo Sarah,
teste mal:
Option Explicit

Sub Makro1()
    Dim Eingabe As Range
    On Error Resume Next
    Do
        Set Eingabe = Application.InputBox(Prompt:="Bitte Zelle auswählen.", _
            Title:="Ergebnis", Type:=8)
        On Error GoTo 0
        If Eingabe Is Nothing Then
            MsgBox "Bitte eine Zelle auswählen"
        Else
            Eingabe.Value = "Hallo"
            Exit Do
        End If
    Loop
End Sub

Gruß
Nepumuk
Anzeige
Info auf VBA-Fehlermeldung ...
10.03.2020 04:35:25
Matthias
Hallo Nepumuk,
nur ein Hinweis das der Code in einen Fehler laufen kann/wird.
Das sollte noch optimiert werden.
Klick mal auf Abbrechen und dannach aufs Kreuz oder
Klick mal aufs Kreuz und dannach auf Abbrechen.
Es erscheint ein VBA-Fehler.
Man sollte hier die Möglichkeit haben auch abbrechen zu können.
Gruß Matthias
Anzeige
AW: Info auf VBA-Fehlermeldung ...
10.03.2020 08:07:39
Nepumuk
Hallo,
dann so:
Option Explicit

Sub Makro1()
    Dim Eingabe As Range
    On Error Resume Next
    Do
        Set Eingabe = Application.InputBox(Prompt:="Bitte Zelle auswählen.", _
            Title:="Ergebnis", Type:=8)
        If Eingabe Is Nothing Then
            MsgBox "Bitte eine Zelle auswählen"
        Else
            Eingabe.Value = "Hallo"
            Exit Do
        End If
    Loop
    On Error GoTo 0
End Sub

Gruß
Nepumuk
Anzeige
AW: Info auf VBA-Fehlermeldung ...
10.03.2020 16:23:49
Sarah
Also der Code funktioniert super :-D danke für die schnelle Antwort. Damit ich in Zukunft auch so was programmieren kann 2 Fragen. Für was und wie funktioniert On Error Resume Next und On Error GoTo 0. Und ich verstehe nicht den Unterschied zwischen InputBox und Application.InputBox nicht.
Danke :-)
Anzeige
AW: Info auf VBA-Fehlermeldung ...
10.03.2020 17:24:36
Matthias
HAllo
On Error Resume Next ignoriert "eigentlich" fast alle VBA-Fehler.
Mit On Error GoTo 0 wird die Fehler-Nummer (ErrNumber) zurück auf 0 gesetzt.
Mit Application.InputBox kannst Du mE den Type:=8 erzwingen, was bei nur InputBox nicht geht.
Allerdings fände ich es angebrachter auch die Möglichkeit zu haben abzubrechen. Was bei dem Code von Nepumuk nicht vorgesehen ist.
Das kann für Dich ja so in Ordnung sein, ich finde das aber nicht optimal.
Gruß Matthias
Anzeige
schon mal was von Rückmeldung gehört ? ... owT
13.03.2020 18:42:15
Rückmeldung
AW: schon mal was von Rückmeldung gehört ? ... owT
13.03.2020 18:59:04
Rückmeldung
Hallo,
ich danke dir das du meine Fragen beantwortet hast. Ich verstehe es jetzt besser wie der Code funktioniert. Dadurch konnte ich ein ähnliches Problem in einem anderen Projekt lösen. :-)
Ich wünsche dir ein schönes Wochenende,
Sarah
na das ist doch dann doch nett von Dir :-)
13.03.2020 19:36:40
Dir
.
Anzeige
so kann man aber auch nicht abbrechen ! owT
11.03.2020 19:11:19
Matthias
Hallo
Sollte es Sarah noch interessieren ...,
ich würde es einfach so machen:
Dim Eingabe As Range
On Error Resume Next
Set Eingabe = Application.InputBox(Prompt:="Bitte Zelle auswählen.", _
Title:="Ergebnis", Type:=8)
If Eingabe Is Nothing Then MsgBox "Bitte Makro neu starten & eine Zelle auswählen"
On Error GoTo 0
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle über InputBox in VBA auswählen und aktivieren


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro zu erstellen, das eine Zelle über eine InputBox auswählt, kannst du folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass nur gültige Zellreferenzen akzeptiert werden und bietet eine Möglichkeit zur Fehlerbehandlung.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code ein:
Sub Makro1()
    Dim Eingabe As Range
    On Error Resume Next
    Set Eingabe = Application.InputBox(Prompt:="Bitte Zelle auswählen.", _
                                        Title:="Ergebnis", Type:=8)
    On Error GoTo 0

    If Eingabe Is Nothing Then
        MsgBox "Bitte Makro neu starten und eine Zelle auswählen."
    Else
        Eingabe.Value = "Hallo"
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro über Entwicklertools > Makros > Makro1 aus.

Häufige Fehler und Lösungen

  • Fehler: "Zelle nicht gefunden"

    • Stelle sicher, dass die Eingabe in der InputBox eine gültige Zellreferenz ist (z.B. A1, B2).
  • Problem mit Abbrechen der InputBox

    • Wenn du die InputBox abbrichst, wird der Code so angepasst, dass eine MsgBox die Nutzer informiert, das Makro neu zu starten, um eine Zelle auszuwählen.

Alternative Methoden

Wenn du eine elegantere Lösung suchst, kannst du die VBA InputBox verwenden. Diese Methode erfordert keine Typangabe:

Sub AlternativeMakro()
    Dim Eingabe As String
    Eingabe = InputBox("In welche Zelle soll das Ergebnis geschrieben werden? (z.B. A1)")

    If Eingabe = "" Then
        MsgBox "Keine Eingabe. Bitte erneut versuchen."
    Else
        On Error Resume Next
        Range(Eingabe).Value = "Hallo"
        If Err.Number <> 0 Then
            MsgBox "Ungültige Zelle. Bitte eine gültige Zellreferenz eingeben."
        End If
        On Error GoTo 0
    End If
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie du die InputBox in verschiedenen Szenarien nutzen kannst:

  1. Einfaches Setzen eines Wertes in eine Zelle:

    • Frage den Nutzer nach einer Zellreferenz und setze einen Wert.
  2. Erweiterte Eingaben:

    • Erlaube Nutzern, auch mehrere Zellen auszuwählen, indem du Type:=8 in Application.InputBox verwendest.

Tipps für Profis

  • Verwende On Error Resume Next: Dies ermöglicht es dir, Fehler zu ignorieren und den Code weiter auszuführen. Achte jedoch darauf, dass du immer eine Fehlerbehandlung implementierst, um unerwünschte Ergebnisse zu vermeiden.

  • Zellen aktivieren: Wenn du eine Zelle aktivieren möchtest, kannst du Eingabe.Select verwenden, nachdem du die Zelle ausgewählt hast.

  • InputBox anpassen: Du kannst die InputBox weiter anpassen, um spezifische Anweisungen oder Beispiele für die Nutzer bereitzustellen.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen InputBox und Application.InputBox?

  • InputBox gibt dir nur einen Textwert zurück, während Application.InputBox den Typ der Eingabe steuern kann, z.B. durch Type:=8, um nur Zellen auszuwählen.

2. Wie kann ich sicherstellen, dass die Eingabe in der InputBox gültig ist?

  • Verwende On Error Resume Next und prüfe, ob die Eingabe Nothing ist. Wenn ja, zeige eine MsgBox an, um den Nutzer zu informieren.

3. Wie verhindere ich Fehler, wenn der Nutzer auf Abbrechen klickt?

  • Stelle sicher, dass du die Eingabe auf Nothing prüfst und eine entsprechende Fehlermeldung anzeigst, wenn die Auswahl nicht gültig ist.

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