online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon DerNordBerliner vom 26.01.2020, 15:27 Options

Lösung

Feldbegrenzung bei geschützten Zellen

Hallo, hallöchen,

es ist Samstag und was macht man? Für die Firma Experimente, nunja, folgendes Problem versuche ich zu lösen:
Excel-Tabelle zum Ausfüllen mit geschützten Zellen zu bauen ist ja nun kein Problem. Nun habe ich aber auch Felder, in denen der Ausfüller Text eingeben muss und zwar von unbestimmter Kürze ABER mit bestimmter Länge!
Zellen zu verbinden kein Problem, Textfeldeinfügen auch kein Problem. Nur kann der Ausfüller in beiden Fällen so viel Text schreiben, das beim Ausdruck der Text, den er über die angezeigte Größe des Feldes geschrieben hat, nicht mehr mit ausgedruckt wird.
Wie kann ich also nun ein Feld in einer geschützten Tabelle anlegen, welches ich mit maximalen Einträgen beschränken kann?

Trotz allem einen schönen Samstag und vielen Dank im Voraus
Markus


Antwort schreiben

Antwort 1 von Beverly vom 26.01.2020, 16:02 OptionsLösung

Lösung
Hi Markus,

verwende eine TextBox aus der Steuerelement-Toolbox mit diesem Code

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Len(TextBox1) > 9 Then
        MsgBox "Nur 10 Zeichen möglich"
        TextBox1 = Left(TextBox1, 9)
    End If
End Sub


Bis später,
Karin

Antwort 2 von gast123 vom 26.01.2020, 16:11 Options

hi all

daten/gueltigkeit

gruss gast123

Antwort 3 von DerNordBerliner vom 26.01.2020, 16:22 Options

Hallöchen,

beide Antworten sind nicht schlecht, Karin, deine hilft noch besser, da schneller anzupassen.
Jetzt aber folgendes, bei 10 oder 30 Zeichen ist das kein Problem. Doch bei größerer Anzahl wird es mit dem Zählen des dummen Ausfüllers schwierig. Gibt es eine Formel, die Zeitgleich bei der Eingabe in einer Zelle die noch verbleibende Anzahl der Zeichen anzeichen kann?

Antwort 4 von Beverly vom 26.01.2020, 16:30 Options

Hi Markus,

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Len(TextBox1) < 10 Then Cells(1, 1) = "Es verbleiben noch " & 9 - Len(TextBox1)
End Sub


Bis später,
Karin

Antwort 5 von DerNordBerliner vom 26.01.2020, 16:55 Options

Hallo Karin,

Code leuchtet mir ein, doch wie bekomme ich den dazu, das er in auch angezeigt wird. Da hören meine Kenntnisse auf, leider.

Danke schon mal
Markus

Antwort 6 von Beverly vom 26.01.2020, 16:57 Options

Hi Markus,

wohin hast du den Code kopiert? Er gehört genau dort hin wo auch der andere sich befindet.

Bis später,
Karin

Antwort 7 von DerNordBerliner vom 26.01.2020, 17:01 Options

Habe ich ja auch gemacht, sie stehen beide untereinander. Ich verstehe nur nicht, wo die Anzeige des Textes "Es verbleiben noch ..." angezeigt werden soll.
Wie bekomme ich eine Zelle dazu, diesen Text anzuzeigen.

Antwort 8 von Beverly vom 26.01.2020, 17:04 Options

Hi Markus,

die Anzeige erfolgt in Zelle A1. Das ergibt sich aus diesem Codeteil

Cells(1, 1) -> Zelle(Zeile, Spalte)

Bis später,
Karin

Antwort 9 von DerNordBerliner vom 26.01.2020, 17:16 Options

Verstanden, demnach müßte der Code bei Ansicht in Zelle C451 lauten:
(451, 3) da steht aber nichts.

Weiterhin ist das Problem, das bei Tab oder Mausklick das Textfeld nicht zum Schreiben aktiviert wird. Klicke ich in der geschützten Tabelle auf das Textfeld, erscheint der Code. Nur mit der rechten Mousetaste kann der Ausfüller über Textfeld bearbeiten in das Feld kommen.

Antwort 10 von Beverly vom 26.01.2020, 17:23 Options

Hi Markus,

du musst entweder die Zelle entsperren, oder im Code den Blattschutz aufheben, den Eintrag tätigen und dann den Blattschutz wieder setzen.

Beis später,
Karin

Antwort 11 von DerNordBerliner vom 26.01.2020, 17:33 Options

Ich glaube ich drücke mich falsch aus.

Es soll doch in der geschützten Tabelle ein Feld existieren, in dem der Ausfüller ohne den Schutz aufheben zu können, Text von einer bestimmten Länge eingeben soll. Unter dem Feld, was auch immer für ein Feld, soll in einer Zelle erscheinen, "hey du Dösbattel, du hast nur noch x Zeichen zum Schreiben!"

Vielleicht können wir telefonieren?.

Antwort 12 von Beverly vom 26.01.2020, 17:41 Options

Hi Markus,

wenn du nur die Zelle - also C451, in welcher die Anzeige der noch verbleibenden Zeichen erfolgen soll, entsperrst, dann kann der Benutzer doch noch lange nicht den Rest des Tabellenblattes bearbeiten. Sobald er in dieser Zelle irgendetwas verändert, wird beim nächsten Klick in das Textfeld diese Änderung doch wieder überschrieben.

Die andere Möglichkeit, den Schutz mittels Code vorübergehend aufzuheben:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    ActiveSheet.Unprotect
    If Len(TextBox1) < 10 Then Cells(451, 3) = "Es verbleiben noch " & 9 - Len(TextBox1)
    ActiveSheet.Protect
End Sub

Bis später,
Karin

Antwort 13 von DerNordBerliner vom 26.01.2020, 18:15 Options

Liebe Karin,

ich habe dir mal mein Problem an deine Email geschickt.

Hoffentlich kannst du mir damit mehr helfen.

Danke
Markus

Antwort 14 von Beverly vom 26.01.2020, 19:43 Options

Hi Markus,

verwende ein Textfeld aus der Steuerelement-Toolbox, nicht aus der Zeichnen-Symbolleiste. Die Toolbox findest du nach einem Rechtsklick auf die Symbolleisten und musst sie einfach nur aktivieren.

Mache dann einen Rechtsklick auf das Element -> Eigenschaften und schreibe bei MultiLine den Wert "True" rein. Verwende als Code diesen
Private Sub TextBox1_GotFocus()
    ActiveSheet.Unprotect
    If Len(TextBox1) > 0 Then
        Cells(144, 3) = "Es verbleiben noch " & 499 - Len(TextBox1) & " Zeichen"
    Else
        Cells(144, 3) = "Es verbleiben noch 500 Zeichen"
    End If
    ActiveSheet.Protect
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Len(TextBox1) > 499 Then
        MsgBox "Nur 500 Zeichen möglich"
        TextBox1 = Left(TextBox1, 499)
    End If
End Sub

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    ActiveSheet.Unprotect
    If Len(TextBox1) > 0 Then
        Cells(144, 3) = "Es verbleiben noch " & 500 - Len(TextBox1) & " Zeichen"
    Else
        Cells(144, 3) = "Es verbleiben noch 500 Zeichen"
    End If
    ActiveSheet.Protect
End Sub


Deaktiviere dann in der Toolbox den Entwurfsmodus (Klick auf den Button mit einem grünen Dreieck, Lineal und Bleistift
Bis später,
Karin

Antwort 15 von DerNordBerliner vom 26.01.2020, 19:57 Options

Es funzt,

vielen und lieben Dank und noch ein schönes Wochenende.

Markus

Antwort 16 von Beverly vom 26.01.2020, 20:06 Options

Hi Markus,

noch etwas: vermeide nach Möglichkeit verknüpfte Zellen - sie machen nur Probleme, insbesondere wenn man mit VBA auf sie zugreifen muss. Da du keine Gitternetzlinien anzeigst, kannst du ja einen Rahmen um mehrere Zellen ziehen ohne Zwischenlinien und niemand wird es bemerken.

Dir ebenfalls noch ein schönes Wochenende.

Bis später,
Karin

Antwort 17 von DerNordBerliner vom 26.01.2020, 22:10 Options

Liebe Karin,

eine Frage noch zum Schluss:

Wie kann ich die Entertaste als Absatzmarke in diesen Feldern nutzen.

Gruß Markus

Antwort 18 von Beverly vom 27.01.2020, 15:31 Options

Hi Markus,

ändere den entsprechenden Code wie folgt

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then TextBox1 = TextBox1 & vbLf
    ActiveSheet.Unprotect
    If Len(TextBox1) > 0 Then
        Cells(144, 3) = "Es verbleiben noch " & 500 - Len(TextBox1) & " Zeichen"
    Else
        Cells(144, 3) = "Es verbleiben noch 500"
    End If
    ActiveSheet.Protect
End Sub


Bis später,
Karin

Antwort 19 von DerNordBerliner vom 27.01.2020, 18:16 Options

Hallo Karin,

natürlich funzt auch das. Somit recht herzlichen Dank für alles.

Lieben Gruß vom Markus

Antwort 20 von DerNordBerliner vom 02.02.2020, 15:51 Options

Hallo liebe Karin,

hast du eingentlich meine Mail erhalten?

Lieben Gruß vm Markus

Ähnliche Themen

Zellen mit textinhalt zusammenfassen???
Anlud  30.08.2007 - 103 Hits - 7 Antworten

Zellen nach gleichem Text überprüfen
Prain  04.10.2007 - 128 Hits - 9 Antworten

Sortierung trotz geschützter Zellen
SchnuffelBE  23.01.2008 - 39 Hits - 4 Antworten

schneller geschützte PDF Dateien öffnen
Admi-HZ  22.01.2008 - 26 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026