Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Userform nur von Zellen der Spalte A aus starten

Betrifft: Userform nur von Zellen der Spalte A aus starten von: Tom
Geschrieben am: 14.11.2014 11:23:15

Hallo zusammen,

ich hab eine userform, die durch Rechtsklick auf eine beliebige Zelle gestartet wird.

Jedoch kann die Zelle überall in meinem Tabellenblatt sein.

Ich möchte die userform nun so einschränken, dass sie nur von Zellen der Spalte A aus aufgerufen werden kann. Wie kann ich das realisieren?

Bisher sieht mein code für den Aufruf der userform so aus:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
          Call UserForm1.Show
         Cancel = True
              End Sub

Danke schon mal!

Gruß,
Tom

  

Betrifft: if Target.Column=1 then ... owT von: Matthias L
Geschrieben am: 14.11.2014 11:25:21




  

Betrifft: AW: Userform nur von Zellen der Spalte A aus starten von: Hajo_Zi
Geschrieben am: 14.11.2014 11:27:58

Hallo Tom,

ich benutze immer folgenden Ansatz.

    Dim RaBereich As Range                          ' Variable für Bereich
    Dim RaZelle As Range                            ' Variable für Zelle
    Set RaBereich = Range("L22:M39, O21:O26")       ' Bereich der Wirksamkeit
    ' noch mehr Bereiche
    'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
    '    Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
    '    Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
    '    Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
    '    Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
    '    Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
    '    Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
    ' ab Vesion XP braucht der Schutz nicht aufgehoben werden
    ' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
    ' Zelle die in dem Bereich liegen auf die Variable schreiben
    ' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
    ' jede Zelladresse ist einzeln angegeben
    Set RaBereich = Intersect(RaBereich, Range(Target.Address))
    If Not RaBereich Is Nothing Then
GrußformelHomepage


  

Betrifft: Nachtrag ... von: Matthias L
Geschrieben am: 14.11.2014 11:28:39

Hallo Tom

Damit das Kontexmenue in den anderen Spalten dann auch wieder funktioniert,
wäre es so sicher besser:

Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column = 1 Then
    Cancel = True
    Call UserForm1.Show
 End If
End Sub
Gruß Matthias


  

Betrifft: AW: Nachtrag ... von: Tom
Geschrieben am: 14.11.2014 11:36:14

Vielen Dank, funktioniert! :)

Die Sache mit dem Kontextmenü ist so beabsichtigt. Es soll grundsätzlich deaktiviert sein.

Viele Grüße,
Tom


  

Betrifft: Danke für die Rückmeldung ... owT von: Matthias L
Geschrieben am: 14.11.2014 11:37:33




 

Beiträge aus den Excel-Beispielen zum Thema "Userform nur von Zellen der Spalte A aus starten"