Herbers Excel-Forum - das Archiv

Formular öffnen bei klick

Bild

Betrifft: Formular öffnen bei klick
von: Thomas

Geschrieben am: 27.12.2006 15:53:50
Hallo,
mit folgender Bedingung öffnet sich im Tabellenblatt "Tabelle1" das Formular "frmSchreiben"
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 3 And Selection.Rows.Count < 2 Then
frmSchreiben.Show
End If
End Sub

Problem:
Zur Zeit genügt es, wenn der User mit den "Pfeil-Tasten" der Tastatur durch das Tabellenblatt geht und
auf eine entsprechende Zelle kommt, wo die Bedingung erfüllt ist, dass sich das Formular "frmSchreiben" öffnet.
Jetzt möchte ich das Öffnen dieses Formulares "frmSchreiben" nur noch ermöglichen, wenn der User einmal mit
der linken Maustaste auf die Zelle klickt und wenn dann meine obige Bedingung zutrifft, sich entsprechend
das Formular "frmSchreiben" öffnet.
Für Hilfe vielen Dank!
Gruß,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Oberschlumpf

Geschrieben am: 27.12.2006 16:40:09
Hi Thomas
Du schreibst: "Auf die Zelle klickt". Welche Zelle genau meinst du denn?
In deinem Code reicht es aus, wenn man in Spalte 3 eine beliebige Zelle anklickt.
Versuch es mal so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Instr(1, Target.Address, ":") > 0 Or Instr(1, Target.Address, ",") > 0 Then Exit Sub
If Target.Column > 3 Then
frmSchreiben.Show
End If
End Sub

In diesem Bsp wird zuerst geprüft, ob NUR 1 Zelle angeklickt wurd. Werden mehrere Zellen ausgewählt, wird mit Exit Sub die Sub gleich wieder verlassen.
Und im 2. Schritt wird nur noch geprüft, ob die angeklickte Zelle in Spalte 3 ist.
Konnte ich helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Formular öffnen bei klick
von: Oberschlumpf
Geschrieben am: 28.12.2006 09:13:54
ich meinte mit dem 2. Schritt, dass da geprüft wird, ob die geklickte Zelle in einer Spalte größer Spalte 3 ist.
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas

Geschrieben am: 28.12.2006 11:56:07
Hi Thorsten,
danke für deine Hilfe!
Hab jetzt mal in meiner Datei Deinen Code eingefügt.
Dadurch verhindere ich jetzt zwar das Öffnen des Formulares, wenn ich mit den "Pfeil"-Tasten durch das Tabellenblatt gehe, jedoch bei klick mit der linken Maustaste auf eine Zelle, welche die Bedingung: Target.Column > 3 And Selection.Rows.Count < 2
erfüllt, öffnet sich das Formular nicht.
Viele Grüße,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas

Geschrieben am: 28.12.2006 11:56:25
Hi Thorsten,
danke für deine Hilfe!
Hab jetzt mal in meiner Datei Deinen Code eingefügt.
Dadurch verhindere ich jetzt zwar das Öffnen des Formulares, wenn ich mit den "Pfeil"-Tasten durch das Tabellenblatt gehe, jedoch bei klick mit der linken Maustaste auf eine Zelle, welche die Bedingung: Target.Column > 3 And Selection.Rows.Count < 2
erfüllt, öffnet sich das Formular nicht.
Viele Grüße,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Gerd
Geschrieben am: 29.12.2006 00:02:17
Hi,
du hast nicht das richtige Ereignis verwendet: Selection_Change
mfg Gerd
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas
Geschrieben am: 29.12.2006 12:09:56
Hallo Gerd,
der Code steht unter folgendem Ereignis:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Ist das falsch???
Gruß,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Gerd
Geschrieben am: 29.12.2006 16:58:07
Hi,
der gesamte Code, der dort steht, wäre hilfreich.
mfg Gerd
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas

Geschrieben am: 29.12.2006 17:44:30
Hallo Gerd,
anbei der Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim z As Long
If InStr(1, Target.Address, ":") > 0 Or InStr(1, Target.Address, ",") > 0 Then Exit Sub
If Target.Column > 6 And Selection.Rows.Count < 2  Then
Select Case ActiveCell.Offset(0, -6).Value
Case "A": z = 1
Case "B": z = 2
Case "C": z = 3
Case Else
Exit Sub
End Select
frmSchreiben.Show
End Sub

Gruß,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Gerd
Geschrieben am: 29.12.2006 17:50:36
Hi,
sorry, verstehe den Sinn des Ganzen nicht.
mfg Gerd
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas

Geschrieben am: 29.12.2006 18:31:21
Hallo Gerd,
folgenden Hintergrund verfolgt der Code:
ich prüfe ab, wenn der User auf eine Zelle geht (dies eben auch, wenn er die "Pfeil"-Tasten benutzt), ob 6 Spalten nach links der Value "A", "B" oder "C" enthalten ist.
Stimmt der Value überein, öffnet sich mein Formular frmSchreiben.
Mein Problem ist eben nur, dass die Prüfroutine (6 Spalten nach links) immer läuft und ich die Prüfung nur zulassen möchte, wenn ein User mit der linken Maustaste auf eine Zelle klickt.
Gruß,
Thomas
Bild

Betrifft: AW: Formular öffnen bei klick
von: Gerd
Geschrieben am: 29.12.2006 22:37:05
Hi,
bei Selection_Change gibt es keine Unterscheidung zwischen Pfeiltasten und Mausklick,
insofern ist dein Anliegen nicht machbar.
mfg Gerd
Bild

Betrifft: AW: Formular öffnen bei klick
von: Thomas

Geschrieben am: 30.12.2006 09:29:24
Hallo Gerd,
danke für deine Antwort!
Hab ich da überhaupt keine Chance im Code abzufragen, ob ein User den Select_Change mit der linken Maustaste bzw. mit den Pfeiltasten gemacht hat???
Wenn nein, gibt mir Excel/VBA eine Möglichkeit ein Ereignis zu benutzen, welches nur auf die linke Maustaste reagiert???
Gruß,
Thomas
 Bild
Excel-Beispiele zum Thema "Formular öffnen bei klick"
Über Doppelklick aus Preisliste in Bestellformular einfügen Rechnungsformular mit Zugriff auf Kunden- und Artikelstamm
Automatische Passworteingabe in Internet-Formular Formulardaten aus Zellen an Webformular und Ergebnis eintragen
Nur speichern, wenn alle Formularfelder ausgefüllt sind