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.

Kreuz im Vordruck durch Anklicken
#1
[attachment=9830][attachment=9831]
Guten Tag,
ich hätte eine Bitte.
ich möchte in meinem Vordruck( Excel-Tabelle), durch einfaches Anklicken einer Zelle, ein X (Kreuz) setzen können.
In folgenden Zellen sollte das Setzen eines  X durch das Anklicken mit der Maus möglich sein:
Spalten von A bis I UND in der Zeile 3
Spalten von A bis G UND in den Zeilen von 13 bis 20
Spalten von G bis H UND in der Zeile 30
Habe im Internet 3 geschriebene Programme gefunden (siehe Anhang), die sich mit dem Setzen des X in Zellen verbinden.
Aber ich bin nicht in der Lage, diese Programme zu lesen und umzuschreiben. Visual Basic über Entwicklertools ist für mich schwierig zu verstehen.  
Wäre super nett, wenn mir ein Fachmann hier weiterhelfen könnte.


DANKE!
Gruss Markus
 
Anhang:
Vordruck
Programme
Antworten Top
#2
Hallo,

dann teste es mal:


Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   '   x in die Zelle
   Dim RaBereich1 As Range, RaBereich2 As Range, RaBereich3 As Range
   Dim RaBereich As Range
   
   Set RaBereich1 = Range("A3:I3")
   Set RaBereich2 = Range("A13:G13")
   Set RaBereich3 = Range("G30:H30")

   Set RaBereich = Union(RaBereich1, RaBereich2, RaBereich3)
   If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
   ' Abbruch, wenn Aktion nicht im Zielbereich
   Application.EnableEvents = False
   Cancel = True
   If Target.Value = "x" Then
       Target.Value = ""
   Else
       Target.Value = "x"
   End If
   Application.EnableEvents = True
   Set RaBereich = Nothing
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Maximus
Antworten Top
#3
DANKE Atiilla für das Programm!!!

Ich muss jetzt erstmal schauen, wie ich das Programm in den Vordruck bekomme.
Ich weiss irgendwie über Entwicklertools.
Ich schau mir noch ein paar Youtube Videos an und dann hoffe ich zu wissen, wor rein damit und dann melde ich mich wieder.
Vielen Dank schon mal!!!!!!!!!!!!!!!!!!!!!!!!!!

PS: Ich hatte vorletzte Woche 3Tage Excel Lehrgang über Arbeit, aber mit Enticklertools haben wir nie gearbeitet. Der Vorturner hat darüber auch nie was gesagt.
Aber cool, dass es sowas gibt.
Antworten Top
#4
(25.02.2017, 10:44)Maximus schrieb: DANKE Atiilla für das Programm!!!

Ich muss jetzt erstmal schauen, wie ich das Programm in den Vordruck bekomme.
Ich weiss irgendwie über Entwicklertools.

lies auch mal hier:  online-excel.de
Gruß Atilla
Antworten Top
#5
Hallo,

der Code muss in das Modul des entsprechenden Tabellenblattes. Das wäre z.B. ein möglicher Weg:

- mit Alt+F11 den VBA-Editor öffnen
- mit Strg+R den Projekt-Explorer öffnen und aktivieren
- die gewünschte Datei per Doppelklick markieren
- auf das gewünschte Tabellenblatt unterhalb dieser Datei doppelklicken
- in der rechten Fensterhälfte ist das Codefenster dieser Tabelle sichtbar
- dort den Code einfügen
- speichern und den VBA-Editor mit Alt+F4 schliessen
Gruß
Peter
Antworten Top
#6
(25.02.2017, 10:48)Peter schrieb: Hallo,

der Code muss in das Modul des entsprechenden Tabellenblattes. Das wäre z.B. ein möglicher Weg:

- mit Alt+F11 den VBA-Editor öffnen
- mit Strg+R den Projekt-Explorer öffnen und aktivieren
- die gewünschte Datei per Doppelklick markieren
- auf das gewünschte Tabellenblatt unterhalb dieser Datei doppelklicken
- in der rechten Fensterhälfte ist das Codefenster dieser Tabelle sichtbar
- dort den Code einfügen
- speichern und den VBA-Editor mit Alt+F4 schliessen

danke peter für den Weg, ich werde mich morgen ganz in Ruhe damit auseinandersetzen.
Antworten Top
#7
Moin!
Nur am Rande, ist auch nur meine ureigene Meinung und soll nicht besserwisserisch sein.
Ich bin kein Freund vom Variablenoverkill.
Statt:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  '   x in die Zelle
  Dim RaBereich1 As Range, RaBereich2 As Range, RaBereich3 As Range
  Dim RaBereich As Range
 
  Set RaBereich1 = Range("A3:I3")
  Set RaBereich2 = Range("A13:G13")
  Set RaBereich3 = Range("G30:H30")

  Set RaBereich = Union(RaBereich1, RaBereich2, RaBereich3)
  If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
  ' Abbruch, wenn Aktion nicht im Zielbereich
  Application.EnableEvents = False
  Cancel = True
  If Target.Value = "x" Then
      Target.Value = ""
  Else
      Target.Value = "x"
  End If
  Application.EnableEvents = True
  Set RaBereich = Nothing
End Sub

reicht auch:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A3:I3,A13:G13,G30:H30"), Target) Is Nothing Then
  Application.EnableEvents = False
  Target.Value = IIf(Target.Value = "x", "", "x")
  Application.EnableEvents = True
  Cancel = True
End If
End Sub

Wie gesagt, nur ergänzend.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
(25.02.2017, 11:58)RPP63 schrieb: Moin!
Nur am Rande, ist auch nur meine ureigene Meinung und soll nicht besserwisserisch sein.


ja, nee ne.
Ist überhaupt nicht besserwisserisch.


Ist einfach   -   ist besser.

Habe hier aber absichtlich darauf verzichtet, weil ich am Anfang meiner Excel Kariere bestimmte Zusammenhänge
aus meinem vorgeschlagenen Code heraus verstanden habe. Später ist es einfacher das Überflüssige abzuwerfen.
Das Ganze dann im Zusammenhang sehen, dass der TE auch am Anfang steht.

Aber mehrere Alternativen zu sehen ist sogar lehrreicher.

Ok, Du Besserwisser? Blush
Gruß Atilla
Antworten Top
#9
:19:
Bin völlig Deiner Meinung!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
Hi ALLE, die mir geholfen haben.

Habe beide (drei) Programme eingefügt und die Funktion lief.
Alle drei Programme haben gleich funktionert.
Nur von A bis G und Zeile 14-20 funktionierte nicht.
Mit meinem Laien-Wissen habe ich einfach bei einem der Programme A-G Zeile 14bis20 eingefügt.
Hat dann auch funktioniert. siehe unten:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A3:I3,A13:G13,A14:G14,A15:G15,A16:G16,A17:G17,A18:G18,A19:G19,A20:G20,G30:H30"), Target) Is Nothing Then
Application.EnableEvents = False
Target.Value = IIf(Target.Value = "x", "", "x")
Application.EnableEvents = True
Cancel = True
End If
End Sub


Ich bin folgendermaßen vorgegangen:
- mit Alt+F11 den VBA-Editor geöffnet
- Tabelle 1 doppelklick, rechtes Fenster hat sich geöffnet
- Code eingegeben
- über blaue Diskette gespeichert
- Alt +F4 geschlossen

Beim Speichern wurde folgende Fehlermeldung gegeben:
Die folgenden Feautures können in Arbeitsmappe ohne Makros nicht gespeichert werden. Ich habe das mit Ja bestätigt.
Wenn ich auf nein gedrückt habe, hat es nicht funktionert.

Was mich wundert, ich habe zwar über die blaue Diskette gespeichert, aber sobald ich Excel geschlossen habe, war auch das Programm weg.
Obwohl ich doch gespeichert habe.
Ich bekomme einfach das Programm nicht gespeichert.

Schade, dass es keine Möglichkeit gibt, wenn man einmal ein X gesetzt hat, dieses X wieder rückgängig zu machen. So dass wenn man nochmal doppel-klick drückt, dass wieder der Ursprungswert drinne ist.
Oder kann man da was machen?

Gruss Markus
Antworten Top


Gehe zu:


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