Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenexport funktioniert nicht richtig?

Datenexport funktioniert nicht richtig?
23.08.2019 16:47:01
Peter
Hallo,
ok das funktioniert. danke
Jetzt sollte er mir die Daten in Datentransfer als DAT Datei exportieren. Hier wandelt er mir immer bis alle 70 Zeilen um obwohl ich z.b. nur neun Zeilen mit Auftragsnummer und Bemerkung gefüllt habe.
Hier der Code:
ActiveWorkbook.Unprotect Password:="......"
Worksheets("Datentransfer").Visible = True
Worksheets("Datentransfer").Select
Range("A1").Select
Selection.PasteSpecial xlPasteValues
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strpfad As String
Dim strFile As String
Dim strTrennzeichen As String
strpfad = ActiveWorkbook.FullName
strpfad = Replace(strpfad, ".xltm", ".dat")
strFile = "A:\daten.dat"
strTrennzeichen = vbTab
Set Bereich = ActiveSheet.UsedRange
Open strFile For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
strTemp = strTemp & "" & CStr(Zelle.Text) & "" & strTrennzeichen
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Datenexport abgeschlossen!"
Dim InI As Integer
For InI = Sheets.Count To 1 Step -1
If Sheets(InI).Name "Wasser Färbung 254 nm" Then Sheets(InI).Visible = xlVeryHidden
Next InI
Range("B7").Select
Selection.ClearContents
Range("E2").Select
End Sub
Wo mache ich hier einen Fehler?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenexport funktioniert nicht richtig?
23.08.2019 17:33:14
Sigi
Hallo Peter,
nur eine Vermutung: Dein UsedRange (Set Bereich = ActiveSheet.UsedRange) enthält leere Inhalte (Zeilen).
Für Excel reicht es wenn diese Zeilen mal benutzt und formatiert wurden, dann werden sie als UsedRange erkannt.
Lass dir mal den UsedRange anzeigen:
Sub BereichMarkieren()
ActiveSheet.UsedRange.Select
End Sub
Dann die Markierung überprüfen. Du musst leere Zeilen richtig löschen, nicht nur Inhalte entfernen.
Grüße
Sigi
AW: Datenexport funktioniert nicht richtig?
23.08.2019 18:13:21
Peter
ja das ist mein Problem.
wie kann ich nach dem einfügen die leeren zeilen löschen lassen?
Anzeige
AW: Datenexport funktioniert nicht richtig?
23.08.2019 20:58:46
Werner
Hallo Peter,
Frage: Warum machst du einen neuen Beitrag auf? Du hättest den alten Beitrag auch auf offen setzen können.
Anmerkungen zu deinem Code:
1. Auf Select und Activate verzichten
2. die Deklaration von Variablen gehört in den Kopf des Makros und nicht irgendwo in den Code
3. warum deklarierst du diverse Variablen als Object - sind doch Range-Variablen
4. Deklarierst du die Variablen "Dim strTemp As String / Dim strpfad As String" und weist ihnen auch Werte zu, im weiteren Code verwendest du sie aber nicht.
Teste mal:
Public Sub aaa()
Dim Bereich As Range, Zeile As Range, Zelle As Range
Dim strFile As String, strTrennzeichen As String
Dim loLetzte As Long, InI As Integer
ActiveWorkbook.Unprotect Password:="......"
strFile = "A:\daten.dat"
strTrennzeichen = vbTab
With Worksheets("Datentransfer")
.Visible = True
.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
'Bereich bzgl. der Spalten und der Startzeite an deine Bedürfnisse anpassen
Set Bereich = .Range(.Cells(1, "A"), .Cells(loLetzte, "B"))
Open strFile For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
strTemp = strTemp & "" & CStr(Zelle.Text) & "" & strTrennzeichen
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
For InI = Sheets.Count To 1 Step -1
If Sheets(InI).Name  "Wasser Färbung 254 nm" Then
Sheets(InI).Visible = xlVeryHidden
Exit For
End If
Next InI
.Range("B7").ClearContents
.Range("E2").Select
End With
MsgBox "Datenexport abgeschlossen!"
Set Bereich = Nothing
End Sub
Gruß Werner
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige