Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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
Inhaltsverzeichnis

Zelltext der bei anklicken verschwindet

Zelltext der bei anklicken verschwindet
22.03.2019 14:36:47
Dennis
Hallo,
ich bin auf der Suche nach einer Möglichkeit, dem Anwender Textbeispiele zu geben. Diese sollen beim anklicken der Zelle verschinden.
Folgendes habe ich bereits hier im Forum gefunden:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And Target.Value = "[ Bsp: Name, Vorname]" Then
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Else
If [A1].Value = "" Then [A1].Value = "[ Bsp: Name, Vorname]"
End If
End Sub

Der Beispieltext sollte grau sein und der eingegebene Text dann in schwarz.
Letztenlich sollen so mehrere Zellen in einem Excel mit Beispielen vorbelegt sein.
Danke und Gruß
Dennis

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelltext der bei anklicken verschwindet
22.03.2019 15:04:46
Hajo_Zi
Hallo Dennis,
Option Explicit
Dim RaBereich As Range                          ' Variable für Bereich
Dim RaZelle As Range                            ' Variable für Zelle
Private Sub Worksheet_Change(ByVal Target As Range)
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If RaZelle  "" Then
RaZelle.Font.ColorIndex = xlAutomatic
End If
Next RaZelle
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set RaBereich = Range("A1:M39, O21:O26")       ' Bereich der Wirksamkeit
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
'    Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
'    Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
'    Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
'    Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
'    Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
'    Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
' Zelle die in dem Bereich liegen auf die Variable schreiben
' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
' jede Zelladresse ist einzeln angegeben
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
Application.EnableEvents = False
For Each RaZelle In RaBereich
If RaZelle = "" Then
With RaZelle
.Value = "[ Bsp: Name, Vorname]"
.Font.Color = 12632256
End With
End If
Next RaZelle
Application.EnableEvents = True
End If
End Sub
es können auch mehrer Zellen ausgewählt und gefüllt werden.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Zelltext der bei anklicken verschwindet
22.03.2019 15:44:18
Daniel
Hi
das geht am einfachsten so, auch ganz ohne Makrocode:
du brauchst zwei nebeneinander liegende Zellen.
der Beispieltext kommt in die linke Zelle
dein Eingabefeld ist die rechte Zelle
ziehe dann die Spaltenbreite der linken Zelle so schmal wie möglich, ohne sie ganz auszublenden (Spaltenbreite 1 Pixel)
bei dieser Spaltenbreite ist die Spalte nicht mehr sichtbar, aber ihr Text wird über die Nachbarzellen hinaus angezeigt, sofern diese leer sind, dh:
- rechte Zelle leer: Beispieltext der linken Zelle ist sichtbar
- rechte Zelle befüllt: Beispieltext unsichtbar.
Idealerweise platzierst du die Eingabezellen möglichst in die gleiche Spalte, damit du nur eine fast ausgeblendete Spalte brauchst.
Gruß Daniel
Anzeige
AW: Zelltext der bei anklicken verschwindet
25.03.2019 08:31:48
Dennis
Hallo,
@ Daniel: An so eine einfach Version habe ich gar nicht gedacht. Ich werde das mal überprüfen und schauen ob die Anwender damit zufrieden sind.
@ Hajo_Zi: Dank für den aufwendigen Code. Ist es normal, das ich erst in alle Zellen einmal klicken muss, damit der Beispieltext erscheint? Es ist allerdings nicht notwendig, dass in allen Zellen das gleiche steht. Es wird eher so sein, das in einer Zeile [Name, Vorname] steht in der nächsten dann [Straße, Hausnummer], [Postleitzahl, Wohnort]. So in dieser Art ist das Formular aufgebaut.
Was aber super klappt ist der Farbwechsel zwischen Grau und schwarz.
Vielleicht gibt es hier noch eine andere VBA Möglichkeit. Ich möchte es gern damit probieren.
Danke für eure Unterstützung.
Gruß Dennis
Anzeige
AW: Zelltext der bei anklicken verschwindet
25.03.2019 13:24:15
Daniel
Hi
ich würde es so machen, um flexibel zu sein bezüglich der Eingabefelder und Hinweistexte:
1. markiere alle Eingabezellen und vergib ihnen den Namen "EingabeZellen" (über den Namensmanager oder die Eingabe im Namesfeld (links neben der Bearbeitungszeile))
2. schreibe die anzuzeigenden Texte in eine Zelle, die um x Spalten nach rechts versetzt liegt.
(es muss für alle Eingabezellen der gleiche Versatz sein)
diese Texte müssen immer mit dem gleichen Zeichen beginnen, ich habe wie du das "[" verwendet.
3. kopiere diesen Code ins Modul der Arbeitsmappe:
Option Explicit
Dim ZelleAlt As Range
Const Abstand As Long = 10
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Intersect(Target, Range("EingabeZellen")) Is Nothing Then Exit Sub
For Each Zelle In Intersect(Target, Range("EingabeZellen"))
If Zelle.Value = "" Then
Application.EnableEvents = False
Zelle.Value = Zelle.Offset(0, Abstand).Value
Application.EnableEvents = True
End If
Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not ZelleAlt Is Nothing Then
If ZelleAlt.Value = "" Then
Application.EnableEvents = False
ZelleAlt.Value = ZelleAlt.Offset(0, Abstand).Value
Application.EnableEvents = True
End If
End If
Set ZelleAlt = Nothing
If Target.CountLarge > 1 Then Exit Sub
If Intersect(Target, Range("EingabeZellen")) Is Nothing Then Exit Sub
If Left(Target.Value, 1) = "[" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Set ZelleAlt = Target
End If
End Sub
ich habe hier den Spaltenversatz 10 gewählt, du kannst diesen über die Constante "Abstand" einstellen.
das Umfärben würde ich nicht über Code erledigen, sondern über die Bedingte Formatierung mit der Regel: =Links(...;1)="["
Auch dafür ist es sinnvoll, dass die Hinweistexte immer mit dem gleichen Zeichen beginnen, an dem man sie einfach erkennen kann.
damit die Hinweistexte in den Eingabezellen erscheinen, reicht es aus in den Eingabezellen einmal die Inhalte zu löschen.
Gruß Daniel
Anzeige
AW: Zelltext der bei anklicken verschwindet
27.03.2019 09:44:11
Dennis
Hallo Daniel,
vielen Dank das funktioniert super.
Wie kann ich aber die Vorgabentexte für den Anwender im Formular ausblenden?
Selbst wenn ich die Spaltenbreite auf 1Px ändere ist der Inhalt ja sichtbar.
Die Anwender sollen praktisch nur ein A4 Formular sehen, welches sie ausfüllen sollen.
Ich könnte natürlich die Schrift auf weiß ändern aber das ist bestimmt nicht die beste Lösung?
Gruß Dennis
AW: Zelltext der bei anklicken verschwindet
27.03.2019 10:38:45
Daniel
Hi
wenn du mit der Makro-Variante arbeitest, kannst du die Spalten mit den Vorgabetexten ganz normal und komplett ausblenden (Spaltenbreite 0), dann sind auch die Inhalte unsichtbar.
der Versatz zu den Eingabezellen solltest du halt so groß wählen, dass die Vorgabezellen außerhalb des verwendeten Eingabebereichs liegen.
das mit der Spaltenbreite 1 brauchst du nur bei der Markofreien Variante, bei der die Vorgabetexte in den linken Nachbarzellen der Eingabezellen stehen.
Gruß Daniel
Anzeige
AW: Zelltext der bei anklicken verschwindet
27.03.2019 12:51:45
Dennis
Hallo Daniel,
muss mich noch mal melden.
Wie stelle ich es an, dass ich noch eine zweite Spalte mit Vorgaben belegen will.
Ich kann ja nicht zwei Worksheet_Change erstellen und einfach die beiden Prozeduren hintereinander ausführen klappt auch nicht.
Das war mein Versuch aber da passiert in dem Datum-Feld leider gar nichts.
Option Explicit
Dim ZelleAlt As Range
Const Abstand As Long = 4
Dim ZelleAlt_Datum As Range
Const Abstand_Datum As Long = 4
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Intersect(Target, Range("EingabeZellen")) Is Nothing Then Exit Sub
For Each Zelle In Intersect(Target, Range("EingabeZellen"))
If Zelle.Value = "" Then
Application.EnableEvents = False
Zelle.Value = Zelle.Offset(0, Abstand).Value
Application.EnableEvents = True
End If
Next
If Intersect(Target, Range("Datum")) Is Nothing Then Exit Sub
For Each Zelle In Intersect(Target, Range("Datum"))
If Zelle.Value = "" Then
Application.EnableEvents = False
Zelle.Value = Zelle.Offset(0, Abstand_Datum).Value
Application.EnableEvents = True
End If
Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not ZelleAlt Is Nothing Then
If ZelleAlt.Value = "" Then
Application.EnableEvents = False
ZelleAlt.Value = ZelleAlt.Offset(0, Abstand).Value
Application.EnableEvents = True
End If
End If
Set ZelleAlt = Nothing
If Target.CountLarge > 1 Then Exit Sub
If Intersect(Target, Range("EingabeZellen")) Is Nothing Then Exit Sub
If Left(Target.Value, 1) = "[" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Set ZelleAlt = Target
End If
If Not ZelleAlt_Datum Is Nothing Then
If ZelleAlt_Datum.Value = "" Then
Application.EnableEvents = False
ZelleAlt_Datum.Value = ZelleAlt_Datum.Offset(0, Abstand_Datum).Value
Application.EnableEvents = True
End If
End If
Set ZelleAlt_Datum = Nothing
If Target.CountLarge > 1 Then Exit Sub
If Intersect(Target, Range("Datum")) Is Nothing Then Exit Sub
If Left(Target.Value, 1) = "[" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Set ZelleAlt_Datum = Target
End If
End Sub

