Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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

Abbrechen wenn zelle ausgewählt wird

Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:03:02
Guesa

Hallo Leute
erst einmal wünsche ich allen einen guten Rutsch ins Neue Jahr
Folgendes Problem schließt sich an
Ich habe eine Vorlage die kopiert wird, allerdings möchte ich, dass wenn Zelle "X2" oder "D4" ausgewählt wird, eine Meldung erscheint, dass in diese kein Eintrag erfolgen darf und anschließend die Auswahl abgebrochen wird. In den Kopien der Vorlage sollen aber Einträge erfolgen. Kann mir da jemand helfen?
Gruß
Guesa

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:06:47
Hajo_Zi
was ist

anschließend die Auswahl abgebrochen wird
soll eine andere Zelle gewählt werden?

AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:30:46
Hajo_Zi
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RaBereich As Range                          ' Variable für Bereich
Set RaBereich = Range("X2, D4")                 ' Bereich der Wirksamkeit
' Prüfen ob Auswahl im Zellbereich
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
' Prüfen ob Mustervorlage
If Not RaBereich Is Nothing And InStr(ThisWorkbook.Name, ".") > 1 And _
UCase(Left(Mid(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") + 1), 3)) <> "XLT" Then
Application.EnableEvents = False            ' Reaktion Zellauswahl abschalten
Target.Offset(0, 1).Select                  ' eine Zelle nach rechts springen
Application.EnableEvents = True             ' Reaktion Zellauswahl einschalten
Set RaBereich = Nothing                     ' Variable leeren
End If
End Sub
Gruß Hajo

Anzeige
AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 12:00:53
Guesa
Hi Hajo_Zi
In meiner Vorlage funktioniert das, aber wenn ich diese kopiere und umbenenne kann ich die Zellen auch nicht mehr anwählen

AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 12:01:55
Hajo_Zi
das war ja die Forderung das es nur in der Vorlage ausgewählt werden kann.
Gruß Hajo

AW: Missverständnis!
31.12.2014 12:13:16
Gerd L
Hallo Hajo!
In den Kopien der Vorlage sollen aber Einträge erfolgen.
D.h.:Die Sperre der beiden Zellen soll nur in der Tabelle im Original erfolgen.
Gruß Gerd

AW: Missverständnis!
31.12.2014 12:19:06
Hajo_Zi
Hallo Gerd,
dann kleine Änderung.
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RaBereich As Range                          ' Variable für Bereich
Set RaBereich = Range("X2, D4")                 ' Bereich der Wirksamkeit
' Prüfen ob Auswahl im Zellbereich
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
' Prüfen ob Mustervorlage
If Not RaBereich Is Nothing And InStr(ThisWorkbook.Name, ".") > 1 And _
UCase(Left(Mid(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") + 1), 3)) = "XLT" Then
Application.EnableEvents = False            ' Reaktion Zellauswahl abschalten
Target.Offset(0, 1).Select                  ' eine Zelle nach rechts springen
Application.EnableEvents = True             ' Reaktion Zellauswahl einschalten
Set RaBereich = Nothing                     ' Variable leeren
End If
End Sub
Gruß Hajo

Anzeige
AW: Missverständnis!
31.12.2014 12:22:13
Hajo_Zi
Hallo Gerd,
ich war von der Logik ausgegangen das man in der Mustervorlage alles ändern darf. Aber das war wohl nicht so.
Warum man diese Zellen in der Mustervorlage nicht ändern darf erschließt sich mir nicht.
Gruß Hajo

AW: Missverständnis!
31.12.2014 12:33:38
Guesa
Hallo Hajo
Das sind genau die 2 Zellen die sich in den Kopierten Vorlagen ändern können alles andere bleibt gleich

AW: Missverständnis!
31.12.2014 12:38:07
Hajo_Zi
daraus hätte ich jetzt gelesen nur diese 2 Zellen dürfen geändert werden alle anderen nicht. Dann arbeite doch mit Tabellenschutz, ist einfacher und ohne VBA.
Gruß Hajo

Anzeige
AW: Missverständnis!
31.12.2014 17:31:23
Guesa
Hallo Hajo
Wenn ich mit Blattschutz arbeite kopiere ich doch diese Funktion mit, und dann kann in der Kopie nicht weiter eingeben. Sorry, Was ich eben nicht erwähnt hatte ist, dass die Kopie der Vorlage automatisch nach diesen 2 Zellen benannt wird. Wenn ich also in der Vorlage "Mustermann" "Datum" eintrage, benennt sich die Vorlage entsprechend um und somit habe ich keine Vorlage mehr. Vielleicht ist das von mir ja auch zu kompliziert erklärt oder gemacht.
Gruß
Guesa

AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:29:13
Daniel
Hi
schreibe ins Change-Event des Tabellenblatts folgenden Code:
If ThisWorkbook.Name = "Name der Vorlage.xlsb" Then
If Not Intersect(Target, Range("X2,D4")) is Nothing Then
Msgbox "In der Vorlage dürfen die Zellen X2 und D4 nicht geändert werden"
With Application
.EnableEvent = False
.Undo
.EnableEvents = True
End With
End If
End If
man kann die Zellen dann zwar auswählen, aber eine Eingabe in diese Zellen wird rückgängig gemacht.
frohes neues Jahr, Daniel

Anzeige
AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:45:32
Guesa
Hi Daniel
Da stoß ich noch an meine Grenzen
Wo ist das Change-Event im Tabellenblatt?

AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 11:57:57
Daniel
Hi
1. mit der Rechten Maustaste auf den Tabellenblattreiter des betroffenen tabellenblatts klicken
2. "Code anzeigen" im Kontextmenü auswählen
jetzt sollte sich der VBA-Editor öffnen
3. wähle in der linken Combobox über dem Codefenster (das grosse) "Worksheet" aus.
hierbei wird automatisch das Selection-Change-Eventmarko erstellt, dieses brauchst du nicht und kannst es löschen
4. wähle in der rechten Combobox über dem Codefenster den Eintrag "Change" aus
jetzt wird das Change-Event-Makro automatisch mit Start- und Endzeile erstellt und du kannst den von mir gezeigten Code zwischen diesen beiden Zeilen einfügen.
dieses Makro wird immer ausgeführt, wenn du auf dem Blatt einen Zellwert änderst.
den Dateinamen im Code musst du natürlich anpassen (so wie er im Fenstertitel der Excelmappe steht)
gruß Daniel

Anzeige
AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 12:28:18
Guesa
Hi Daniel
Hab ich so gemacht, es tut sich aber nichts. Der Code sieht dann so aus
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If ThisWorkbook.Name = "Z-Vorlage" Then
If Not Intersect(Target, Range("X2,E4")) Is Nothing Then
MsgBox "In der Vorlage dürfen die Zellen X2 und E4 nicht geändert werden"
With Application
.EnableEvent = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

AW: Abbrechen wenn zelle ausgewählt wird
31.12.2014 13:15:12
Daniel
Hi
dann doch die Dateierweiterung zum Dateinamen mit hinzunehmen:
den richtigen Text bekommst du angezeigt, wenn du im Direktfenster (ggf über das Menü "Ansicht" im VBA-Editor einblenden) den Befehl eingibst: ?ActiveWorkbook.Name
If ThisWorkbook.Name = "Z-Vorlage.xlsm" Then

oder folgende Prüfung verwenden:
If ThisWorkbook.Name Like "Z-Vorlage.*" Then
Gross- und Kleinschreibung muss beachtet werden.
Gruß Daniel

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige