Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1132to1136
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

Tabs nicht einheitlich

Tabs nicht einheitlich
Michael
Guten morgen,
hab folgendes Problem: Mein Code wandelt eine Excel-Datei in ein txt-Format um und macht beim abspeichern noch zusätzlich einen Namensvorschlag. Das Problem liegt darin, dass in der txt-Datei die einzelnen Spalten nicht direkt unter einander sind, man kann aus der txt. datei halt nich heraus lesen was zu welcher Überschrift gehört. Das sieht dann so aus:
Userbild
Der Code in VBA sieht so aus:

Sub test()
Dim Dein_Bereich As Range
Dim sZiel As String, Ausgabe As String
Dim F As Integer
Const strTrennzeichen As String = vbTab
Set Dein_Bereich = Sheets("upload_Kanal").Range("A3:L10")
Dateiname = Sheets("Tabelle1").Cells(5, 1)
sZiel = Application.GetSaveAsFilename(Initialfilename:=Dateiname, filefilter:="(*.xls), *.xls,   _
_
_
_
_
_
Text Files (*.txt), *.txt")
If sZiel  CStr(False) Then
With Application
For Each Dein_Bereich In Dein_Bereich.Rows
If .WorksheetFunction.CountIf(Dein_Bereich, vbTab)  vbTab Then
Ausgabe = Left$(Ausgabe, Len(Ausgabe) - 1)
F = FreeFile
Open sZiel For Output As #F
Print #F, Ausgabe
Close #F
Else
MsgBox "keine Daten vorhanden"
End If
End If
End Sub

Ich bin über jede Hilfe dankbar, der Sinn des ganzen ist es die txt-Datei später wieder in ein Programm einzulesen, das leider keine xls-dateien einlesen kann.
Vielen dank im voraus, schon einmal =)
Gruß Michael

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabs nicht einheitlich
28.01.2010 09:07:13
MichaV
Hallo,
hast Du den Code selbst geschrieben und willst die Lösung selber entwickeln? Dann schau Dir mal die Tab()- Funktion in VBA an. Ansonsten lade mal eine Bsp-Tabelle hoch und Du kriegst ne Lösung.
Gruss- Micha
AW: Tabs nicht einheitlich
28.01.2010 09:12:35
Michael
Hallo,
ja hab den code selbst geschrieben. Ich bekomm des aber leider nicht hin.
Hier mal die Beispiel-Tabelle.
https://www.herber.de/bbs/user/67573.xls
Gruß
Michael
ist es .. Tabs nicht einheitlich
28.01.2010 09:26:26
Mike
Hey Michael,
ist es denn überhaupt sinnvoll, dass man die Spaltenzuteilungen
in der TXT sieht? Die Logik als solches ist ja sichtbar.
Hauptsache das andere Programm kommt mit dem Input klar.
Gruss
Mike
Anzeige
AW: ist es .. Tabs nicht einheitlich
28.01.2010 09:31:27
Michael
Hey Mike,
ja es sollte schon erkennbar sein, auch in der txt-Datei.
Weißt du da ne Lösung?
Gruß Michael
AW: Tabs nicht einheitlich
28.01.2010 10:27:17
MichaV
Hallo,
versuch das mal:
Option Explicit
Sub test()
Dim i As Long, k As Long, x As Long, y As Long, Trennzeichen, Dateiname As String
Dim sZiel As String
Dim F As Integer
Trennzeichen = Array(0, 20, 40, 60, 70, 80, 90, 100) ' CStr(False) Then
y = Sheets("upload_Kanal").Range("A3").End(xlDown).Row 'musst Du ggf. an Deine Bedürfnisse  _
anpassen, ich gehe hier davon
'aus dass rechts und unter Deiner  _
Tabelle eine Leerspalte/Zeile ist
x = Sheets("upload_Kanal").Range("a3").End(xlToRight).Column
F = FreeFile
Open sZiel For Output As #F
For i = 3 To y
For k = 1 To x
Print #F, Sheets("upload_Kanal").Cells(i, k);       'hier wird der Wert geschrieben
If k 

Anzeige
mit Verbesserung
28.01.2010 13:35:11
MichaV
Hallo nochmal,
hier eine Variante mit automatischer Ermittlung der notwendigen Spaltenbreite.
Option Explicit
Sub test()
Dim i As Long, k As Long, x As Long, y As Long, b As Integer, s() As Integer, Dateiname As  _
String
Dim sZiel As String
Dim F As Integer
'Trennzeichen = Array(0, 20, 40, 60, 70, 80, 90, 100) ' CStr(False) Then
y = Sheets("upload_Kanal").Range("A3").End(xlDown).Row 'musst Du ggf. an Deine Bedürfnisse  _
anpassen, ich gehe hier davon
'aus dass rechts und unter Deiner  _
Tabelle eine Leerspalte/Zeile ist
x = Sheets("upload_Kanal").Range("a3").End(xlToRight).Column
'erforderliche Spaltenbreite für jede Spalte ermitteln
ReDim s(x)
For k = 1 To x
For i = 3 To y
If Len(Cells(i, k)) > s(k) Then s(k) = Len(Cells(i, k))
Next i
Next k
F = FreeFile
Open sZiel For Output As #F
For i = 3 To y
For k = 1 To x
b = b + s(k) + 1
Print #F, CStr(Sheets("upload_Kanal").Cells(i, k));       'hier wird der Wert  _
geschreiben
If k 

Eine Rückmeldung wäre übrigens super, gerade weils ja so dringend war...
Gruss- Micha
Anzeige
AW: mit Verbesserung
28.01.2010 14:11:41
Michael
Hey,
sorry für die späte Mitteilung.
Ist wirklich alles super, hatte vorher die Präsentation.
Funktioniert einwandfrei.
Hast mir wirklich den Allerwertesten gerettet =)
Danke nochmals.
Gruß Michael
Danke für die Rückmeldung
28.01.2010 14:23:10
MichaV
..na da freu ich mich für Dich.
Gruss aus Norwegen.
AW: kleine Anmerkung .. Tabs nicht einheitlich
28.01.2010 09:13:40
Michael
Sorry, ja ich weiß, brauch halt dringend ne Lösung,
muss des heute Mittag präsentieren. Sonst würde ich
des natürlich nicht machen.
Gruß Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige