Registriert seit: 15.02.2017
Version(en): office2010
[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
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Maximus
Registriert seit: 15.02.2017
Version(en): office2010
25.02.2017, 11:46
(Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2017, 11:46 von Maximus.)
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.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
(25.02.2017, 11: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
Registriert seit: 12.04.2014
Version(en): Office 365
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
Registriert seit: 15.02.2017
Version(en): office2010
(25.02.2017, 11: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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
(25.02.2017, 12: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?
Gruß Atilla
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
: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)
Registriert seit: 15.02.2017
Version(en): office2010
27.02.2017, 00:50
(Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2017, 00:50 von Maximus.)
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
|