Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

per Doppelklick Wert / Zeichen i.e. Zelle einfügen

per Doppelklick Wert / Zeichen i.e. Zelle einfügen
16.04.2018 16:24:34
Lilli
Hallo Allerseits,
Folgendes Code habe ich irgendwo aus dem Netz genommen um ein Häckchen einzufügen.
Option Explicit 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
If Intersect(Target, Union(Range("A4:J11"), Range("A14:J21"))) Is Nothing Then Exit Sub 
With Target(1) 
    .Font.Name = "Wingdings" 
.Font.Size = 14
.HorizontalAlignment = xlCenter
  .Value = IIf(.Value = "ü", "", "ü") 
    Cancel = True 
End With 
End Sub
 
Das funktioniert einwandfrei
Ich habe folgende Zeile geändert:
  .Value = IIf(.Value = "ü", "û", "ü") 
um einen X zu bekommen. Allerdings kann ich damit nicht mehr bei einem Doppelklick, dass die Zelle geleert wird. Bei den Versuch einen vierten Wert hinzuzufügen, kommt eine Fehlermeldung, die ich gar nicht nachvollziehen kann, da meine VBA Kenntnisse Richtung Null gehen.
Frage 1: Wer kann mir helfen den Code so zu ändern, damit die Zelle geleert werden kann? Also so zu sagen 3 Fälle. Häckchen, Kreuz, Leer beim Doppelklick eingefügt werden kann.
Frage 2: Ich möchte in eine andere Spalte ähnliche Funktion haben, dass ich in eine andere Spalte andere Zeichen "---", "+++" sich einfügen bei einem Doppelklick? Kann man das in dem gleichen Makro machen und wenn ja, wie geht das?
Vielen Dank für die Hilfe im Voraus.
liebe Grüße,
Lilli :)

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
16.04.2018 16:42:12
Gerd
Moin Lilli!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A14:J21")) Is Nothing Then Exit Sub
With Target
.Font.Name = "Wingdings"
.Font.Size = 14
.HorizontalAlignment = xlCenter
If .Value = "" Then
.Value = "ü"
ElseIf .Value = "ü" Then
.Value = "û"
ElseIf .Value = "û" Then
.Value = ""
End If
Cancel = True
End With
End Sub

Gruß Gerd
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
16.04.2018 16:53:33
Lilli
Moin Moin Gerd :)
vielen Dank für Deine schnelle Hilfe. Das ist echt super. Diese End -If Dinger ;)
kann man die weiter erweitern?
kann ich den gleichen Code nutzen für meine zweite Frage?
Vielen Dank für Deine Mühe im Voraus.
liebe Grüße,
Lilli :)
Anzeige
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
16.04.2018 17:09:10
Lilli
Moin Gerd,
kann man auch vielleicht die Farbe mit
.Farbe = Grün (Für Häckchen)
.Farbe = Rot (Für das X)
vielen Dank noch mal.
Liebe Grüße,
Lilli :)
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
16.04.2018 17:31:07
Gerd
Moin Lilli!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A14:J21")) Is Nothing Then Exit Sub
With Target
.Font.Name = "Wingdings"
.Font.Size = 14
.HorizontalAlignment = xlCenter
If .Value = "" Then
.Font.Color = -11489280
.Value = "ü"
ElseIf .Value = "ü" Then
.Font.Color = -16776961
.Value = "û"
ElseIf .Value = "û" Then
.Font.Color = 1
.Value = ""
End If
Cancel = True
End With

Ansonsten könntest du alternativ den Font.Name weglassen u. den Value als String z.B "---" angeben.
Gruß Gerd
Anzeige
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
17.04.2018 09:04:57
Lilli
Moin Gerd,
Vielen Dank für Deinen neuen Code. Wo bekomme ich die Farbenwerte her? Gibt es irgendwo in Excel ein Verzeichnis oder eine Liste im Netz? Die Frage dazu unter welchen Begriff könnte ich das suchen?
Ich wünsche Dir einen schönen Tag noch.
Liebe Grüße,
Lilli :)
AW: per Doppelklick Wert / Zeichen i.e. Zelle einfügen
17.04.2018 09:26:57
Daniel
Hi
Es gibt 256*256*256 verschiedene Farben, da gibt es keine Liste
Wenn du eine bestimmte Farbe haben willst, dann färbe die Zelle damit und gib im Direktfenster den Befehl ein: ?Selection.Font.Color
Dann bekommst du den Farbwert der Zelle angezeigt.
Für die Grundfarben gibt es auch vom System bereitgestellte Variablen: vbRed, vbGreen usw.
Gruß Daniel
Anzeige
Gesamtlösung
16.04.2018 18:16:43
Daniel
Hi
probier mal das Makro
ist zwar etwas tricky, aber du kannst es für verschiedene Zellbereiche mit verschiedenen Inhalten und Farben verwenden.
die Arrays für die unterschiedlichen Zellbereiche können unterschiedlich groß sein, du kannst eine beliebige Anzahl an Werten angeben.
Die Anzahl der Farben muss aber gleich der Anzahl der Werte für einen Zellbereich sein.
Wenn weiter Zellbereiche hinzukommen, musst du lediglich eine weitere ElseIF-Option hinzufügen.
der Rest bleibt gleich.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Long
Dim arrZeichen
Dim arrFarbe
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
arrZeichen = Array("", "ü", "û")
arrFarbe = Array(vbWhite, vbGreen, vbRed)
ElseIf Not Intersect(Target, Range("B3:F9")) Is Nothing Then
arrZeichen = Array("---", "+++", "")
arrFarbe = Array(vbYellow, vbBlue, vbWhite)
Else
Exit Sub
End If
On Error Resume Next
x = WorksheetFunction.Match(Target.Value & "", arrZeichen, 0)
On Error GoTo 0
x = x Mod (UBound(arrZeichen) + 1)
Target.Value = arrZeichen(x)
Target.Font.Color = arrFarbe(x)
Cancel = True
End Sub
Gruß Daniel
Anzeige
AW: Gesamtlösung
17.04.2018 09:15:39
Lilli
Hi Daniel,
ich habe den Makro gestest. Das funzt auch einwandfrei. Ich danke Dir ganz herzlich für Deine Mühe.
Ich habe die Spalten angepasst. Kann man vielleicht bei jeden Bereich die Schriftart noch dazu angeben? Beim ersten Teil handelt es sich um "Wingdings" und bei dem anderen "Calibri".
Gibt es so eine Art wie arrSchriftart?
Vielen Dank für die Mühe.
Liebe Grüße,
Lilli :)
AW: Gesamtlösung
17.04.2018 09:32:08
Daniel
Hi
Kannst du genauso machen wie mit den Farben.

arrSchriftart = Array("Fontname1", "Fontname2", usw)
Target.Font.Name = arrSchriftart(x)
Würde ich aber nur machen wenn die Schriftart beim Klicken wechseln soll.
Bleibt sie für alle Möglichkeiten gleich, würde ich die Zellen normal formatieren
Gruß Daniel
Anzeige
AW: Gesamtlösung
17.04.2018 10:02:56
Lilli
Hallo Daniel,
darf ich Dich um Dein prüfendes Blick noch mal bitten:
Wäre das so in Ordnung:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Long
Dim arrZeichen
Dim arrFarbe
Dim arrSchriftart
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
arrSchriftart = Array("Calibri", "Wingdings","Wingdings")
arrZeichen = Array("", "ü", "û")
arrFarbe = Array(vbWhite, vbGreen, vbRed)
ElseIf Not Intersect(Target, Range("B3:F9")) Is Nothing Then
arrSchriftart = Array("Calibri", "Calibri","Calibri")
arrZeichen = Array("---", "+++", "")
arrFarbe = Array(vbYellow, vbBlue, vbWhite)
Else
Exit Sub
End If
On Error Resume Next
x = WorksheetFunction.Match(Target.Value & "", arrZeichen, 0)
On Error GoTo 0
x = x Mod (UBound(arrZeichen) + 1)
Target.Value = arrZeichen(x)
Target.Font.Color = arrFarbe(x)
Target.Font.Name = arrSchriftart(x)
Cancel = True
End Sub
liebe Grüße,
Lilli :)
Anzeige
AW: Gesamtlösung
17.04.2018 11:11:33
Daniel
probiers doch aus.
wobei ich es lassen würde und die Zellen direkt formatieren würde.
Da bei einer Leerzelle ("") die Schriftart egal ist, ändern sich bei dir die Schriftarten eigentlich nicht, so dass eine Umformatierung im Code nicht notwendig ist.
Gruß Daniel
AW: Gesamtlösung
17.04.2018 13:32:35
Lilli
Hallo Daniel,
ich habe es Probiert und es funzt !!!!
Vielen Dank für Deinen Einsatz. Ich kann den Makro jetzt mehrfach einsetzen. Das ist echt total klasse.
Vielen Dank noch mal für Deine Mühe.
Liebe Grüße,
Lilli :)

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige