Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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

VBA Zellen prüfen, txt kopieren, einfügen in txt

VBA Zellen prüfen, txt kopieren, einfügen in txt
06.11.2008 09:56:19
Stevie
Hallo Zusammen,
da ich kaum Erfahrung im Bereich VBA habe hätte ich gerne mal folgendes Problem :)
Ich habe folgenden Code der Variablen in einer Textdatei ersetzt, eine neue Datei speichert und die File anschleißend mittels Batchrutine an einen Drucker schickt.
Hier der bisherige Code:

Sub Schaltfläche3_BeiKlick()
Dim arr() As String
Dim iCounter As Integer
Dim sSource As String, sTarget As String
Dim sPath As String
Dim arrText, i As Integer
sPath = ThisWorkbook.Path & "\"
sSource = sPath & Range("B3").Value
sTarget = sPath & Range("B4").Value
arrText = Range("A8:B22")
Open sSource For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
For i = LBound(arrText) To UBound(arrText)
sTxt = Replace(sTxt, arrText(i, 1), arrText(i, 2))
Next i
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sTxt
Loop
Close 1
Open sTarget For Output As #1
For iCounter = 1 To UBound(arr)
Print #1, arr(iCounter)
Next iCounter
Close 1
TaskID = Shell("c:\batch.bat")
'On Error GoTo ERRORHANDLER
'Shell "notepad " & sTarget, vbMaximizedFocus
Exit Sub
End Sub


Nun soll aber in die Druckfile nicht nur Text sondern auch eine Grafik. Die Grafiken unterscheiden sich, je nach dem welcher Wert in Zelle B11 steht. Als Beispiel: Inhalt in Zelle B11 = abc Nun würde ich in das Verzeichnis C:\Profiles eine Textdatei mit dem Name "abc.txt" bereitstellen.
Der Inhalt dieser Datei soll die Variable "gggggggg" in der ursprünglichen Datei (siehe Code oben) suchen und durch den Inhalt der Textdatei abc.txt ersetzen.
Zu besseren Vorstellung:
Auszug aus der Template Datei:
// TEXT (1/100 mm)
AM[16]3000;8000;0;4;0;1;350;350;0
BM[16]hhhhhhhh
// TEXT (1/100 mm)
AM[17]3750;8000;0;4;0;1;350;350;0
BM[17]aaaaaaaa
// TEXT (1/100 mm)
AM[18]4500;8000;0;4;0;1;350;350;0
BM[18]pppppppp
gggggggg
Nach dem aufruf des Code oben sieht die nun so aus:
// TEXT (1/100 mm)
AM[16]3000;8000;0;4;0;1;350;350;0
BM[16]Nordisch
// TEXT (1/100 mm)
AM[17]3750;8000;0;4;0;1;350;350;0
BM[17]200 x 200 mm
// TEXT (1/100 mm)
AM[18]4500;8000;0;4;0;1;350;350;0
BM[18]abc
gggggggg
Jetzt soll aber für gggggggg der Inhalt aus der Datei abc.txt eingefügt werden damit das ganze dann so aussieht:
// TEXT (1/100 mm)
AM[16]3000;8000;0;4;0;1;350;350;0
BM[16]Nordisch
// TEXT (1/100 mm)
AM[17]3750;8000;0;4;0;1;350;350;0
BM[17]200 x 200 mm
// TEXT (1/100 mm)
AM[18]4500;8000;0;4;0;1;350;350;0
BM[18]abc
D0247152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0246152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0245152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0244152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿü ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0243152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿü ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0242152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿü ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0241152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿü ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0240152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0239152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
D0238152088 ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÀ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
Hoffe hier kann mir jemand helfen, hab null plan wie ich das oben in den Code rein krieg.
Danke schon mal
Gruß Stevie

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellen prüfen, txt kopieren, einfügen in txt
06.11.2008 16:12:00
fcs
Hallo Stevie,
das Problem hast du ja schon :-)
Mein Vorschlag (ungetestet):
Während des schreibens in die Target-Datei wird der Inhalt der Array-Variablen geprüft.
Ist dieser gleich "gggggggg" wird statt dessen der Inhalt aus der Bild-Datei abgerufen und in die Datei geschrieben. Evtl. gibt es auch die Möglichkeit den Inhalt der Bilddatei in einem Schritt auszulesen und zu schreiben, kenne ich aber nicht, deshalb zeilenweise Übernahme der Daten.
Gruß
Franz

"Sub Schaltfläche3_BeiKlick()
Dim arr() As String
Dim iCounter As Integer
Dim sSource As String, sTarget As String
Dim sPath As String
Dim arrText, i As Integer, TaskID
Dim intFF As Integer, sPicture As String, sTxt As String
Const sPicturePath As String = "C:\Profiles\" 'Pfad Bilddateien
sPath = ThisWorkbook.Path & "\"
sSource = sPath & Range("B3").Value
sTarget = sPath & Range("B4").Value
sPicture = sPicturePath & Range("B11") & ".txt" 'Name Bilddatei
arrText = Range("A8:B22")
Open sSource For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
For i = LBound(arrText) To UBound(arrText)
sTxt = Replace(sTxt, arrText(i, 1), arrText(i, 2))
Next i
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sTxt
Loop
Close 1
Open sTarget For Output As #1
For iCounter = 1 To UBound(arr)
If arr(iCounter) = "gggggggg" Then
'Text Bilddatei-Daten einfügen
intFF = FreeFile()
Open sPicture For Input As #intFF
Do Until EOF(intFF)
Line Input #intFF, sTxt
Print #1, sTxt
Loop
Close intFF
Else
Print #1, arr(iCounter)
End If
Next iCounter
Close 1
TaskID = Shell("c:\batch.bat")
'On Error GoTo ERRORHANDLER
'Shell "notepad " & sTarget, vbMaximizedFocus
Exit Sub
End Sub


Anzeige
AW: VBA Zellen prüfen, txt kopieren, einfügen in txt
06.11.2008 17:27:00
Stevie
Hi Franz,
super Klasse genau das war die Lösung nach der ich gesucht hatte. *verneig*
Vielen Dank nochmal.
Gruß Stevie

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige