Textdatei mit griech. Zeichen einlesen in Zellen

Hallo,
ich muß in ein Tabellenblatt eine mehrzeilige Unicode Textdatei mit griechischen Buchstaben einlesen.
Das einlesen an sich funktioniert ich bekomme nur keine griechischen Buchstaben in den einzelnen Zellen angezeigt. Es wäre auch mal möglich, daß die Textdatei in kirillisch oder arabisch ist.
Soviel ich weiß kann eine Zelle nur 255 Zeichen. Liegt es daran?
Kann man das irgendwie umgehen?

Für Hilfe wäre ich sehr dankbar!
Hier der Code der mir den Text einlesen soll.

Sub przdTextLesen()
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False

'Tabellenüberschrift formatieren
With ActiveSheet
With .Cells(1, Startspalte)
.Value = "Sprache " & Startspalte - 1
.ColumnWidth = 45
End With
.Cells(2, Startspalte).Value = NameTextDatei
End With

'Startvariablen festlegen
StartZeile = 3
SchlTextSpalte = 1
posStart = 1

'Ermittlung freier Datenkanal
fDatenKanal = FreeFile
'Datenkanal schliessen, wenn offen
Close #fDatenKanal
'freier Datenkanal für ausgewählte Datei zum lesen öffnen
Open PfadMitDatei For Input As #fDatenKanal
'Schleife bis Ende der Texdatei erreicht ist
Do While Not EOF(fDatenKanal)
'Lesen der Textzeilen aus Textdatei
Line Input #fDatenKanal, sText
sText = fctFromUniCodeString(sText)
'Sonderzeichen entfernen
If InStr(1, sText, Chr(255) & Chr(254)) > 0 Then
sText = Replace(sText, Chr(255) & Chr(254), „“)
End If
'Starposition Trennzeichen ermittlen
posStart = InStr(1, sText, „|“)
'Stopposition ermitteln
posStop = Len(sText)
'ermittelte Texte in Variablen übernehmen
nText(1) = Left(sText, posStart - 1)
nText(2) = Right(sText, posStop - posStart)

'nach Schlüsseltext suchen und dann in entsprechende Zeile Text übernehmen
sTextZeile = fctZeigerSchluesseltext(ActiveSheet.Name, nText(1), StartZeile, maxZeile, 1)
'Schlüsseltext nicht gefunden
If sTextZeile > maxZeile Then GoTo NextZeile
On Error Resume Next
'Texte aus Variablen in Zellen übernehmen und Zeilenumbruch aktivieren
With ActiveSheet.Cells(sTextZeile, Startspalte)
.Value = nText(2)
.WrapText = True
End With

'Text Statusanzeige zuweisen
frmStatus.lbStatus.Caption = "Text zu " & Int(StartZeile * 100 / maxZeile) & "% eingelesen aus " & NameTextDatei & „.txt“
'Übergabe der Steuerung an Betriebssystem
DoEvents
StartZeile = StartZeile + 1
NextZeile:
Loop
'Datenkanal wieder schliessen
Close #fDatenKanal
End Sub

Public Function fctFromUniCodeString(Text As String) As String
Dim i As Integer ’ Zähler über die einzelnen Bytes des Unicode-Strings
fctFromUniCodeString = „“
For i = 1 To LenB(Text)
fctFromUniCodeString = Replace(fctFromUniCodeString & ChrW(AscB(MidB(Text, i, 1))), Chr(0), „“)
DoEvents
Next
End Function

Gruß
Rainer

Hallo Rainer,

ich muß in ein Tabellenblatt eine mehrzeilige Unicode
Textdatei mit griechischen Buchstaben einlesen.
Das einlesen an sich funktioniert ich bekomme nur keine
griechischen Buchstaben in den einzelnen Zellen angezeigt. Es
wäre auch mal möglich, daß die Textdatei in kirillisch oder
arabisch ist.
Soviel ich weiß kann eine Zelle nur 255 Zeichen. Liegt es
daran?

nein. Mit Chrw was du ja benutzt kannst du bis zu 65536 Zeichen in einer Zelle anzeigen lassen, nicht mit Excel Bordmitteln, aber mit Vba.

Je nachdem welche Schriftart du eingestellt hast, siehste dann ein Quadrat oder das Zeichen.

Kann man das irgendwie umgehen?

Windows/Excel kann nur das anzeigen was die gewählte Schriftart mitliefert, wenn bei Arial das Zeichen 5000 keinen Inhalt birgt wird halt ein Quadrat angezeigt.

Hier der Code der mir den Text einlesen soll.

Benutze bitte bei Codeposting den pre-tag, wird unterhalb des Eingabefensters erläutert.

Gruß
Reinhard

Hallo Reinhard,
Danke für Deine schnelle Antwort.
Im Excel habe ich Arial eingestellt, ich habe es auch mit Arial Unicode MS versucht, aber nichts hat geholfen, wobei beide die griechischen Schriftzeichen beinhalten.
Bei einfügen Symbol werden griechische Buchstaben eingefügt. Sollte doch dann auch beim einlesen funktionieren.
Wenn ich im VBA Editor im Debugging mode (F8) einzeln durchspringe liest er bei der Variablen sText als String dieselben Zeichen ein die auch nachher in der Zelle stehen, aber keine griechischen Buchstaben.
Geht hier noch was im VBA falsch?

Sorry mit dem Codeposting. Habe ich gar nicht beachtet. Werde mir beim nächsten mal mehr Mühe geben.
Bin noch nicht so ganz vertraut mit Foren.

Gruß
Rainer

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rainer,

daß du in Foren „neu“ bist macht doch nix, so haben wir alle mal angefangen.

Deshalb nimm bitte mal paar Tipps an.

Vba Code ist viel leichter zu lesen wenn du bei Schleifen o.ä. mit Einrückungen durch Leerzeichn arbeitest.
damit diese Einrückungen auch erhalten bleiben mußt du den pre-Tag benutzen.
Ich kenne zwar Excel-Foren wo aufgrund des Wortes „Sub“ automatisch die Einrückungen erhalten bleiben aber das ist selten, benütze den pre-Tag und du bist auf der sicheren Seite.

Sicher auch deshalb, ich kenne Ecelforen da komen täglich 100-200 Anfragen, ich, andere schauen uns die an, wenn der Code keine Einrückungen hat und länger ist, mache ich und die anderen diese Anfrage schlichtweg wieder zu.
Ich, andere, haben nicht immer Lust um manuell die Einrückungen vorzunehmen um dann erst mal den Code lesen zu können.

Ich bin da nicht so hart, aber andere, die sehr fit in Excel-Vba sind *weiß*, machen das, wenn du da kein Option Explicit über dem Code stehen hast, machen sie deine Anfrage auch gleich zu.

Also, wenn du Antworten haben willst, stelle im Vb-Editor bei Extras–Optionen „ariablendeklaration nötig“ o.ä. ein, dann hast du bei neuen Mappen in den Modulen immer das Option Explicit oben.

Wenn du dann deinen Code in einem beliebigen Forum zeigst, das mit dem pre-tag gemacht hast, kriegst du mehr Antworten als wenn du kein pre-Tag benutzt hast und kein Option Explicit.

kein Mensch hat großen Bock, deinen vielleicht 200zeiligen Code zu checken um dann nach ner halben Stunde festzustellen daß der Fehler daran lag daß du „oben“ im Code gesagt hast
Letz t e=7
und in zeile 156 steht:
If Letze =7 Then

Dies verhindert Option Explicit perfekt.

Jetzt zu deinem Problem.

Du kannst doch locker mit

Sub Test()
dim N
for n= 0 to 65535
cells(n+1,1)=chrw(n)
next n
end sub

dir in Spalte A eine Liste aller verfügbaren zeichen erstellen.
Durch Markierung von Spalte A und Auswahl einer anderen Schrift siehst du dann deren Zeichen, Arial, MSunicode,Wingdings, usw. ist da egal.

Jetzt gibt es in Arial, MS-Unicode oder irgendwo die griechischen Buchstaben.

Was du brauchst ist nur die Nummer des Zeichens.

Wenn Omega die Nummer 4711 hat, so mach das so:

sub tt()
Range(„A1“).value=chrw(4711)
end sub

Wie kommst du nun an die Nummern.
Gehe mal zu Word, dort dann auf Symbole einfügen oder wie das heißt.
Füge halt das Omega-Symbol ein.
Dann kopiere das mit Strg+C und füge ees mit Strg+v in eine Excelzelle ein, sagen wir mal A1.

sub tt()
msgbox ascw(Range(„A1“).value)
end sub

Dadurch kennst du die Nummer von Omega.
Wenn jetzt die Nummer von Omega 4711 wäre und das griechische Alphabet zusammenhaängend als Block in der Schriftart vorhanden ist, so ist es einfach andere griechische Buchstaben anzeigen zu lassen.

Falls Omega der 7te griechische Buchstabe ist und die Nummer 4711 hat, so müßte Alpha als erster Buchstabe die Nummer 4705 haben, sofern ich mich nicht verzählt habe.

Hilft dir das weiter? Wenn nicht muß ich mir dann doch mal deinen Code antun :smile:

Gruß
Reinhard

Hallo Reinhard,
Danke für Deine Info’s. Das mit Option Explicit hab ich drin, habe es nur nicht mitkopiert.

Mein Problem habe ich aber noch nicht gelöst. Die Lösungsvorschläge die Du mir gegeben hast helfen mir nicht wirklich weiter.
Ich muß vielleicht noch dazu sagen, daß ich nicht nur einzelne Buchstaben, sondern ganze Sätze in griechisch einlesen muß und das klappt nicht. Beim speichern der griechischen Sätze in Textdatei habe ich kein Problem. Das funktioniert.

Wenn Du mal so freundlich wärst und Dir meinen Code zu Gemüte führen könntest wäre ich sehr dankbar.
Ich habe das ganze Brimborium darum entfernt und nur den notwendigen Code in einem separaten Workbook erstellt.

Hier auch noch ein kleiner Auszug der griechischen Texte aus der Textdatei:
Επανεκκίνηση
Λάθος καταχώριση πληροφοριών διαλογής της θέσης σταθμού
Αντιμετώπιση βλαβών
Έλεγχος Ε/Α ενεργός
Βλάβη κατά τη φόρτιση των στοιχείων του μηχανήματος από τον σκληρό δίσκο
Φόρτωση / αποθήκευση των στοιχείων Retain είναι ενεργή
λλαξε η δομή στοιχείων για την επικοινωνία
Στοιχεία HMI δεν υιοθετήθηκαν
Επεξεργασία φόρμας ενεργή
Επεξεργασία φόρμας Time-out
Η επαναφορτιζόμενη μπαταρία του εξωτερικού USV πρέπει να ελεγχθεί!
Σφάλμα κατά την ανάγνωση των δεδομένων ρύθμισης παραμέτρων διάταξης επιτήρησης ασφαλείας
Διακοπή λειτουργίας
Δεν υπάρχει πεπιεσμένος αέρας ή κάτω από την ονομαστική τιμή
Υπερθέρμανση πίνακα ελέγχου
Ηλεκτρική δυσλειτουργία ασφαλειών
Ηλεκτρική δυσλειτουργία διακόπτη ασφαλείας κινητήρα
Ηλεκτρική δυσλειτουργία ασφαλειών
Πεπιεσμένος αέρας δεν μειώνεται
Διακοπή κινδύνου ενεργοποιημένη
Λειτουργία χωρίς φορτίο μηχανήματος τερματίστηκε
λάβη επιτήρησης εργασίας
μηχάνημα σταματά
Βηματική λειτουργία συνολικά ενεργοποιημένη
Βηματική λειτουργία συνολικά σε εξέλιξη
Bηματική λειτουργία μεμονωμένοι σταθμοί ενεργοποιημένη
Βηματική λειτουργία μεμονωμένοι σταθμοί σε εξέλιξη
μηχάνημα είναι off
μηχάνημα παράγει
μηχάνημα είναι έτοιμο
μηχάνημα έχει υποστεί διαδικασία αναφοράς
μηχάνημα βρίσκεται σε διαδικασία αναφοράς
μηχάνημα λειτουργεί σε Standby
Προειδοποίηση εκκίνησης
μηχάνημα ξεκινά
μηχάνημα σταμάτησε
Μηχάνημα σταματά
μηχάνημα σταματά για αυτόματη επανεκκίνηση
μηχάνημα έχει συγχρονιστεί
Μηχάνημα συγχρονισμένο

Option Explicit
Dim Startzeile As Long
Dim posStart As Integer, fDatenKanal As Integer
Dim sText$, Datei$

Sub przdTextLesen()
 Sheets("Tabelle1").Activate
 'Datei
 Datei = Application.GetOpenFilename("Textdateien (\*.txt), \*.txt")
 'Bildschirmaktualisierung aus
 Application.ScreenUpdating = False

 'Startvariablen festlegen
 Startzeile = 1

 'Ermittlung freier Datenkanal
 fDatenKanal = FreeFile
 'Datenkanal schliessen, wenn offen
 Close #fDatenKanal
 'freier Datenkanal für ausgewählte Datei zum lesen öffnen
 Open Datei For Input As #fDatenKanal
 'Schleife bis Ende der Texdatei erreicht ist
 Do While Not EOF(fDatenKanal)
 'Lesen der Textzeilen aus Textdatei
 Line Input #fDatenKanal, sText
 sText = Replace(sText, Chr(255) & Chr(254), "")
 sText = fctFromUniCodeString(sText)
 Cells(Startzeile, 1).Value = sText
 'Text Statusanzeige zuweisen
 Application.StatusBar = "Text aus Zeile " & Startzeile & " eingelesen"
 'Übergabe der Steuerung an Betriebssystem
 DoEvents
 Startzeile = Startzeile + 1
NextZeile:
 Loop
 'Datenkanal wieder schliessen
 Close #fDatenKanal

 'Bildschirmaktualisierung ein
 Application.ScreenUpdating = True
End Sub

Public Function fctFromUniCodeString(Text As String) As String
 Dim i As Integer ' Zähler über die einzelnen Bytes des Unicode-Strings
 fctFromUniCodeString = ""
 For i = 1 To LenB(Text)
 fctFromUniCodeString = Replace(fctFromUniCodeString & ChrW(AscB(MidB(Text, i, 1))), Chr(0), "")
 DoEvents
 Next
End Function

Sub przdTextSpeichern()
 Sheets("Tabelle1").Activate
 'Datei
 Datei = Application.GetOpenFilename("Textdateien (\*.txt), \*.txt")
 'Bildschirmaktualisierung aus
 Application.ScreenUpdating = False

 'Startzeilen festlegen
 Startzeile = 1
 'Ermittlung freier Datenkanal
 fDatenKanal = FreeFile
 'Datenkanal schliessen, wenn offen
 Close #fDatenKanal
 'freier Datenkanal für ausgewählte Datei zum lesen öffnen
 Open Datei For Output As #fDatenKanal
 Print #fDatenKanal, Chr(255); Chr(254);
 'Schleife bis erste leere Zelle, dann Schleifenende
 Do Until IsEmpty(Cells(Startzeile, 1))
 'Text Statusanzeige zuweisen
 Application.StatusBar = "Text von Zeile " & Startzeile & " gespeichert"
 'Übergabe der Steuerung an Betriebssystem
 DoEvents
 'Text aus Zelle in Variable übernehmen
 sText = Cells(Startzeile, 1).Value & Chr(13) & Chr(10)
 'Text in ausgewählte Textdatei schreiben
 Print #fDatenKanal, fctGetUniCodeString(sText);
 Startzeile = Startzeile + 1
 Loop
 'Datenkanal wieder schliessen
 Close #fDatenKanal
 'Bildschirmaktualisierung ein
 Application.ScreenUpdating = True
End Sub

Public Function fctGetUniCodeString(Text As String) As String
 Dim i As Integer ' Zähler über die einzelnen Bytes des Unicode-Strings
 fctGetUniCodeString = ""
 For i = 1 To LenB(Text)
 fctGetUniCodeString = fctGetUniCodeString & Chr(AscB(MidB(Text, i, 1)))
 DoEvents
 Next
End Function

Gruß
Rainer

griechisch Unicode aus Textdatei lesen
Hallo Rainer,

Ich muß vielleicht noch dazu sagen, daß ich nicht nur einzelne
Buchstaben, sondern ganze Sätze in griechisch einlesen muß und
das klappt nicht. Beim speichern der griechischen Sätze in
Textdatei habe ich kein Problem. Das funktioniert.

ich weiß aber nicht mit welchem Unicode du abgespeichet hast, schau mal hier:

http://www.activevb.de/rubriken/kolumne/kol_20/unico…

Ich habe die Codes probiert, griechisch wird da nix angezeigt:frowning:
Lade mal mit FAQ:2861 eine Test.txt hoch, so wie ich das gedeutet habe entscheiden die ersten paar Bytes was vorliegt.

Mit dem nachstehenden Code erscheinen immerhin die griechischen Buchstaben aus deinem Text, leider sind noch paar chinesische dabei :smile:
Ist das korrekt daß da auch zwei englische Wörter in deinem Text stehen?

Ich hatte deinen griech. Text hier rauskopiert und in Notepad eingefügt, dann abgepeichert im „Unicode“ Format.
Die entsandene Txt-Datei hat anfangs FF FE, also liegt wohl UTF-16 little Endian vor.

Option Explicit
'
Dim Startzeile As Long
Dim posStart As Integer, fDatenKanal As Integer
Dim sText$, Datei$
'
Sub przdTextLesen()
 Sheets("Tabelle1").Activate
 'Datei = Application.GetOpenFilename("Textdateien (\*.txt), \*.txt")
 Datei = "H:\kwgriechisch.txt"
 'Bildschirmaktualisierung aus
 Application.ScreenUpdating = False
 'Ermittlung freier Datenkanal
 fDatenKanal = FreeFile
 'freier Datenkanal für ausgewählte Datei zum lesen öffnen
 Open Datei For Input As #fDatenKanal
 'Schleife bis Ende der Texdatei erreicht ist
 Do While Not EOF(fDatenKanal)
 Startzeile = Startzeile + 1
 'Lesen der Textzeilen aus Textdatei
 Line Input #fDatenKanal, sText
 Cells(Startzeile, 1).Value = StrConv(sText, vbFromUnicode)
 'Text Statusanzeige zuweisen
 Application.StatusBar = "Text aus Zeile " & Startzeile & " eingelesen"
 'Übergabe der Steuerung an Betriebssystem
 DoEvents
 Loop
 'Datenkanal wieder schliessen
 Close #fDatenKanal
 'Bildschirmaktualisierung ein
 Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

Hallo Reinhard,
ich habe Dir mal die Originaldatei hochgeladen bei:

http://www.hostarea.de

Der Artikel

http://www.activevb.de/rubriken/kolumne/kol_20/unico…

ist sehr interessant und hat mir auch einiges klarer gemacht. Aber auf eine Lösung bin ich noch nicht gekommen.
Jetzt weiß ich auch, daß die Sonderzeichen „ÿþ“ auf eine UTF-16 Little Endian hinweisen.

Ist das korrekt daß da auch zwei englische Wörter in deinem
Text stehen?

Ja, der Text ist stellenweise sogar gemischt!

Das mit Deinem Code hat ja schon mal weitaus besser ausgesehen als meiner, aber mit chinesisch Mix ist nicht so doll.

Gruß
Rainer

Hallo Rainer,

ich habe Dir mal die Originaldatei hochgeladen bei:

http://www.hostarea.de

wenn du da nach Durchsuchen auf Hochladen/Upload klickst siehst du einen Link, den mußt du hier zeigen, dann aknn man auch die Datei runterladen.

http://www.activevb.de/rubriken/kolumne/kol_20/unico…

ist sehr interessant und hat mir auch einiges klarer gemacht.
Aber auf eine Lösung bin ich noch nicht gekommen.

Ich auch nicht :smile:

Jetzt weiß ich auch, daß die Sonderzeichen „ÿþ“ auf eine
UTF-16 Little Endian hinweisen.

ja.

Ist das korrekt daß da auch zwei englische Wörter in deinem
Text stehen?

Ja, der Text ist stellenweise sogar gemischt!

Irgendwie müßte das egal sein, oder vielleicht doch nicht *nixweiß*

Mein Bauch sagt, ist egal.

Das mit Deinem Code hat ja schon mal weitaus besser ausgesehen
als meiner, aber mit chinesisch Mix ist nicht so doll.

ich habe schon noch eine Idee wie ich Txt-datei ausles und das dann in Excel-Zellen darstelle.
Aber wenn ich da scheitere, würde es als workaround auch reichen alle chinesischen Zeichen rauszuwerfen?

Wenn die weg wären, wäre dann alles griechisch und auch das englische korrekt dargestellt?

probiers nochmal die/deine Txt-datei hochzuladen, grad wegen den verschiedenen Unicodes ist das sehr wichtig daß wir über die exakt gleiche Ausgangsdatei reden.

Gruß
Reinhard

Hallo Reinhard,
klar, so weißt Du ja nicht wo sich die Datei befindet. Aber ich bin lernfähig. Hier den Link: http://www.hostarea.de/server-12/Dezember-baae5696ba…

Ich denke auch, daß gemischte Schriftzeichen schnuppe sind.

Gruß
Rainer

Hallo Reinhard,
klar, so weißt Du ja nicht wo sich die Datei befindet. Aber
ich bin lernfähig. Hier den Link:
http://www.hostarea.de/server-12/Dezember-baae5696ba…
Ich denke auch, daß gemischte Schriftzeichen schnuppe sind.

Hallo Rainer,

warum das Rad neu erfinden, passe mal den Dateinamen an:

Sub Griechisch()
Workbooks.OpenText Filename:="H:\kwgriechisch.txt", Origin:=xlWindows, \_
 StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, \_
 ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False \_
 , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1))
End Sub

Gruß
Reinhard

Hallo Reinhard,

warum das Rad neu erfinden, passe mal den Dateinamen an:

Sub Griechisch()
Workbooks.OpenText Filename:=„H:\kwgriechisch.txt“,
Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True,
Semicolon:=False, Comma:=False _
, Space:=False, Other:=False,
FieldInfo:=Array(Array(1, 1), Array(2, 1))
End Sub

das habe ich mir über den Makrorecorder auch schon mal aufgenommen.
Ist nicht das was ich brauche.
Vielleicht noch eine Erklärung zur der notwendigen Funktion.
Die Texte die sich vor dem senkrechten Strich „|“ befinden sind die Schlüsseltexte. Diese lese ich zuerst in eine Spalte ein. Danach werden aus 3 unterschiedlichen Texdateien, die entsprechenden Texte nach dem senkrechten Strich, den Schlüsseltexten zugeordnet, in den darauf folgenden Spalten. Die Texte in den Dateien können auch durcheinander sein, solange ich den Schlüsseltext kenne kann ich den entsprechenden Text zuweisen.
Deshalb muß ich immer nur einen Teil der Textzeile lesen.

Was mir absolut nicht klar ist, wieso werden im VBA Code, in der Variablen „sText“ keine griechischen Zeichen eingelesen?

Option Explicit
'
Dim Startzeile As Long
Dim posStart As Integer, fDatenKanal As Integer
Dim sText$, Datei$
'
Sub przdTextLesen()
 Sheets("Tabelle1").Activate
 'Datei = Application.GetOpenFilename("Textdateien (\*.txt), \*.txt")
 Datei = "H:\kwgriechisch.txt"
 'Bildschirmaktualisierung aus
 Application.ScreenUpdating = False
 'Ermittlung freier Datenkanal
 fDatenKanal = FreeFile
 'freier Datenkanal für ausgewählte Datei zum lesen öffnen
 Open Datei For Input As #fDatenKanal
 'Schleife bis Ende der Texdatei erreicht ist
 Do While Not EOF(fDatenKanal)
 Startzeile = Startzeile + 1
 'Lesen der Textzeilen aus Textdatei
 Line Input #fDatenKanal, **sText**
 Cells(Startzeile, 1).Value = StrConv(sText, vbFromUnicode)
 'Text Statusanzeige zuweisen
 Application.StatusBar = "Text aus Zeile " & Startzeile & " eingelesen"
 'Übergabe der Steuerung an Betriebssystem
 DoEvents
 Loop
 'Datenkanal wieder schliessen
 Close #fDatenKanal
 'Bildschirmaktualisierung ein
 Application.ScreenUpdating = True
End Sub

Gruß
Rainer