Live-Forum - Die aktuellen Beiträge
Datum
Titel
06.12.2023 11:41:57
06.12.2023 10:11:06
Anzeige
Anzeige
HERBERS
Excel-Forum
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


Hallo,
ich bin ein VBA Neuling und der Makroaufzeichner bringt mich nicht weiter, da dieser immer selectiert und aktiviert.
Ich brauche ein etwas allgemeineren Code.
Ok was ich habe sind folgende Inputdaten:
.............A......B.........C.............D
1
2............


Ich habe ein Promblem. Und zwar habe ich ein Formular erstellt indem es eine Liste gibt. Ich möchte nun den jeweils ausgesuchten Lieferanten in eine andere Zelle kopieren. Dies wäre kein Problem, wenn es immer die gleich Zelle wäre aber die Zelle unter der A16 Zelle ändert sich ja nach aus...

hallo zusammen
in der recherche habe ich diesen code gefunden. da ich jedoch alle zeilen bei welchen in der zelle der spalte h ein "x" steht in ein anderes tabellenblatt kopieren möchte muss ich den code anpassen. nun weiss ich leider nicht was ich verändern muss. wäre super, wenn mir das j...

Hallo VBAler,
ich möchte in einer Tabelle in der Spalte A einen Wert bzw. einen Text suchen, wenn der Wert gefunden wird, soll die komplette Zeile gelöscht werden. Wird der Wert nicht gefunden, soll eine MsgBox erscheinen. Dann brauche ich den Code nochmal, in dem allerdings nicht die Zeile...

Liebe Profis,
ich habe die Ergebnisse einer Befragung in ein Excel-Sheet eingegeben, jeder Befragte in ein Registerblatt. Nun möchte ich die Antworten der Befragten, die in Textfeldern (immer in den selben, zB E145 stehen) gesammelt in eine neue Tabelle bringen.
Ziel ist es, die Antwort...

Nochmal meine Bitte um Hilfe - ich komm nicht weiter:
Wie kann ich - automatisiert, da viele Registerblätter - die Textinhalte einer bestimmten Zelle, die in jedem Registerblatt gleich ist - in eine neue Tabelle untereinander kopieren.
Vielen Dank nochmals
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige