Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellinhalt bei DoubleClick

Zellinhalt bei DoubleClick
10.10.2005 13:53:24
Kira
Hallo,
hab mal wieder ne Frage, diesmal zur Zellauswahl.
Es gibt ja die Möglichkeit eine Zelle mit oder ohne Inhalt anzuklicken und je nachdem, ob ein Inhalt vorhanden ist, diesen dann zu löschen.
Z.b. so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell = Target Then Target = ""
End Sub

Gibt es auch die Möglichkeit beim Verlassen der entsprechenden Zelle den Ursprungsinhalt wieder herzustellen, sofern keine neue Eingabe gemacht wurde? Oder eben, dass der Inhalt beim Verlassen der Zelle immer wieder erscheint bis ein neuer Inhalt eingegeben wird.
Freue mich auf Ideen und Vorschläge.
Gruß
Kira

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt bei DoubleClick
10.10.2005 14:05:48
MichaV
Hallo Kira,
geht alles, z.B. so:

Option Explicit
Public DieZelle As String
Public DerWert As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
DieZelle = Target.Address
DerWert = Target.Formula
Target = ""
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If DieZelle = "" Then Exit Sub
If Range(DieZelle) <> "" Then Exit Sub
Range(DieZelle).Formula = DerWert
DieZelle = ""
End Sub

Gruss- Micha
PS: Rückmeldung wäre nett.
AW: Zellinhalt bei DoubleClick
10.10.2005 14:12:55
Kira
Hallo Micha,
super! Danke für deine Hilfe!
Etwas würde mir aber noch fehlen. Wenn ich nun etwas neues in die Zelle hineinschreibe und dieses anschließend wieder lösche, bleibt die Zelle leer. Kann man dort auch wieder den Ursprungszustand anzeigen lassen, egal wie oft man die neuen Eingaben löscht?
Gruß
Kira
Anzeige
AW: Zellinhalt bei DoubleClick
10.10.2005 14:17:10
MichaV
Hallo,
wie löschen, mit Deinem Doppelcklick- Ereignis oder anders (z.B. mit der ENTF- Taste)?
Gruss- Micha
AW: Zellinhalt bei DoubleClick
10.10.2005 14:19:26
Kira
Hallo Micha,
mit der Lösch- und ENTF-Taste.
Gruß
Kira
AW: Zellinhalt bei DoubleClick
10.10.2005 14:30:01
MichaV
Hallo Kira,
also wenn jemand -wie auch immer- den Inhalt der Zelle löscht, dann soll der vorige Inhalt wieder in der Zelle angezeigt werden?

Option Explicit
Public DieZelle As String
Public DerWert As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If DieZelle = "" Then Exit Sub
If Range(DieZelle) <> "" Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
Range(DieZelle).Formula = DerWert
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = "" Then Exit Sub
DieZelle = Target.Address
DerWert = Target.Formula
End Sub

Die ENTF- Taste ist nun praktisch außer Gefecht gesetzt. Wenn es zu sehr stört, dann lässt sich da sicher eine Abhilfe finden.
Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Zellinhalt bei DoubleClick
10.10.2005 15:05:27
Kira
Hallo Micha,
das ist so nicht ganz richtig. Die ENTF-Taste sollte nicht gesperrt sein, da mit ihr gearbeitet werden soll.
Sinn der Sache soll folgender sein: Man hat z.b. eine Tabelle in der von A15-A30 Customer 1-Customer 15 steht. In diese Zellen sollen nun je nach Bedarf Einträge getätigt werden. Klicke ich die Zelle mit einfachem oder doppeltem Klick an ohne einen Eintrag zu tätigen, bleibt z.b. in A15 Customer 1 stehen. Das klappt mit deinem Code so weit super. Erfolgt nun eine Eingabe, bleibt dieser auch bestehen. Klappt ebenfalls. Wird die Eingabe (z.b. "ABC") aber wieder gelöscht (mit Lösch- oder ENTF-Taste), dann soll in A15 wieder Customer 1 stehen. Dabei sollte dann egal sein, wie oft eine Eingabe gemacht wurde und wie ift diese wieder gelöscht wurde. Also wenn die erste Eingabe "ABC" war und die nächste "XYZ", dann soll beim Löschen am Ende nicht "ABC" stehen (was momentan der Fall wäre laut Code), sondern wieder Customer 1. Wenn die Zelle leer ist, soll eben wieder Customer 1 stehen.
Ich hoffe, du verstehst, wie ich das meine und hast eine Idee, wie man den letzten Teil auch noch umsetzten könnte.
Gruß
Kira
Anzeige
AW: Zellinhalt bei DoubleClick
10.10.2005 15:20:02
MichaV
Hallo Kira,
das ist ja nun doch etwas anders als ich Dich verstanden habe und würde auf ein Konstrukt wie

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" Then Target = "Customer X"
End Sub

hinauslaufen. Also wenn die geänderte Zelle leer ist, dann soll ein Default- Wert eingetragen werden.
Willst Du das starr im Code haben oder
sollen die Default- Werte beim Öffnen der Mappe gelesen werden oder
sollen die Default- Werte aus einer Liste auf einem (anderen) Tabellenblatt gelesen werden?
Oder welche Idee hast Du, woher der Code wissen soll, welcher Wert standartmäßig in die Zelle gehört?
Gruss- Micha
Anzeige
AW: Zellinhalt bei DoubleClick
10.10.2005 15:33:52
Kira
Hallo Micha,
also Customer 1 etc. ist immer so in der Tabelle enthalten. Ich denke, es ist besser, wenn die Werte abgelesen werden, da ich in anderen Tabellen (in anderen Bereichen) andere Werte stehen habe mit denen ich ähnlich verfahren will. So wäre es für mich (hoffentlich) einfacher, das ganze dann anzupassen. Eine extra Tabelle hierfür sollte möglichst nicht verwendet werden.
Sofern das jedenfalls umsetzbar ist.
Gruß
Kira
noch eine Nachfrage
10.10.2005 15:40:00
MichaV
Hallo Kira,
das heißt dann aber, daß nach jedem Öffnen die Default- Werte in den Zellen stehen müssen. Ist das so?
Gruss- Micha
AW: noch eine Nachfrage
10.10.2005 15:51:47
Kira
Hallo Micha,
die Default-Werte dürfen nur beim Öffnen drin stehn, sofern keine andere Eingabe getätigt wurde, ansonsten muss die Eingabe stehen bleiben. Wenn möglich, sollte dann beim Löschen der Eingabe wieder der Default-Wert da stehen. Also so, wie die Tabelle verlassen wird, muss sie beim erneuten öffnen/ansehen auch wieder dargestellt werden. Customer 1,... wäre dann schon so ein Festwert, der im Falle einer leeren Zelle A15 erscheinen sollte. Vermutlich geht das doch nur mit deinem letzten Code, oder?
Gruß
Kira
Anzeige
AW: noch eine Nachfrage
10.10.2005 16:13:51
MichaV
Hallo,
nicht unbedingt, aber es wird nicht einfacher. Als Idee: Kannst Du die Default- Werte der Zellen (also die Werte die erscheinen, wenn die Zelle "leer" ist) als Name der Zelle definieren? Dann wäre es einfach:
Du vergibst für die Zelle den Default- Wert als Namen z.B. "Customer_1". Dann funzt folgender Code (der Unterstrich wird durch ein Leerzeichen ersetzt):

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target = "" Then Target = Replace(Target.Name.Name, "_", " ")
End Sub

Zur Zeit funzt es bei allen Zellen, die einen Namen haben. Wenn Du das Makro nur auf einige der benannten Zellen anwenden willst, kann man das auch noch umbauen.
Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
melde mich morgen wieder
10.10.2005 16:22:26
Kira
Hallo Micha,
werde mir das ganze in Ruhe anschaun und mich morgen dann wieder melden.
Ich hoffe, ich kann dann wieder auf deine Hilfe zählen, sollte ich Fragen/Änderungen haben.
Schon mal aber vielen Dank für deine super Hilfe, hast mir auf alle Fälle schon viel geholfen!
Gruß
Kira
Lösung gefunden
11.10.2005 08:52:35
Kira
Hallo Micha,
hab mir das ganze jetzt nochmal angeschaut und werde wohl auf folgende Variante von dir zurückgreifen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" Then Target = "Customer X"
End Sub

Die Namensidee ist zwar auch nicht schlecht, wäre aber in meinem Fall zu viel Arbeit, da ich zu viele Zellen und Tabellen habe. Da kopier ich mir lieber ein paar mal die If-Zeile und änder die Werte.
Dank dir für deine super Hilfe!
Gruß
Kira
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige