Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeichenfolge zu lang

Zeichenfolge zu lang
30.06.2014 15:00:04
Knoof
Hallo,
Ich möchte ein Formularfeld in Word per UserForm befüllen.
Allerdings hab ich erfahren dass man nicht mehr als 255 Zeichen an Word übergeben kann.
Ebenfalls hab ich erfahren dass es dafür eine Lösung gibt, ich konnte Sie bisher aber noch nicht umsetzen.
Es wäre nett wenn es jemand schafft meinen Quelltext so zu erweitern dass es klappt.
Danke.
Sub cmddruck_Click()
'Funktion: Erzeugt für Einträge in angegebener Zeile Serienbriefdrucke, abgelegt als einzelne  _
Dateien im selben Ablageort wie Vorlagen-Datei
Dim ResultFile As String
Dim ErrorDesc As String
'Dim sbrief As String        'enthält Pfad der Serienbrief Vorlage
Dim WindowName As String    'wird zum Schließen von den geöffneten Quelldateien benötigt
Dim anrede As String, name As String, vorname As String
ResultFile = ActiveWindow.Caption           '=Dateiname der Auszahlungsliste
Application.ScreenUpdating = False
'    Inhalt = InputBox("Ab welcher Zeile sollen Serienbriefe (abwärts) erstellt werden? Bitte  _
geben Sie die Zeilennummer an.")
'     If Not IsNumeric(Inhalt) Or Inhalt = "" Then
'       ErrorDesc = "Abbruch: Bitte geben Sie die Zeilennummer ein!"
'       'GoTo ENDE
'     End If
'     rowindex = Inhalt
'rowindex auf markierte zeile setzen
'    rowindex = ActiveCell.Row                  'nur bei einer markierten zeile!!
'    rowindex = Selection.Rows.Address          'liest markierten BEREICH aus
'Prüfung, ob sbrief gefüllt, falls nicht wird "Set_LetterTemplate" ausgeführt
If sbrief = "" Then
Set_LetterTemplate
End If
'Schleife über markierte Zeilen
'Feldinhalte in Variablen einlesen
'anrede nname vname pinr vv anrede2 nname2 betrag monatjahr kinstitut kontonr blz
anrede = txtanrede
name = txtname
vorname = txtvorname
'/Schleife über markierte Zeilen
If LCase(anrede) = "Sehr geehrte" Then
anrede = "Frau"
Else
anrede = "Herr"
End If
On Error Resume Next
Set wdAnw = GetObject(, "Word.Application") 'Bestehende Word-Instanz suchen
Select Case Err.Number
Case 0 'OK
Case 429 'Es gibt soweit keine Word-Instanz
Err.Clear
Set wdAnw = CreateObject("Word.Application") 'Word-Instanz erzeugen
If Err.Number > 0 Then
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End If
Case Else 'Unerwarteter Fehler
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End Select
On Error GoTo 0
wdAnw.Visible = True 'Instanz sichtbar machen
wdAnw.WindowState = 0
'Je nach dem, ob das Dokument bereits geöffnet ist oder nicht wird verbunden
'bzw. geöffnet. Diese Differenzierung geschieht implizit.
On Error Resume Next
Set wdDok = wdAnw.Documents.Open(Filename:=sbrief)
If Err.Number > 0 Then 'Wenn Arbeitsmappe nicht existiert oder unerwarteter Fehler
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End If
On Error GoTo 0
'hier kommt das eigentliche Eintragen
wdAnw.ActiveDocument.Unprotect
With wdAnw.ActiveDocument.FormFields
.Item("anrede").Result = txtanrede
.Item("name").Result = txtname
.Item("vorname").Result = txtvorname
.Item("spanendes").Result = UserForm3.TextBox1.Value
End With
wdAnw.ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
BadOrHappyEnd Err.Number, Err.Description
'Dokument unter neuem Namen speichern - Word 97 doc format
Ersatzwort = Format(DateTime.Now, "yyyyMMdd_hh_mm_ss")
'wdAnw.ActiveDocument.SaveAs Filename:=sbrief & Ersatzwort & ".doc", _
'            FileFormat:=wdFormatDocument97
pfad = wdDok.Path
wdAnw.ActiveDocument.SaveAs Filename:=pfad & "/" & monatjahr & "_" & nname & "_" &  _
Ersatzwort & ".doc", _
FileFormat:=wdFormatDocument97
'Serienbrief Vorlage schliessen - ohne zu speichern
wdDok.Close SaveChanges:=wdDoNotSaveChanges
'Word App schliessen
Set wdDok = Nothing
wdAnw.Quit
Set wdAnw = Nothing
Application.ScreenUpdating = True
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeichenfolge in Excel: So vermeidest Du die Fehlermeldung "Die eingegebene Zeichenfolge ist zu lang"


Schritt-für-Schritt-Anleitung

Wenn Du in Excel eine Fußzeile oder Kopfzeile mit mehr als 255 Zeichen einfügen möchtest, erhältst Du möglicherweise die Fehlermeldung: „Die eingegebene Zeichenfolge ist zu lang. Reduziere die verwendete Zeichenanzahl“. Um dieses Problem zu umgehen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die Fußzeile oder Kopfzeile bearbeiten möchtest.
  2. Klicke auf "Seitenlayout" und wähle "Drucken" oder "Seite einrichten".
  3. Gehe zu "Fußzeile" oder "Kopfzeile" und klicke auf "Benutzerdefinierte Fußzeile" oder "Benutzerdefinierte Kopfzeile".
  4. Verkürze den Text in der Fußzeile oder Kopfzeile auf maximal 255 Zeichen. Teile längere Texte in mehrere Fußzeilen auf oder nutze separate Zellen zur Anzeige.
  5. Speichere die Änderungen und schließe das Dialogfeld.

Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die auftreten können, und wie Du sie beheben kannst:

  • Fehler: „Die eingegebene Zeichenfolge ist zu lang“ in der Fußzeile

    • Lösung: Reduziere den Text in der Fußzeile auf unter 255 Zeichen. Überlege, ob Du den Text auf mehrere Fußzeilen verteilen kannst.
  • Fehler bei der Verwendung von VBA zur Generierung von Fußzeilen

    • Lösung: Stelle sicher, dass die Zeichenanzahl nicht überschritten wird. Verwende ggf. die Left()-Funktion in VBA, um den Text zu kürzen:
      Dim footerText As String
      footerText = Left(txtFooter, 255) ' Kürzt den Text auf 255 Zeichen

Alternative Methoden

Wenn Du regelmäßig mit langen Texten in Fuß- und Kopfzeilen arbeitest, kannst Du folgende alternative Methoden in Betracht ziehen:

  • Verwende Kommentare oder Notizen: Füge Kommentare in die Zellen ein, die Du anstelle von Fußzeilen verwenden kannst, um längere Texte anzuzeigen.
  • Nutze Excel-Tabellen: Teile lange Texte in mehrere Zellen auf und verlinke sie in der Fußzeile oder Kopfzeile.

Praktische Beispiele

Hier sind einige praktische Beispiele, die Du verwenden kannst:

  • Beispiel für eine Fußzeile mit kurzer Zeichenfolge:

    Fußzeile: "Januar 2023 - Projektbericht"
  • Beispiel für mehrere Fußzeilen:

    Fußzeile 1: "Projektname: Jahresbericht"
    Fußzeile 2: "Erstellt von: Max Mustermann"

Tipps für Profis

  • Verwende Platzhalter: Wenn Du häufig ähnliche Fußzeilen benötigst, verwende Platzhalter in Deinen Vorlagen, um die Eingabe zu erleichtern.
  • Erstelle VBA-Makros: Automatisiere das Einfügen von Fußzeilen oder Kopfzeilen über VBA, wobei Du sicherstellst, dass die Zeichenanzahl stets berücksichtigt wird.
  • Regelmäßig überprüfen: Halte Deine Fußzeilen und Kopfzeilen aktuell, um sicherzustellen, dass sie die maximalen Zeichen nicht überschreiten.

FAQ: Häufige Fragen

1. Warum kann ich in Excel keine langen Texte in der Fußzeile verwenden?
In Excel ist die maximale Länge für Texte in Fuß- und Kopfzeilen auf 255 Zeichen beschränkt. Dies ist eine Einschränkung der Software.

2. Gibt es eine Möglichkeit, diese Beschränkung zu umgehen?
Du kannst den Text in mehrere Fußzeilen aufteilen oder alternative Methoden wie Kommentare verwenden, um längere Informationen anzuzeigen.

3. Wie kann ich sicherstellen, dass meine VBA-Programme die Zeichenbeschränkung einhalten?
Nutze die Len()-Funktion, um die Länge der Zeichenfolgen zu überprüfen, bevor Du sie in Fuß- oder Kopfzeilen einfügst, und kürze sie bei Bedarf.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige