Fragensteller
Einzelne Zelle sperren gegen Eingabe und Formatierung bei Excel 2007 Worksheet ohne Blattschutz verwenden

Allgemeine Diskussion
-
Hi,
hat jemand eine Idee wie ich eine Einzelne Zelle sperren kann gegen Eingabe und Formatierung ohne den Blattschutz zu verwenden.
Ich programmiere mit VS2008 VSTO und habe ein Excel 2007 Worksheet.
Grüße
- Typ geändert Bogdan Petru Roiu Mittwoch, 3. August 2011 13:16 Diskussion
Alle Antworten
-
hat wohl niemand eine Idee?!
Ich versuche es gerade mit folgendem Event:
Wenn ich die Zelle anwählen will wird einfach eine neue Zelle angewählt.private void Zelle_Selected(Microsoft.Office.Interop.Excel.Range Target) { Excel.Range er = (Excel.Range)Globals.ThisWorkbook.eSheet.get_Range("NeuZelle", "NeuZelle"); er.Activate(); }
Klappt ganz gut, solange ich nur einfache Klick´s verwende, bei einem Doppelklick wird die Zelle trotzdem aktiviert.
An was könnte das liegen?
Grüße
-
Hallo cathrin_,
Sehr gute Idee. Ich habe genau deine Idee bei mir (Windows XP SP3, Office 2007 SP2, Visual Studio 2008 RTM v 9.0.21022.8) implementiert:
1. Neues Workbook Projekt
2. Eine Zelle [2,2] in Sheet1 habe ich ‚Zelle‘ benannt
3. Eine weitere Zelle [4,4] als ‚NeuZelle‘ benannt
4. Das Selected Event die Objekt Zelle aktiviert
private void InternalStartup() { this.Startup += new System.EventHandler(Sheet1_Startup); this.Shutdown += new System.EventHandler(Sheet1_Shutdown); Zelle.Selected+=new Microsoft.Office.Interop.Excel.DocEvents_SelectionChangeEventHandler(Zelle_Selected); }
5. Das Selected Event mit folgendem Code belegt
private void Zelle_Selected(Microsoft.Office.Interop.Excel.Range Target) { Excel.Worksheet sh = (Excel.Worksheet)Target.Application.ActiveSheet; sh.get_Range("NeuZelle", "NeuZelle").Activate(); }
Es hat bei mir gut funktioniert (auf NeuZelle gesprungen) wenn ich auf die Zelle anklicke, aber auch wenn ich die Zelle doppelklicke.Hast du auch das BeforeDoubleClick Event belegt?
Grüße,
Bogdan
-
Hallo Bogdan,
ja genau, so habe ich das dann auch gemacht, aber die Zelle läßt sich mit Doppelklick anwählen und wenn ich mehrere Zellen auf einmal anwähle läßt sie sich auch formatieren. Das heißt dann im Endeffekt, ich kann die Schriftfarbe auf Weiß stellen und die Meldung die ich ausgeben will ist nicht mehr sichtbar.
Und glaube mir, ich habe schon sämtliche Event´s ausprobiert, um das zu verhindern.
Gruß
-
Hallo Cathrin,
ich habe paar Jahren her, dasgleiche Problem gehabt - es war damals im VBA die Applikation entwickelt - und ich konnte auch nicht zu einer vernünftigen Lösung kommen. Mein Plan B war damals folgendes:
- beim Workbook_Open habe ich die Werte und die Formatierung der 'Fest'-Zellen in einer Collectiion gespeichert und im 'SelectionChanged' die 'Fest'-Zellen geprüft. falls die aktuellen Werte nicht übereinstimmten habe ich sie wieder geschrieben. Beim Workbook_Close habe ich die Überprüfung wieder geführt.
Umständlich.
Grüße,
Bogdan
-
Hallo Bogdan,
ich sollte das eher beim Ausdrucken des Blattes überprüfen, das es keine "saubere Lösung" gibt, habe ich auch schon gemerkt und arbeite jetzt auch noch mit Blattschutz. Da muß ich dann immer wenn ich mit meinem Code Werte reinschreibe, den Blattschutz aufheben und danach wieder setzen.
Grüße