Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellenauswahl Makro, No Value





Frage

Hallo, ich habe zwei Fragen: 1. Wisst Ihr wie ich mit einem Makro unterschiedliche Zellbereiche ansteuern kann? Das Makro siehtr so aus: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Me.Range("E15:AZ20")) Is Nothing Then Exit Sub Target = 1 + Target If Target > 2 Then Target = 0 End Sub Ich hättte gerne nicht nur E15 bis AZ20 sondern auch andere Bereiche gleichzeitig. 2. Wie kann ich Nullwerte so markieren, dass Sie in einem Diagramm nicht als Nullwert auftauchen? Ich habs mit na() probiert, hat aber nicht funktioniert. viele Grüße Richard

Antwort 1 von Hajo_Zi

Hallo Richard,

gabe es bei Diagramme keine Option Nullwerte nicht anzeigen?
Ansonsten #NV in die Zelle schreiben.

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("A41:AN41")
' noch mehr Bereiche
' Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17 , C19:AG19 , C21:AG21 , C27:AE27 , C29:AE29, C31:AE31, C33:AE33"), _
' Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49 ,C51:AG51 , C53:AG53 , C59:AF59 , C61:AF61 , C63:AF63 , C65:AF65"), _
' Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81 , C83:AG83 , C85:AG85 ,C91:AF91 , C93:AF93 , C95:AF95 , C97:AF97"), _
' Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111 , C113:AG113 , C115:AG115 , C117:AG117 , C123:AG123 , C125:AG125"), _
' Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139 , C141:AF141 , C143:AF143 , C145:AF145 , C147:AF147 , C149:AF149"), _
' Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163 , C165:AG165 , C171:AF171 , C173:AF173 , C175:AF175 , C177:AF177 "), _
' Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191 , C193:AG193 , C195:AG195 , C197:AG197"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
' ActiveSheet.Unprotect ("Passwort")
' Zelle die in dem Bereich liegen auf die Varible 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
Target = 1 + Target
If Target > 2 Then Target = 0
End If
Set RaBereich = Nothing
End Sub

Gruß Hajo

Antwort 2 von rheym

Hallo Hajo,

Setzt man vor das Range ein Union und danach in Klammern alle Bereiche, die man mit der Funktion belegen will?
Ich habs mal so probiert:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range
Set RaBereich = Union(Range("E15:AZ20 , A43:AZ48, A52:AZ57 , A79:AZ84"))
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Target = 1 + Target
If Target > 2 Then Target = 0
End If
Set RaBereich = Nothing
End Sub

hat aber nicht funktioniert.
Das mit dem #NV funktioniert, Danke

Gruß
Richard

Antwort 3 von Hajo_Zi

Hallo Richard,

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range
Set RaBereich = Range("E15:AZ20 , A43:AZ48, A52:AZ57 , A79:AZ84")
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Target = 1 + Target
If Target > 2 Then Target = 0
End If
Set RaBereich = Nothing
Cancel = True
End Sub

Gruß Hajo

Antwort 4 von rheym

Halllo Hajo,

vielen Dank für Deine Hilfe

viele Grüße

Richard

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: