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

Standard Text in leerer Zelle

Forumthread: Standard Text in leerer Zelle

Standard Text in leerer Zelle
05.06.2006 14:00:04
Alexander
Hi,
Gibt es eine Moeglichkeit einen Standard Text in eine Zelle zu setzen, so z.B. "Geben Sie hier Ihren Wert ein". Wichtig hierbei ist, dass dieser Texte immer zusehen sein soll, wenn die Zelle keinen Wert enthaelt. Klickt der User die Zelle an, soll der Text verschwinden und ueberschrieben werden. Gibt der User dann doch keinen Wert eine und klickt auf eine andere Zelle, soll der Standardtext wieder erscheinen.
Vielen Dank und Gruss,
Alexander
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Standard Text in leerer Zelle
05.06.2006 14:39:52
Josef
Hallo Alexander!
Das geht z.B. so.
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Const strMsg As String = "Geben Sie hier Ihren Wert ein"


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
  Application.EnableEvents = False
  If Target = "" Then Target = strMsg
  Application.EnableEvents = True
End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If [C3] = "" Then [C3] = strMsg
If Target.Address = "$C$3" Then
  If Target = strMsg Then Target = ""
End If
Application.EnableEvents = True
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Standard Text in leerer Zelle
05.06.2006 15:30:55
Alexander
Super. Das hat geholfen. Danke. Wie wuerde der Code aussehen, wenn ich mehrere Zellen mit verschiedenen string texten in einem worksheet habe?
Vielen Dank,
Alexander
AW: Standard Text in leerer Zelle
05.06.2006 15:51:47
Josef
Hallo Alexander!
Z.B. so.
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Const strMsg1 As String = "Geben Sie hier Ihren Wert ein"
Const strMsg2 As String = "Schreib's hier rein!"
Const strMsg3 As String = "Ihre Eingabe"


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address
  Case "$C$3"
    If Target = "" Then Target = strMsg1
  Case "$D$5"
    If Target = "" Then Target = strMsg2
  Case "$F$1"
    If Target = "" Then Target = strMsg3
End Select
Application.EnableEvents = True
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If [C3] = "" Then [C3] = strMsg1
If [D5] = "" Then [D5] = strMsg2
If [F1] = "" Then [F1] = strMsg3
Select Case Target.Address
  Case "$C$3"
    If Target = strMsg1 Then Target = ""
  Case "$D$5"
    If Target = strMsg2 Then Target = ""
  Case "$F$1"
    If Target = strMsg3 Then Target = ""
End Select
Application.EnableEvents = True
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Standard Text in leerer Zelle
05.06.2006 16:42:43
Alexander
Vielen Dank. Hat gehoplfen.
;
Anzeige
Anzeige

Infobox / Tutorial

Standard Text in leerer Zelle


Schritt-für-Schritt-Anleitung

Um einen Standard Text in einer Zelle zu setzen, der verschwindet, wenn die Zelle angeklickt wird, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass der Text erscheint, wenn die Zelle leer ist, und wieder verschwindet, wenn der Benutzer die Zelle auswählt und einen neuen Wert eingibt.

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt aus, in dem du den Standardtext einfügen möchtest (z.B. Tabelle1).
  3. Füge den folgenden Code in das Codefenster ein:
Option Explicit
Const strMsg As String = "Geben Sie hier Ihren Wert ein"

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = "$C$3" Then
        If Target = "" Then Target = strMsg
    End If
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If [C3] = "" Then [C3] = strMsg
    If Target.Address = "$C$3" Then
        If Target = strMsg Then Target = ""
    End If
    Application.EnableEvents = True
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Teste die Funktionalität, indem du die Zelle C3 auswählst. Der Standardtext sollte erscheinen, wenn die Zelle leer ist.

Häufige Fehler und Lösungen

  • Fehler: Der Standardtext erscheint nicht.

    • Lösung: Stelle sicher, dass der VBA-Code im richtigen Arbeitsblatt eingefügt wurde und dass die Makros aktiviert sind.
  • Fehler: Der Text bleibt auch nach dem Eingeben eines Wertes sichtbar.

    • Lösung: Überprüfe, ob die Bedingungen im Code korrekt gesetzt sind. Achte darauf, dass die Zelle tatsächlich leer ist.

Alternative Methoden

Eine einfache Alternative zu VBA ist die Verwendung von Datenüberprüfung mit einem Hinweistext. Hierzu:

  1. Wähle die Zelle aus, in der du den Hinweistext setzen möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle im Dropdown-Menü "Zulassen" die Option "Textlänge" und setze die Bedingungen, wie z.B. "größer als 0".
  4. Im Tab "Eingabemeldung" kannst du den Hinweistext eingeben, der angezeigt wird, wenn die Zelle ausgewählt wird.

Beachte, dass dies nicht denselben interaktiven Effekt wie die VBA-Methode bietet.


Praktische Beispiele

Hier sind Beispiele für den Standard Text in mehreren Zellen:

Option Explicit
Const strMsg1 As String = "Geben Sie hier Ihren Wert ein"
Const strMsg2 As String = "Schreib's hier rein!"
Const strMsg3 As String = "Ihre Eingabe"

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Select Case Target.Address
        Case "$C$3"
            If Target = "" Then Target = strMsg1
        Case "$D$5"
            If Target = "" Then Target = strMsg2
        Case "$F$1"
            If Target = "" Then Target = strMsg3
    End Select
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If [C3] = "" Then [C3] = strMsg1
    If [D5] = "" Then [D5] = strMsg2
    If [F1] = "" Then [F1] = strMsg3
    Select Case Target.Address
        Case "$C$3"
            If Target = strMsg1 Then Target = ""
        Case "$D$5"
            If Target = strMsg2 Then Target = ""
        Case "$F$1"
            If Target = strMsg3 Then Target = ""
    End Select
    Application.EnableEvents = True
End Sub

Tipps für Profis

  • Nutze benannte Bereiche für häufig verwendete Zellen, um den Code übersichtlicher zu gestalten.
  • Teste den Code in einer neuen Arbeitsmappe, um unerwünschte Effekte in bestehenden Projekten zu vermeiden.
  • Halte den VBA-Editor offen, um Debugging zu erleichtern, falls Fehler auftreten.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Standardtext in einer anderen Zelle anzeigen?
Antwort: Ändere einfach die Adresse in den If- und Select Case-Befehlen auf die gewünschte Zelle.

2. Frage
Ist es möglich, mehrere verschiedene Texte in verschiedenen Zellen anzuzeigen?
Antwort: Ja, du kannst mehrere Const-Variablen für unterschiedliche Texte definieren und entsprechende Bedingungen im Code hinzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige