Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabemeldung / Datenüberprüfung

Forumthread: Eingabemeldung / Datenüberprüfung

Eingabemeldung / Datenüberprüfung
25.01.2020 10:00:02
Moni
Hallo Leute,
ich benötige mal wieder professionelle Hilfe aus dem Forum.
Gibt es eine Möglichkeit eine Eingabemeldung (ich meine die Eingabemeldung aus der Datenüberprüfung)
über VBA auszulösen.
Ich bekomme zwar eine Eingabemeldung mit einer MsgBox hin aber ich bevorzuge doch lieber
eine Eingabemeldung (wie die aus der Datenüberprüfung), da diese bei verlassen der Zelle automatisch erlischt.
Ich möchte gern den Titel und die Eingabemeldung aus einer anderen Zellen übernehmen.
Ist das möglich?
Lg
Moni
Mein Code mit einer MsGBox:
If Target.Address = "$A5$" Then MsgBox Tabelle1.Range("A5")
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:08:22
Hajo_Zi
Hallo Moni,
msgbox für bestzimmte Zeit.
Sub MsgZeit()
'   Blendet eine Msgbox nach 10 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 10
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!" & Space(10), _
bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
Set objWSH = Nothing
End Sub

Anzeige
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:19:46
Moni
Hallo und guten morgen,
erst einmal danke.
gibt es ein Möglichkeit, deinen Code in meinem zu implementieren,
so das ich deinen Code nicht 100x hinter meinem packen muss.
Lg Moni
If Target.Address = "$A5$" Then MsgBox Tabelle1.Range("A5")
If Target.Address = "$A6$" Then MsgBox Tabelle1.Range("A6")
If Target.Address = "$A7$" Then MsgBox Tabelle1.Range("A7")
..
…
…
If Target.Address = "$A105$" Then MsgBox Tabelle1.Range("A105")
Anzeige
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:22:46
Hajo_Zi
setze eine Boolean Variable auf true und Prüfe am Ende diese Variablöe.
Gruß Hajo
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:26:21
Moni
Hallo Hajo_Zi,
ich glaube da reichen meine VBA Kenntnisse nicht.
Könntest du mir da helfen ?
Lg
Moni
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:33:29
Hajo_Zi

Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Razelle As Range
Dim RaBereich As Range                          ' Variable für Bereich    Dim RaZelle As  _
Range                            ' Variable für Zelle
Set RaBereich = Range("A5:A105")        ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each Razelle In RaBereich
'   Blendet eine Msgbox nach 10 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 1
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Zellinhalt " & Razelle & " " & Razelle.Address & Space( _
10), _
bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
Next Razelle
'ActiveSheet.protect ("Passwort")
Set objWSH = Nothing
End If
Set RaBereich = Nothing                         ' Variable leeren
End Sub
Gruß Hajo
Anzeige
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:40:12
Moni
Hallo Hajo_Zi,
suuuuuuuuuuuuuuuuuupi,
Danke :-)
LG Moni
AW: Eingabemeldung / Datenüberprüfung
25.01.2020 10:39:35
Nepumuk
Hallo Moni,
in das Modul der Tabelle:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    Set objRange = Range("A5:A105")
    If Not Intersect(Target, objRange) Is Nothing Then
        Call objRange.Validation.Delete
        For Each objCell In objRange
            With objCell.Validation
                Call .Add(Type:=xlValidateInputOnly)
                .InputMessage = Tabelle1.Range(objCell.Address).Text
            End With
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige
;
Anzeige

Infobox / Tutorial

Eingabemeldung und Datenüberprüfung in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsblattname)" und wähle Einfügen > Modul.

  3. Kopiere den VBA-Code: Füge den folgenden Code in das Modul ein, um die Eingabemeldung zu integrieren:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Razelle As Range
       Dim RaBereich As Range
       Set RaBereich = Range("A5:A105") ' Bereich der Wirksamkeit
       Set RaBereich = Intersect(RaBereich, Target)
    
       If Not RaBereich Is Nothing Then
           For Each Razelle In RaBereich
               ' Eingabemeldung anzeigen
               Razelle.Validation.Delete
               With Razelle.Validation
                   .Add Type:=xlValidateInputOnly
                   .InputMessage = "Gib einen Wert ein für: " & Razelle.Address
               End With
           Next Razelle
       End If
    End Sub
  4. Schließe den VBA-Editor: Speichere deine Änderungen und schließe den Editor.

  5. Testen: Ändere einen Wert in den Zellen A5 bis A105, um die Eingabemeldung zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler bei der Eingabemeldung: Wenn die Meldung nicht erscheint, stelle sicher, dass du die richtige Zellbereichsdefinition verwendet hast.
  • VBA-Code funktioniert nicht: Überprüfe, ob Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros und aktiviere die Makros.

Alternative Methoden

Falls du keine Programmierung in VBA verwenden möchtest, kannst du auch die Datenüberprüfung in Excel nutzen:

  1. Wähle die Zellen A5 bis A105 aus.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle im Dropdown-Menü Benutzerdefiniert aus und gebe die gewünschte Eingabemeldung im Reiter Eingabemeldung ein.

Praktische Beispiele

  • Beispiel für eine Eingabemeldung: Wenn du eine Eingabemeldung für eine Zelle haben möchtest, die den Benutzer auffordert, eine Zahl einzugeben, kannst du den oben genannten VBA-Code anpassen, um spezifische Anweisungen zu geben.
.InputMessage = "Bitte gebe eine Zahl für " & Razelle.Address & " ein."
  • Eingabemeldung für mehrere Zellen: Der VBA-Code kann leicht angepasst werden, um unterschiedliche Eingabemeldungen für verschiedene Zellbereiche zu zeigen.

Tipps für Profis

  • Nutze Boolean-Variablen in deinem Code, um die Ausführung zu steuern und nur dann Meldungen anzuzeigen, wenn spezifische Bedingungen erfüllt sind.
  • Halte deinen VBA-Code organisiert, indem du häufig verwendete Funktionen in separate Module auslagerst, um die Lesbarkeit und Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Eingabemeldung für andere Zellen anpassen?
Du kannst den Zellbereich im Code ändern, um andere Zellen zu inkludieren. Ersetze Range("A5:A105") durch deinen gewünschten Zellbereich.

2. Was mache ich, wenn der VBA-Code nicht funktioniert?
Überprüfe, ob der Code korrekt eingegeben wurde und ob Makros in deinen Excel-Einstellungen aktiviert sind. Achte auch darauf, dass du den Code in das richtige Arbeitsblatt-Modul eingefügt hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige