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

VBA Code reset Variablen
Stevie
Hallo Zusammen,
der nachfolgende VBA-Code soll Druckfiles für einen Thermotransferdrucker erstellen. Selektierte Datensätze im Excel Sheet werden nacheinander in eine Template Datei (Test.txt) geschrieben und als Datei (Test2.txt) neu abgelegt.
Der Code funktioniert auch ganz gut, allerdings nur beim ersten gefundenen Datensatz. Im zweiten nachfolgenden Datensatz wird jeweils der vorausgegangene Datensatz mit in die Druckfile übergeben, beim dritten die ersten zwei Datensätze.
Ich gehe davon aus das der Arr(Icounter) unten geleert werden muss, es ist nur die Frage wie? Mit
Arr(iCounter) = resetsTxt klappt es jedenfalls nicht (resetsTxt = leere vorher definierte Variable)
Sub Suchen_X2()
Dim Zeile As Long, wks As Worksheet, iZaehler As Long, Nummer As String, Name As Variant,  _
Ort As Variant, Von As Long, TMS As Variant
Dim arr() As String
Dim iCounter As Integer
Dim sSource As String, sTarget As String, sTxtA As String, resetsTxt As String
Dim sTxtB As String, sTxt As String, sPath As String, sTxtC As String, sTxtD As String
Dim sTxtE As String, sTxtF As String, sTxtG As String, sTxtI As String, sTxtJ As String
Dim sTxtK As String, sTxtL As String
sPath = ThisWorkbook.Path & "\"
sSource = sPath & "test.txt"
sTarget = sPath & "test2.txt"
Set wks = Sheets("Daten")
With wks
.Select
'Spalte G (7) abarbeiten
For Zeile = 2 To .Cells(.Rows.Count, 7).End(xlUp).Row
If LCase(.Cells(Zeile, 7)) = "x" Then
'Anzahl Schleifen machen gemäß Wert in spalte E (5)
For iZaehler = 1 To .Cells(Zeile, 5)
.Cells(Zeile, 6) = iZaehler 'Zähler in Spalte F eintragen
Nummer = Cells(Zeile, 2).Value
Name = Cells(Zeile, 3).Value
Ort = Cells(Zeile, 4).Value
Von = Cells(Zeile, 5).Value
TMS = Cells(Zeile, 1).Value
'MsgBox ("Zeile: " & Zeile & "Paket: " & iZaehler & "von" & Von & "Auftrag: " &  _
Nummer & "Name: " & Name & "Ort: " & Ort)
sTxtA = "nnnnnnnn" 'Platzhalter Nummer
sTxtB = Nummer 'Nummer
sTxtC = "mmmmmmmm" 'Platzhalter Name
sTxtD = Name 'Name
sTxtE = "oooooooo" 'Platzhalter Ort
sTxtF = Ort 'Ort
sTxtG = "xxxxxxxx" ' Platzhalter IZaehler
sTxtH = iZaehler 'IZaehler
sTxtI = "vvvvvvvv" 'Platzhalter von
sTxtJ = Von 'von
sTxtK = "tttttttt" 'Platzhalter TMS
sTxtL = TMS 'TMS
Close
Open sSource For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
If InStr(sTxt, sTxtA) Then
sTxt = Replace(sTxt, sTxtA, sTxtB)
End If
If InStr(sTxt, sTxtC) Then
sTxt = Replace(sTxt, sTxtC, sTxtD)
End If
If InStr(sTxt, sTxtE) Then
sTxt = Replace(sTxt, sTxtE, sTxtF)
End If
If InStr(sTxt, sTxtG) Then
sTxt = Replace(sTxt, sTxtG, sTxtH)
End If
If InStr(sTxt, sTxtI) Then
sTxt = Replace(sTxt, sTxtI, sTxtJ)
End If
If InStr(sTxt, sTxtK) Then
sTxt = Replace(sTxt, sTxtK, sTxtL)
End If
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sTxt
Loop
Close
Open sTarget For Output As #1
For iCounter = 1 To UBound(arr)
Print #1, arr(iCounter)
Next iCounter
Close
'TaskID = Shell("c:\111.bat")
Shell "notepad " & sTarget, vbMaximizedFocus
'sTxt = resetsTxt
'arr(iCounter) = resetsTxt
'Makro Aktion Ende
Next
End If
Next
End With
MsgBox ("Alle ""X"" abgearbeitet")
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Erase Arr owT
04.05.2010 10:59:24
Rudi
AW: Erase Arr owT
04.05.2010 11:08:16
Stevie
Goldschatz :)
Ein kleines Manko habe ich nun noch und zwar rutscht in der Textfile mit zunehmenden Datensätzen der
ganze Textblock nach unten Im Prinzip gleich wie vorher, nur ohne vorherige Datensätze aber dafür mit Leerzeichen.
AW: Erase Arr owT
04.05.2010 11:10:05
xr8k2
Hallo Stevie,
Zusätzlich musst du auch noch deine Variable "icounter" auf den Startwert zurücksetzen.
Gruß,
xr8k2
AW: Erase Arr owT
04.05.2010 11:22:47
Stevie
Auch Du bekommst das Prädikat "Goldschatz".
Manchmal sieht man den Wald von lauter Bäumen nicht....
Vielen Dank.
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige