PDA

Vollständige Version anzeigen : Bereichseingrenzung wie?


Andreas70
20.03.2009, 07:31
Ich habe folgende Lösung herangezogen um in einer Liste mit mehreren Spalten, die Auswahl einer Tätigkeit die bisher durch das schreiben eines x in die jeweilige Zelle gelöst wurde durch ein setzen der Auswahl mit Rechtsklick ersetzt. Jetze betreffen aber diese Felder nur die Spalten C bis J. Wie erreiche ich das nur dies Spalten oder noch besser der Bereich C15:J188 von
der Funktion betroffen ist. Momentan funktioniert es zwar, aber in Spalte A und B wird mir jetzt bei Rechtsklick natürlich auch ein x gesetzt.


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

'Anwahl der Tätigkeit durch Rechtsklick

If Target.Column < 11 Then
Cancel = True
If Target = "" Then
Target = "X"
ElseIf LCase(Target) = "x" Then
Target = ""
End If
End If

End Sub

Meine bisherigen Versuche mit Range haben mir nur Fehlermeldungen eingebracht. Irgendwie bekomme ich es einfach nicht in den Griff wie ich die Zeile "If Target.Column < 11 Then" schreiben muss damit nur C-J oder eben ein definierter Bereich betroffen sind.

Flämmchen
20.03.2009, 08:12
Hallo,

habe dir hier mal ein bisschen an deinem IF rumgebastelt:

<FONT COLOR=#0000FF>If</FONT>&nbsp;Target.Column&nbsp;&lt;&nbsp;11&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Column&nbsp;&gt;&nbsp;2&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Row&nbsp;&gt;&nbsp;14&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Row&nbsp;&lt;&nbsp;189&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;Cancel&nbsp;=&nbsp;<FONT COLOR=#0000FF>True</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;Target&nbsp;=&nbsp;""&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Target&nbsp;=&nbsp;"X"
&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>ElseIf</FONT>&nbsp;LCase(Target)&nbsp;=&nbsp;"x"&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Target&nbsp;=&nbsp;""
&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>
<FONT COLOR=#0000FF>End If</FONT>

<FONT COLOR=#0000FF>If</FONT>&nbsp;Target.Column&nbsp;&lt;&nbsp;11&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Column&nbsp;&gt;&nbsp;2&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Row&nbsp;&gt;&nbsp;14&nbsp;<FONT COLOR=#0000FF>And</FONT>&nbsp;Target.Row&nbsp;&lt;&nbsp;189&nbsp;<FONT COLOR=#0000FF>Then</FONT>
Prüft jetzt , ob die Spalte < 11 (also bis J) <FONT COLOR=#0000FF>UND</FONT> > 2 (also ab C) <FONT COLOR=#0000FF>UND</FONT> die Reihe > 14 <FONT COLOR=#0000FF>UND</FONT> < 189 ist.

Hoffe, das ist das, was du haben wolltest.

MFG Flämmchen

Andreas70
20.03.2009, 08:29
Ja das ist es was ich haben wollte, danke. Wieder was hinzugelernt, was ich nicht alles probiert habe, bereich definiert und target = Bereich, target = C15:J188, mit klammern, anführungszeichen und, und, und dabei hätt ein simples and gereicht :-)