Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Verknüpfungen Aktualisieren unter Blattschutz

38 views
Skip to first unread message

steffenp

unread,
Apr 7, 2006, 4:15:18 AM4/7/06
to
moin leutz,

ich habe mal wieder ein problem .>
ich habe ein WB welches ich bis auf wenige editierbare Bereiche
schützen lassen.
es ist nur aber sehr wichtig das ich trotz eines Blattschutzes die
Links (Verknüpfungen) ändern kann.
ich habe bisher diese Actionen freigegeben


ActiveSheet.Protect Password:="Test", DrawingObjects:=False,
Contents:=True, _ Scenarios:=True, AllowFormattingCells:=True,
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
UserInterfaceOnly:=False ', EditObjects:=True


der Zusatz -> AllowInsertingHyperlinks:=True
bringt mich auch nicht weiter.
ich brauche die Function -> Edit / Links bzw Bearbeiten /
Verknüpfungen


hoffe das einer von euch eine Idee hat.
THX für eure mühen


mfg
steffen
win2k_sp4_-_office03_sp2

Susanne Wenzel

unread,
Apr 9, 2006, 8:15:10 AM4/9/06
to
Hallo Steffen,

Am 7 Apr 2006 01:15:18 -0700 schrieb steffenp:

> ich habe mal wieder ein problem .>
> ich habe ein WB welches ich bis auf wenige editierbare Bereiche
> schützen lassen.
> es ist nur aber sehr wichtig das ich trotz eines Blattschutzes die
> Links (Verknüpfungen) ändern kann.

mal so zur Klarstellung:
Damit meinst Du, dass z.B. ein Link in Zelle A1 (in Deinem geschützten
Tabellenblatt), der auf die Zelle B1 in einer anderen Exceldatei
(='PfadZurDatei[DateiName]Tabelle1'!B1) verknüpft, geändert werden darf?
Und das, obwohl die Zelle A1 gesperrt ist?

> ich habe bisher diese Actionen freigegeben

>
> ActiveSheet.Protect Password:="Test", DrawingObjects:=False,
> Contents:=True, _ Scenarios:=True, AllowFormattingCells:=True,
> AllowFormattingColumns:=True, _
> AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
> UserInterfaceOnly:=False ', EditObjects:=True

>
> der Zusatz -> AllowInsertingHyperlinks:=True
> bringt mich auch nicht weiter.

Ich habe mir mal den Schützen-Bereich in der Oberfläche angeguckt (ExcelXP
SP3), um zuerst einmal nachvollziehen zu können, wo Dein Problem liegt.

> ich brauche die Function -> Edit / Links bzw Bearbeiten /
> Verknüpfungen

Was ich dann auch konnte (die entsprechenden Buttons im Dialog
Verknüpfungen bearbeiten sind ausgegraut, nachdem der Blattschutz gesetzt
ist). Sah mir dann noch einmal den Blattschutz-Dialog an, wo der Haken bei
"Arbeitsblatt und Inhalt gesperrter Zellen schützen" gesetzt ist. Das
Ändern einer Verknüpfung führt doch automatisch zu einem anderen Inhalt der
Zelle, damit landest Du doch in einem Widerspruch, der gar nicht aufgehen
kann, oder sehe ich das falsch?

Insofern sehe ich irgendwie keine Möglichkeit, Dein gewünschtes Ziel auf
die Art und Weise zu erreichen.

Worum geht es Dir denn genau?
Wenn es um die Verknüpfung einer nicht geschützten Zelle geht, die kannst
Du doch direkt editieren/ändern, also ohne den Verknüpfen-Dialog zu
bemühen. Oder wäre Dir diese direkte Form der Bearbeitung nicht komfortabel
genug und deswegen möchtest Du das ändern?

> hoffe das einer von euch eine Idee hat.

Naja, nicht so wirklich. Aber ich schätze, ich habe Dein Problem noch nicht
so recht begriffen, vielleicht kannst Du mir da auf die Sprünge helfen?

Viele Grüße aus dem hohen flachen Norden Deutschlands
Susanne

steffenp

unread,
Apr 10, 2006, 4:02:36 AM4/10/06
to
erstma grüße an den Norden :}

ich versuche mal genauer zu differenzieren.
1) - es handelt sich um eine sehr lange "Exceltapete"
2) - es gibt 2 Benutzergruppen im Protection -> 1ne darf alles und
die 2te darf nur in bestimmten Bereichen arbeiten
3) - die gesamte Tabelle setzt sich aus ~ 30 Datenquellen zusammen
4) - es existiert eine Timeline mit einem IST- Monat -> es wird vom
IST- Monat bis Ende Timeline ein Bereich geschaffen der komplett
editiert werden darf (grp2)
5) - 2ter ProtectionBereich geht über das Gesamte Blatt und ist nur
unter bestimmten NT Anmeldenamen editierbar oder mit Passwort Eingabe

6) - alles was nicht im non Protect Bereich (grp2) ist wird kopiert und
eingefügt und um evt Änderungen der "IST - X" (alte werte) zu
verhindern.
-- das ganze wird von einem Macro hinter einer Benutzeroberfläche auf
externe Books gesteuert, es wird angeben welcher der IST Monat ist und
uf welche Books der Protect gesetzt werden soll
-- und WICHTIGER Punkt -> is darf kein Macro im Book auf den das
Protection angewandt wurde sein!!
sondern nur von außen gesteuert.

so das war die kurze Erläuterung zu meinen kleinen Tool.
ich hoffe das esjetzt etwas verständlicher ist warum ich die
Verknüpfungen ändern erlauben muss.
-> zu deinem Punkt mit Zelle A1 und B1 :} -> wenn ein Blattschutz auf
eine verlinkte Zelle Active ist und sich die Quelle ändert, dann
ändert sich auch die Geschütze Zelle. Es sei denn ich unterdrücke
den Autoupdate der Links.

-> genau diese angegrauten button in dem Dialog "Links" oder
Verknüpfungen an die will ich ran
egal wie.. entweder direkt an die Button oder an die Function, am
bessten währe natürlich das freischalten der Function. aber ich bin
leider nicht über den Aufruf der selben hinaus gekommen..
bin aber am Probieren :}

Thomas Ramel

unread,
Apr 10, 2006, 4:11:32 AM4/10/06
to
Grüezi steffen

steffenp schrieb am 07.04.2006

> ich habe ein WB welches ich bis auf wenige editierbare Bereiche
> schützen lassen.
> es ist nur aber sehr wichtig das ich trotz eines Blattschutzes die
> Links (Verknüpfungen) ändern kann.
> ich habe bisher diese Actionen freigegeben
>
> ActiveSheet.Protect Password:="Test", DrawingObjects:=False,
> Contents:=True, _ Scenarios:=True, AllowFormattingCells:=True,
> AllowFormattingColumns:=True, _
> AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
> UserInterfaceOnly:=False ', EditObjects:=True

Versuche es mal indem Du die Option:

UserInterfaceOnly:=True

setzt, dann kannst Du per VBA alle Zelle ändern, auf der Benutzeroberfläche
gelten aber dennoch die Schutzvorkehrungen.

Mit freundlichen Grüssen
Thomas Ramel (@work)

--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-1]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)

steffenp

unread,
Apr 10, 2006, 5:03:59 AM4/10/06
to

hallo Thomas

das habe ich gerade probiert, es funktioniert leider auch nicht :[

THX für eure mühen

mfg
steffenp
win2k_sp4_-_office03_sp2

Thomas Ramel

unread,
Apr 10, 2006, 5:06:58 AM4/10/06
to
Grüezi steffen

steffenp schrieb am 10.04.2006

> das habe ich gerade probiert, es funktioniert leider auch nicht :[

Hmmm, Du müsstest dann aber per Code *direkt* den Inhalt der Zellen
verändern können - nicht per Dialog 'Verknüpfungen ändern'.

steffenp

unread,
Apr 10, 2006, 5:16:45 AM4/10/06
to
hallo Thomas

es ist richtig das ich die Zellen ändern kann. Und auch dort eine
Verknüpfung einfügen kann.
aber wie ich oben schon kurz beschrieben habe, ist es wirklich wichtig
das ich im Dialog (um es einfach auszudrücken) Verknüpfungen ändern
alle Button benutzen darf und das als Benuter mit eingeschränkten
Zugriff.
der Punkt ist das die Tabelle verdammt groß ist und aus ca 30
Datenquellen besteht.
deshalb muss ich diesen Weg die Datenquellen zu ändern wählen. alles
andere währe zu aufwändig.

Dr. Eckehard Pfeifer

unread,
Apr 10, 2006, 5:59:34 AM4/10/06
to
Hallo, wie waere es denn, wenn Du Dich in den Menuepunkt
"Verknuepfungen..." einklinkst:

In DieseArbeitsmappe deklarierst Du

Dim WithEvents mnuLinks as CommandBarButton

Im Workbook_Open vereinbarst Du

Private Sub Workbook_Open()
Set menuLinks = Application.CommandBars.FindControl(ID:=759)
End Sub

Und in

Private Sub menuLinks_Click(ByVal Ctrl As Office.CommandBarButton,
CancelDefault As Boolean)
CancelDefault = True
Tabelle1.Unprotect
Application.Dialogs(xlDialogOpenLinks).Show
Tabelle1.Protect
End Sub

faengst Du den Dialog ab, hebst den Schutz auf, laesst den Dialog
anzeigen und setzt den Schutz wieder.

--
MfG EP
Entwicklung - Beratung - Training (www.dr-e-pfeifer.net)
(Microsoft Certified Application Developer)
neu: MS Office 2003 - Das Entwicklerbuch (ISBN 3-86063-688-X)

steffenp

unread,
Apr 10, 2006, 6:43:11 AM4/10/06
to
hallo

ich bin gerade etwas verwirrt. habe das natürlich ausprobiert.
kann aber sein das ich auf Grund mangelndes Verständnis einen fehler
gemacht habe

-> Dim WithEvents menuLinks as CommandBarButton '##### in
Arbeitsmappe deklariert (global)
-> Set menuLinks = Application.CommandBars.FindControl(ID:=759)
####### Workbook_Open()
-> Private Sub menuLinks_Click(ByVal Ctrl As Office.CommandBarButton,


CancelDefault As Boolean)
CancelDefault = True
Tabelle1.Unprotect
Application.Dialogs(xlDialogOpenLinks).Show
Tabelle1.Protect

End Sub ################ im tabellenblatt deklariert


blöde frage: aber muss ich jetzt noch einen button deklaieren oder
spricht du damit direkt button auf dem dialogfeld an?

Dr. Eckehard Pfeifer

unread,
Apr 10, 2006, 6:50:04 AM4/10/06
to
Hallo,

Set menuLinks = Application.CommandBars.FindControl(ID:=759)

instanziert menuLinks im Open. Nun musst Du das Open einmal durchlaufen
lassen (beim sonstigen Oeffnen laeufts ja von selbst) und kannst nun
beobachten, was unter Bearbeiten/Verknuepfungen... passiert. Setze dazu
einen Haltepunkt in Tabelle1.Unprotect. Tabelle1 musst Du eventuell
noch in das passende aendern.

steffenp

unread,
Apr 10, 2006, 7:15:01 AM4/10/06
to
Es läuft :}

Dankeschön

Es ist nicht ganz so wie ich das haben wollte -> ein macro freies
Arbeitsblatt, aber ich bin nach einer Weile intensiver Lösungssuche
damit vollkommen zufrieden

Da bleibt mir nur noch ein Frage offen.

ich steuere die gesamte Protection Prozedur von einem externen Macro
und wollte dann auch über diese den Quellcode in das jeweilige
Workbook einfügen und auch wieden entnehmen können.
leider habe ich auch das noch nie gemacht

Dr. Eckehard Pfeifer

unread,
Apr 10, 2006, 8:20:00 AM4/10/06
to
Hallo, Du kannst das alles auch in einem Add-In oder der personl.xls
oder sonstwo unterbringen. Dann musst Du nur in der Click-Prozedur
testen, obs auch die gewuenschte Tabelle ist, bevor Du CancelDefault
auf True setzt. Die Deklaration mit Withevents muss nur in einem
Klassenmodul stehen, DieseArbeitsmappe ist eins, Tabelle1 auch und
Klasse1 eben auch.

Um die Module eines Projekts per VBA zu bearbeiten, brauchts zweier
Sachen:
1. Ein Verweis auf die VBA Extensibilities Bibliothek und
2. Den Zugriff bei der Makrosicherheit.

steffenp

unread,
Apr 10, 2006, 8:26:52 AM4/10/06
to
ok ich werde mal etwas rumprobieren.
und bestimmt erst morgen wieder antworten...
erstma ein dickes dankeschön für die hilfe

steffenp

unread,
Apr 11, 2006, 4:46:08 AM4/11/06
to
hallo

ich denke ma das das Thema ist einen neuen Tread wert
und darum
http://groups.google.com/group/microsoft.public.de.excel/browse_frm/thread/3270b651af807d96/0d5e436e427ef1f0#0d5e436e427ef1f0
habe viel rumprobiert, bin aber nicht wirklich weiter gekommen.

THX für eure mühen


mfg
steffenp
win2k_sp4_-_office03_sp2


Antworten

0 new messages