Anzeige
AW: Zelltext der bei anklicken verschwindet
27.03.2019 13:31:49
Daniel
Hi
Du kannst bei der Makrovariante die Eingabefelder beliebig platzieren, auch in verschiedenen Spalten.
Es müssen nur zwei Bedingungen erfüllt sein.
1. die Zelle muss Bestandteil des Namens "EingabeZellen" sein
2. die Zelle mit dem Vorgabetext muss immer den gleichen Spaltenabstand zu ihrer Eingabezelle haben, nämlich den, den du als. "Abstand" eingestellt hast.
Am Code brauchst du nichts verändern, der funktioniert, egal wo die Zelle platziert ist.
Gruß Daniel
AW: Zelltext der bei anklicken verschwindet
27.03.2019 14:32:22
Dennis
Ja da hast du verdammt Recht, das funktioniert wie beschrieben.
Tja manchmal ist die Lösung so einfach! :-)
Ich Danke dir.
Gruß Dennis
Anzeige
AW: Zelltext der bei anklicken verschwindet
25.03.2019 16:27:45
Hajo_Zi
Hallo Dennis,
ich habe mich an Deinen Code gehlaten.
Gruß Hajo
AW: Zelltext der bei anklicken verschwindet
27.03.2019 11:17:07
Dennis
Ich möchte euch beiden herzlichen Danken für die tolle Arbeit.
@ Daniel funktioniert alles tadellos. Genauso werde ich es jetzt umsetzen einfach Top.
Gruß Dennis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige