Excel Textfeld mit mehr als 255 Zeichen kopieren
Hallo ich habe ein kleines Problem und zwar möchte ich von einem Tabellenblatt eine Werteversion erstellen. Dafür habe ich auch ein Makro geschrieben, allerdings ist mir dann aufgefallen, dass Excel nur max 255 Zeichen in einem Textfeld kopiert. Gibt es dafür eine Lösung in Excel und wenn ja wie kann ich das im Makro einbauen.
Vielen Dank für Eure Hilfe!
Gruß seb
Private Sub CommandButton1_Click()
Dim objCopysheet As Worksheet
On Error Resume Next
Set objCopysheet = Worksheets("Report HC")
On Error GoTo 0
If Not objCopysheet Is Nothing Then Exit Sub 'Blatt ist schon vorhanden, Ausstieg
With ActiveSheet
.Unprotect
.Copy After:=Sheets(1)
ActiveSheet.Name = "Report HC"
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
End With
With Worksheets("Report HC").Range("A1:BD204")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
Application.CutCopyMode = False
End Sub
Antwort schreiben
Antwort 1 von Saarbauer vom 06.10.2022, 18:21 Options
Hallo,
zumindest bis Excel 2003 ist bei 255 Schluss, da du aber keine Angaben zur Version machst, kann dir auch keiner genauere Auskünfte geben.
Vielleicht hilft eine bessere Problemdarstellung zu einer anderen Lösung oder idee
Gruß
Helmut
Antwort 2 von seb2010 vom 06.10.2022, 19:46 Options
Hallo Helmut,
danke erstmal für Deine Antwort. In der Tat es handelt sich um Excel 2003.
Ich habe das Problem, dass wenn in einer Zelle mehr als 255 Zeichen sind, Excel den Text nach den entsprechenden 255 Zeichen nicht mehr kopiert. Ich habe mir bisher geholfen, dass ich ein Textfeld eingefügt habe. Dann funktioniert es, aber es muss doch eine elegantere Lösung geben.
Gruss
Seb
Antwort 3 von Saarbauer vom 06.10.2022, 20:58 Options
Hallö,
da du keie genauen Angaben machst was du genau willst, wirdes keine Lösung geben.
Wir sind keine Hellseher und können somit keine Lösung erarbeiten.
Gruß
Helmut
Antwort 4 von Beverly vom 07.10.2022, 11:51 Options
Hi Seb,
du müsstest dann im Nachhinein in einer Schleife noch einmal über alle Zellen des kopierten Bereichs laufen und wenn der Inhalt eine Länge von 255 hat, diesen durch den Inhalt der Originalzelle ersetzen:
Sub Kopieren()
Dim rngZelle As Range
With ActiveSheet
.Unprotect
.Copy After:=Sheets(1)
ActiveSheet.Name = "Report HC"
With Worksheets("Report HC").Range("A1:BD204")
.Copy
.PasteSpecial xlValues
For Each rngZelle In .SpecialCells(xlCellTypeConstants)
If Len(rngZelle) = 255 Then rngZelle = Worksheets("Tabelle1").Range(rngZelle.Address)
Next rngZelle
End With
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
End With
End Sub
"Tabelle1" im Code ist die Ausgangstabelle, aus der das Duplikat erstellt wird - musst du an deine Bedingungen anpassen.
Bis später,
Karin
Antwort 5 von seb2010 vom 07.10.2022, 19:13 Options
hi karin,
vielen dank, ich werde die schleife mal morgen ausprobieren!
gruß
Seb
Antwort 6 von nighty vom 08.10.2022, 07:52 Options
hi all :-)
kann das problem nicht nachvollziehen,habe mit excel 2000, 600 zeichen in der zelle und liess sich auch mit 600 zeichen kopieren ?!
gruss nighty
Antwort 7 von Beverly vom 08.10.2022, 08:54 Options
Hi,
doch, das passiert auch in Excel 2000, denn das Problem liegt beim Kopieren des Tabellenblattes. Wenn du das Blatt von Hand kopierst, erscheint auch die Meldung, dass Zellen mehr als 255 Zeichen beinhalten und diese Zellen auf 255 Zeichen reduziert werden. Man kann das Ganze natürlich umgehen, indem man es so macht wie der folgende Hinweis in eben dieser Meldung: erst ein leeres Blatt erstellen und dann alle Zellen kopieren. Da offensichtlich auch die Formate mit kopiert werden sollen, kann man das in einem zweiten Schritt tun.
Erst ab Excel 2007 tritt dieses Problem der 255 Zeichen nicht mehr auf.
Bis später,
Karin