Discussion:
Word Objekte in Excel Blätter gegen verschieben schützen
(zu alt für eine Antwort)
Hans Beierle
2005-02-17 16:09:50 UTC
Permalink
Hallo Gruppe!

Excel 2002

Ich habe hier "Formulare" auf Excel Basis erstellt. Innerhalb dieser
Blätter gibt es Eingabefelder, die ich bisher mit "zusammenführen und
zentrieren" über mehrere Zellen definiert habe. Also mit dem Zeichen
der Mauer (Zellen) mit den beiden Pfeilen.
Nun haben die Anwender das Problem, daß die Eingabe etwas ungewohnt
ist gegenüber einem Word Dokument. Es sind ziemliche Dau's, was ich
berücksichtigen möchte / muß, was sich jetzt in einem Funktionstest
gezeigt hat. Momentan ist es so, daß in den Feldern ein Return keinen
Zeilenumbruch verursacht sondern die Eingabe beendet.

Frage 1
Kann ich das irgendwie beeinflussen? Kann ich also das Feld anderst
definieren, so daß ein Return eben einen Zeilenumbruch ergibt und man
nicht zur nächsten Eingabe springt?

Frage 2
Wenn eine Eingabe abgeschlossen ist, momentan ja mit Return, kann ich
dann definieren wo der Cursor als nächstes automatisch erscheint?
Damit ich als z.B. festlegen kann, wo die nächste Eingabe getätigt
werden kann ohne es mit der Maus anklicken zu müssen?

Frage 3
Eine Möglichkeit die Eingabe zu erleichtern sehe ich darin, über
einfügen / Objekte / Word Dokument ein eigenes Word Dokument
einzubinden.
Ist diese Funktion für soetwas gedacht? Mir sieht das das eher danach
aus, als das man damit ein externes Dokument einbauen, bzw. verlinken
kann.
So geht es eigentlich hervorragend bis auf kleinere Probleme:
- Die Textfelder lassen sich, nachdem das Blatt mit "Schutz" gesperrt
wurde, bewegen. Lässt sich das ausschalten oder irgendwie
verhindern?
- Unter welchen Begriffen sind diese Textfelder denn in der Hilfe
verzeichnet? Ich finde da kaum was dazu, es wird immer nur von
Word-Dokumenten geredet...

Viele Grüße,

Hans
unknown
2005-02-17 16:56:39 UTC
Permalink
Hallo Hans,
zu 1)
Der Zeilenumbruch in einer Zelle wird mit der Tastenkombination
Alt+Return durchgeführt und kann nicht geändert werden.
Mögliche Alternative wäre das Einfügen von Textfeldern aus der
Steuerelement-Toolbox. Mit der Eigenschaft EnterKeyBehavior kann der
Zeilenumbruch mit der Returntaste durchgeführt werden.

zu 2)
Hier beisst sich etwas zu 1). Wie soll der Eingabeabschluss definiert
sein? Wenn diese Frage beantwortet ist lässt sich auch festlegen in
welcher Reihenfolge Eingaben gemacht werden sollen.

zu 3)
In Bezug auf den Vorschlag in 1) lassen sich die Textfelder aus der
Steuerelement-Toolbox nach dem Einschalten des Blattschutzes nicht
mehr bewegen.
Post by Hans Beierle
- Unter welchen Begriffen sind diese Textfelder denn in der Hilfe
verzeichnet? Ich finde da kaum was dazu, es wird immer nur von
Word-Dokumenten geredet...
Dies sind eingebettete Objekte. Ein eingebettetes Wordobjekt verhält
sich wie ein Dokument in Word mit all seinen Möglichkeiten.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Hans Beierle
2005-02-17 17:34:39 UTC
Permalink
Hallo Frank,

ja, die Fragen beissen sich, weil ich eben momentan mit beiden
Möglichkeiten herumprobiere.
Post by unknown
Der Zeilenumbruch in einer Zelle wird mit der Tastenkombination
Alt+Return durchgeführt und kann nicht geändert werden.
Das wusste ich auch nicht. Danke für den Hinweis.
Post by unknown
Mögliche Alternative wäre das Einfügen von Textfeldern aus der
Steuerelement-Toolbox. Mit der Eigenschaft EnterKeyBehavior kann der
Zeilenumbruch mit der Returntaste durchgeführt werden.
Ich habe eben mal ein solches Textfeld aus der Steuerelemente Leiste
eingefügt und den Schutz aufgehoben - der Anwender soll ja Text
eingeben können.
Wenn ich das Blatt nun schütze, kann ich zwar nichts eingeben aber
habe das gleiche Problem wie mit dem eingebetettem Word Dokument: Das
Textfeld läßt sich bewegen.

Was mache ich da falsch? Es soll so sein, daß das Feld an der Position
festklebt und man es trotzdem anklicken / -wählen kann um Text
reinschreiben zu können.

Wie auch immer:

Beim testen mit deinen Hinweisen fand ich eben etwas: In der Zeichnen
Leiste gibt es ebenfalls ein Textfeld. Dort kann ich "Sperren" und
"Text sperren" einzeln auswählen. Das sieht gut aus. Ich probiere
damit mal noch etwas herum aber ich denke das sollte helfen.

Was mich hier noch irritiert:
Man muß für die Eingabe in ein solches Textfeld es extra anklicken.
Bisher ist es ja so, daß nach Eingabe in einer Zelle man mit Return
abschließen kann und der Cursor dann in das nächste Eingabefeld
springt. Das neue Textfeld wird dabei nicht beachtet.
Und weil es sich nun wieder beißt: Ich will nur die größeren
Eingabefelder, wo also mehrere Sätze geschrieben werden, durch diese
Textfelder ersetzen.
Beispiel:
Die Angabe einer Kinderzahl wird durch eine Zelle abgedeckt.
Die Angabe eines Lebenslaufes wird durch ein textfeld abgedeckt.

Also, neue Frage zu dem neuen Textfeld aus der Zeichnen Leiste:

Frage 1:
Kann ich beeinflussen, daß es automatisch angesprungen wird, wenn
gerade eine Eingabe in einer Zelle gemacht wurde und man dort Return
drückt? (ohne VBA nach Möglichkeit)

Hans
unknown
2005-02-17 20:10:31 UTC
Permalink
Hallo Hans,
nö, nö,nö
da geht jetzt einiges durcheinander!
Post by Hans Beierle
Ich habe eben mal ein solches Textfeld aus der Steuerelemente Leiste
eingefügt und den Schutz aufgehoben - der Anwender soll ja Text
eingeben können.
Wenn ich das Blatt nun schütze, kann ich zwar nichts eingeben aber
habe das gleiche Problem wie mit dem eingebetettem Word Dokument: Das
Textfeld läßt sich bewegen.
Das Textfeld kann während des eingeschalteten Blattschutzes neuen Text
aufnehmen. Ein Verschieben ist nach dem Deaktivieren des Entwurfmodus
nicht möglich.
Post by Hans Beierle
...Es soll so sein, daß das Feld an der Position
festklebt und man es trotzdem anklicken / -wählen kann um Text
reinschreiben zu können.
Genau das ist dann der Fall! Probiere es bitte noch einmal aus.
Post by Hans Beierle
Kann ich beeinflussen, daß es automatisch angesprungen wird, wenn
gerade eine Eingabe in einer Zelle gemacht wurde und man dort Return
drückt? (ohne VBA nach Möglichkeit)
Ohne VBA keine Chance. Und es wird gegenüber dem Textfeld aus der
Steuerelement-Toolbox nicht besser.

Hier ein Makro, dass in die entsprechende
Steuerelement-Toolbox-Textbox springt, wenn die Zelle H14 ausgewählt
wurde:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$H$14" Then
TextBox1.Activate
End If
End Sub

Kopiere das Makro in das Codemodul des betreffenden Tabellenblattes.

Wenn du möchtest, schicke ich dir eine Beispielmappe zu.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Hans Beierle
2005-02-18 07:21:41 UTC
Permalink
Moin Frank!

Erst einmal: Vielen Dank für Deine Hinweise. Ich sitze an dem Problem
schon eine Weile und möchte die Geschichte endlich abschließen. Es
hängt gerade "nur" noch an diesen Textfeldern.
Post by unknown
da geht jetzt einiges durcheinander!
Da hast Du Recht. Ich bleibe jetzt einmal bei dem Textfeld der
Steuerelemente, möchte Dich ja nicht zu sehr "in Anspruch" nehmen.
Post by unknown
Das Textfeld kann während des eingeschalteten Blattschutzes neuen Text
aufnehmen. Ein Verschieben ist nach dem Deaktivieren des Entwurfmodus
nicht möglich.
Also da mache ich was falsch oder habe irgendwo eine falsche
Einstellung:

- Ich öffne die Steuerelementen Leiste per Ansicht / Symbolleiste / /
Steuerelemente-Toolbox
- Dort wähle ich "Textfeld" aus. Also das Zeichen wo "ab" drinnsteht.
- Ich ziehe ein Textfeld mit der Maus auf.
- Rechtsklick "Steuerelement formatieren"
- Schutz "gesperrt" --> damit es sich nicht verschieben läßt

So. Und wenn ich nun das Blatt schütze (Extras / Schutz / Blatt
schützen / "nicht gesperrte Zellen auswählen"

kann ich nicht mehr drauf zu greifen. Eigentlich leuchtet es mir ja
ein daß das Feld nun gesperrt ist. Du sagst jedoch ich sollte es nun
anklicken und was eingeben können. Wo ist mein Fehler? Geht es vlt.
nur mit dem Makro?

Mit dem Makro von Dir funktioniert es soweit, da ich bisher jedoch
komplett aif Makros verzichtet habe, würde ich das auch gerne
weiterhin machen. Ich hoffe also das es auch ohne geht und man das
Feld so perren kann das es fixiert ist und man es trotzdem zur Eingabe
anwählen kann.

Hans
Hans Beierle
2005-02-18 07:34:35 UTC
Permalink
Post by Hans Beierle
Also da mache ich was falsch oder habe irgendwo eine falsche
Ah, das war ja klar. Ich habe es eben selbst herausgefunden denke ich:

Wenn ich vor dem Schutu des Blattes den Entwurfmodus beende, kann man
das Feld auswählen und eine EIngabe vornehmen aber NICHt verschieben.
Das hattest Du ja auch geschrieben, ich hatte es "bloss" nicht
verstanden.

Nun ist aber wieder das Problem mit dem Zeilenumbruch:

Ein Return verursacht keinen Zeilenumbruch. Zudem bricht der Text auch
nicht um. D.h. es wird mir alles in eine Zeile des Textfeldes
geschrieben. Woran hängt denn das nun wieder...

Hans
unknown
2005-02-18 11:27:01 UTC
Permalink
Hallo Hans,
im Entwurfmodus Rechtsklick auf die Textbox, dann Eigenschaften
wählen. Im Eigenschaftenfenster kannst du das Verhalten der Textbox
definieren, z. B.:

MultiLine --> True
EnterKeyBehavior --> True
(WordWrap --> True)
(SelectionMargin --> False)

Markiere eine Eigenschaft, dann Taste F1 und du bekommst die
Online-Hilfe dazu.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Hans Beierle
2005-02-21 11:57:08 UTC
Permalink
Hi Frank!

Klasse, das funktioniert einwandfrei so. Langsam wird's! Bist aber
auch sehr geduldig, daß muß ich zugeben.

Eine Frage habe ich noch:

Wenn mehr Text eingetragen wird, wird das feld nach unten verschoben
bzw. der Text rutsch oben aus dem sichtbaren Bereich. An sich kein
Problem, beim Ausdruck wird das Textfeld aber dann automatisch
vergrößert und über andere Elemente drüber gedruckt.
Also sollte ich die Textmenge beschränken oder aktivieren können das
sich das Textfeld nicht von der Größe her anpasst.
In den Eigenschaften habe ich MaxLength entdeckt, was auch
funktioniert.
Da alle Felder unterschiedlich groß sind müsste ich aber für jedes
feld erst einmal ausprobieren wie viele zeichen reinpassen und das
dann individuell eingeben.

- Gibt es da nicht die Möglichkeit zu sagen das eine Anzahl Zeichen,
abhängig von der Textfeldgröße, eingegeben werden darf? ich es also
nicht für jedes Feld ausprobieren und dann händisch eintragen muss?

- Andere Möglichkeit: Das Textfeld bleibt in der Größe bestehen, auch
wenn mehr Text eingegeben wird, als das Textfeld groß ist. Dafür habe
ich nichts gefunden. "AutoSize" steht auf false, das kann es also
nichts ein.

Hans
Hans Beierle
2005-02-21 12:02:32 UTC
Permalink
Hans Beierle <***@yahoo.de> schrieb:

Nachtrag
Mir ist eben noch eingefallen:

Auch wenn ich z.B. 500 Zeichen definiere macht diese Größe nur Sinn
wenn direkt hintereinander gschrieben wird. Macht der Anwender mehr
Zeilenumbrüche, wird der Text wieder nach unten verschoben. Also macht
Post by Hans Beierle
- Andere Möglichkeit: Das Textfeld bleibt in der Größe bestehen, auch
wenn mehr Text eingegeben wird, als das Textfeld groß ist. Dafür habe
ich nichts gefunden. "AutoSize" steht auf false, das kann es also
nichts ein.
Wie gesagt das Problem, das bei einem Ausdruck das Textfeld so
vergrößert wird, daß der Rest des textes sichtbar wird. Das darf nicht
sein. Es darf nur das Textfeld in seiner definierten Größe ausgedruckt
werden, text der zuviel ist muß dann abgeschnitten werden.

Hans
unknown
2005-02-21 13:49:49 UTC
Permalink
Hallo Hans,
leider kann ich das von dir geschilderte Verhalten der Textbox bei mir
nicht nachvollziehen. Es wird bei mir nur gedruckt, was momentan in
der Textbox zu sehen ist, alles andere bleibt für den Ausdruck
unberücksichtigt.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Hans Beierle
2005-03-04 07:29:24 UTC
Permalink
Hallo Frank!

Verzeih die lange Pause.
Post by unknown
leider kann ich das von dir geschilderte Verhalten der Textbox bei mir
nicht nachvollziehen. Es wird bei mir nur gedruckt, was momentan in
der Textbox zu sehen ist, alles andere bleibt für den Ausdruck
unberücksichtigt.
Ich habe nochmals wegen diesem Problem getestet und kann es nicht
immer nachvollziehen. Ich habe ein neues Excel Sheet genommen und es
an meinen bestehenden Sheets probiert: Mal geht es und mal nicht.

Da mein Testeingabefeld am Seitenende liegt dachte ich das es vlt.
damit zusammenhängt und habe es gekürzt, also zum Seitenrand Abstand
gelassen aber auch das brachte nichts.
Die gute Nachricht ist, das es mit den gleichen Einstellungen oft
geht, ich muß also die Textfelder erstellen und füllen, dann
ausdrucken lasse und notfalls nachbessern.

Ich denke damit kann ich leben. Du hast mir sehr geholfen, ich danke
Dir vielmals. Falls ich auf weitere Probleme stosse die ich nicht
selbst lösen kann, werde ich mich wieder in der Gruppe melden.

Viele Grüße,

Hans

Loading...