Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Rechte Maustaste, Zellen zustand mehrfach ändern mit VBA
#1
Hallo an alle,

habe den unterliegenden VBA Code seit langem irgendwo aus dem Internet.
Er funktioniert ohne Probleme, doch ich möchte fragen ob er erweiterbar ist.

Zur Zeit ist im Code:       

 Target = IIf(Target = "", "Eintrag", "Kein Eintrag")

Drei zustände mit klicken der rechte Maus, der Reihe nach, möchte aber noch zwei zustände zusätzlich hinzufügen.

Bespiel, anstatt:
        Target = IIf(Target = "", "Eintrag", "Kein Eintrag")
Sollte es:
        Target = IIf(Target = "", "Eintrag", "Kein Eintrag", “Fast Eintrag“, ““ )

…ist es möglich mehrere zustände hinzuzufügen oder mit anderen Code es zu bewerkstelligen?
habe es mit einfachen ändern der oberen programm Zeile versucht, doch da kommt error Confused .
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Me.Unprotect ("1234")

    If Not Intersect(Target, Range("AA10:AC1009")) Is Nothing Then
        Target = IIf(Target = "", "Eintrag", "Kein Eintrag")
        Cancel = True
    End If
   
    End If
    Me.Protect ("1234")
End Sub


Danke im Voraus,

Niko 78
Antworten Top
#2
Hallo Niko,

meinst Du so etwas hier:
Code:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)

  Me.Unprotect ("1234")

  If Not Intersect(Target, Range("AA10:AC1009")) Is Nothing Then
     Select Case Target.Value
     Case "Eintrag":      Target.Value = "Kein Eintrag"
     Case "Kein Eintrag": Target.Value = "Fasteintrag"
     Case "Fasteintrag":  Target.Value = ""
     Case "":             Target.Value = "Eintrag"
     End Select
     Cancel = True
  End If

  Me.Protect ("1234")
End Sub

viele Grüße
Karl-Heinz
Antworten Top
#3
Vielen dank  28
 ...doch es funktioniert nicht, Maus Cursor dreht sich, es kommt kein Fehler auf doch kein Text in der rechts angeklickten Zelle.
 
Habe es auf ein neues Blatt probiert sowie auf das vorhandene, das selbe Ergebnis wie oben beschrieben.
Was mache ich falsch?



Thx 
Niko 78
Antworten Top
#4
Hallo Niko,

eine Anpassung...

Code:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)

  Me.Unprotect ("1234")

  If Not Intersect(Target, Range("AA10:AC1009")) Is Nothing Then
     Select Case Target.Value
     Case "Eintrag":      Target.Value = "Kein Eintrag"
     Case "Kein Eintrag": Target.Value = "Fasteintrag"
     Case "Fasteintrag":  Target.Value = ""
     Case Else:           Target.Value = "Eintrag"
     End Select
     Cancel = True
  End If

  Me.Protect ("1234")
End Sub

viele Grüße
Karl-Heinz
[-] Folgende(r) 1 Nutzer sagt Danke an volti für diesen Beitrag:
  • Niko
Antworten Top
#5
Ein träumchen...Danke 78
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste