Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Target Bereich mit Zellen vergleichen

Target Bereich mit Zellen vergleichen
Domtsgi
Hallo zusammen
Ich möchte beim Auswählen eines Bereiches abhängig vom Wert einer Zelle einen Eintrag verhindern.
so in etwa:
'

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' if ausgewählter Bereich (target.adress) "A4:E4" and Wert in "F4" = 1 then range "A1" and exit  _
_
sub
' if ausgewählter Bereich (target.adress) "A5:E5" and Wert in "F5" = 1 then range "A1" and exit  _
_
sub
' if ausgewählter Bereich (target.adress) "A150:E150" and Wert in "F150" = 1 then range "A1"and  _
_
exit sub
' End Sub

könnt ihr mir weiterhelfen?
Besten Dank und Gruss
Domtsgi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:02:48
Hajo_Zi
löse es doch ohnev Makro über Daten, Gültigkeit.
Tabelle1
 ABCDEF
35          1
36    979     

Daten, Gültigkeit
Zelle Zulassen Daten Wert1 Wert2 Leere Zellen ignorieren Zellendropdown Titel Eingabemeldung Eingabemeldung Titel Fehler Fehlermeldung
A35BenutzerdefiniertZwischen=$F351     Wahr            
B35BenutzerdefiniertZwischen=$F351     Wahr            
C35BenutzerdefiniertZwischen=$F351     Wahr            
D35BenutzerdefiniertZwischen=$F351     Wahr            
E35BenutzerdefiniertZwischen=$F351     Wahr            
A36BenutzerdefiniertZwischen=$F361     Wahr            
B36BenutzerdefiniertZwischen=$F361     Wahr            
C36BenutzerdefiniertZwischen=$F361     Wahr            
D36BenutzerdefiniertZwischen=$F361     Wahr            
E36BenutzerdefiniertZwischen=$F361     Wahr            

Tabellendarstellung in Foren Version 5.47



Anzeige
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:24:06
Domtsgi
Hallo Hajo_Zi
besten Dank für dein Lösungsansatz.
Das Problem ist, das diverse User Daten eingeben oder Daten rein- kopieren oder sonst irgendwie die Möglichkeit besteht, dass die Gültigkeit aus den Zellen gelöscht wird.
Ich muss es über VBA lösen.
Gruss Domtsgi
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:39:56
Hajo_Zi
es werden alle Werrte in dem Bereich gelösch, falls in F eine 1 steht.
Option Explicit                             ' Variablendefinition erforderlich
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'* H. Ziplies                                     *
'* 17.12.11                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
Set RaBereich = Range("A:E")
' 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"))
' 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
Application.EnableEvents = False
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If Cells(RaZelle.Row, 6) = 1 Then
MsgBox "In Zelle " & RaZelle.Address & " darf nichts geschrieben werden!!!"
RaZelle = ""
End If
Next RaZelle
Application.EnableEvents = True
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                 ' Variable leeren
End Sub

Gruß Hajo
Anzeige
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:51:42
Domtsgi
Hallo Hajo_Zi
genau das habe ich gesucht! Super, funktioniert bestens.
Besten Dank
Gruss Domtsgi
AW: Target Bereich mit Zellen vergleichen
17.12.2011 15:03:13
Hajo_Zi
eigentlich mußt Du noch verhindern das jemand den Wert in Spalte F ändert. Falls Du ihn ändern willst, Makros nicht aktivieren.
Option Explicit                             ' Variablendefinition erforderlich
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'* H. Ziplies                                     *
'* 17.12.11                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
Set RaBereich = Range("F:F")
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
MsgBox "In Spalte F darf nichts eingetragen werden"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Else
' Bereich der Wirksamkeit
Set RaBereich = Range("A:E")
' 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"))
' 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
Application.EnableEvents = False
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If Cells(RaZelle.Row, 6) = 1 Then
MsgBox "In Zelle " & RaZelle.Address & " darf nichts geschrieben werden!!!"
RaZelle = ""
End If
Next RaZelle
Application.EnableEvents = True
'ActiveSheet.protect ("Passwort")
End If
End If
Set RaBereich = Nothing                 ' Variable leeren
End Sub

Das mit den Makros nicht aktivieren können die anderen auch machen, da nützt das Makro nichts.
Gruß Hajo
Anzeige
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:47:24
hary
hallo
so?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .Column  3 And .Row 

gruss hary
AW: Target Bereich mit Zellen vergleichen
17.12.2011 14:55:25
Domtsgi
Hallo hary
ich habe die Lösung von Halo_Zi getestet und dies funktioniert. (und ich kann diese sogar nachvollziehen)
besten Dank aber auch an dich
Gruss Dominique

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige