Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Batch Datei erstellen und beschreiben aus excel tabelle

Forumthread: Batch Datei erstellen und beschreiben aus excel tabelle

Batch Datei erstellen und beschreiben aus excel tabelle
23.11.2023 12:20:02
Giuppy
Hallo,

ich möchte mehrere bat Datei mit vba in der Ordner C:\#KDFatture\MAIL_NEW\Batch erstellen
Die Daten sollen dinamisch aus Excel genommen werden.
Zuerst soll ein Bat Datei erstellen mit Name aus Excel Spalte E und den inhalt sollte für jede Datei angepasst werden

z.B.
Datei Name = SchoopCF.bat aus Spalte E
Inhalt

@@echo off && title %~n0 && color 70

for /f "delims=" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\schoopDat.txt) do xcopy "C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf" "C:\#KDFatture\MAIL_NEW\PDF\Schoop_PDF"



den Wert schoopDat.txt aus Excel Spalte A und der Wert Schoop_PDF soll aus die Tabelle Dat Spalte C

https://www.herber.de/bbs/user/164531.xlsx



Kann mir jemand helfen

Vielen Dank
Giuppy
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Batch Datei erstellen und beschreiben aus excel tabelle
23.11.2023 14:59:05
Uduuh
Hallo,
teste mal:
Sub BAT_erstellen()

Dim lRow As Long, S2 As String
Const strPath As String = " C:\#KDFatture\MAIL_NEW\Batch\"
Const txt1 As String = "@@echo off && title %~n0 && color 70"
Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf"" ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""
For lRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
S2 = Replace(txt2, "#.txt", Cells(lRow, 1))
S2 = Replace(S2, "#_PDF", Cells(lRow, 3))

Open strPath & Cells(lRow, 5) For Output As #1
Print #1, txt1
Print #1, S2
Close #1

Next lRow
End Sub

Gruß aus'm Pott
Udo
Anzeige
Batch Datei erstellen und beschreiben aus excel tabelle
24.11.2023 11:10:33
giuppy
Hallo Udo,
Vielen Dank
leider funktioniert nicht
bleibt hängen bei Open strPath & Cells(lRow, 5) For Output As #1
Was ist for Output As#1?

Es sollte zuerst ein bat datei erstellt und dann den text geschrieben sein

Const txt1 As String = "@@echo off && title %~n0 && color 70"
Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf"" ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""

Viele Grüße
Giuppy
Anzeige
AW: Batch Datei erstellen und beschreiben aus excel tabelle
24.11.2023 22:45:23
Uduuh
Hallo,
versuchs mal ohne das Leerzeichen vor C:\
Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\"

Gruß aus'm Pott
Udo
;
Anzeige

Infobox / Tutorial

Batch Datei erstellen und beschreiben aus Excel-Tabelle


Schritt-für-Schritt-Anleitung

Um eine Batch-Datei (bat-Datei) aus einer Excel-Tabelle zu erstellen, kannst Du den folgenden VBA-Code verwenden. Dieser Code generiert mehrere Batch-Dateien, basierend auf den Werten in Deiner Excel-Tabelle.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

  3. Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub BAT_erstellen()
        Dim lRow As Long, S2 As String
        Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\"
        Const txt1 As String = "@@echo off && title %~n0 && color 70"
        Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf""  ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""
    
        For lRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            S2 = Replace(txt2, "#.txt", Cells(lRow, 1))
            S2 = Replace(S2, "#_PDF", Cells(lRow, 3))
    
            Open strPath & Cells(lRow, 5) For Output As #1
                Print #1, txt1
                Print #1, S2
            Close #1
        Next lRow
    End Sub
  4. Passe den Code an, um die korrekten Pfade und Spalten zu verwenden, die Du in Deiner Tabelle hast.

  5. Führe das Skript aus: Drücke F5 oder gehe zu Ausführen > Sub/UserForm ausführen.

Dieser Code erstellt eine Batch-Datei für jede Zeile in Deiner Excel-Tabelle, indem er die Namen und Inhalte aus den angegebenen Spalten verwendet.


Häufige Fehler und Lösungen

  • Fehler: "Konnte Datei nicht öffnen"
    Überprüfe, ob der Pfad C:\#KDFatture\MAIL_NEW\Batch\ korrekt ist und die entsprechenden Berechtigungen zum Schreiben bestehen.

  • Fehler: Hängt bei Open strPath & Cells(lRow, 5)
    Achte darauf, dass kein Leerzeichen im Pfad ist. Ändere Const strPath As String = " C:\#KDFatture\MAIL_NEW\Batch\" zu Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\".


Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch manuell eine Batch-Datei erstellen:

  1. Öffne den Editor.
  2. Schreibe den Batch-Befehl.
  3. Speichere die Datei mit der Endung .bat.

Diese Methode ist jedoch weniger dynamisch, da Du die Werte manuell eingeben musst.


Praktische Beispiele

  1. Beispiel für eine Batch-Datei:

    @@echo off
    title Mein Batch-Skript
    color 70
    for /f "delims=" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\meineDatei.txt) do xcopy "C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf" "C:\#KDFatture\MAIL_NEW\PDF\Meine_PDF"

    Diese Batch-Datei kopiert PDF-Dateien basierend auf den Einträgen in meineDatei.txt.


Tipps für Profis

  • Nutze Kommentare in Deinen Batch-Dateien, um die Lesbarkeit zu verbessern. Füge REM Kommentar hinzu, um Notizen zu hinterlassen.
  • Verwende Variablen in Deinen Batch-Dateien, um die Flexibilität zu erhöhen.

FAQ: Häufige Fragen

1. Wie erstelle ich eine Batch-Datei aus Excel?
Du kannst eine Batch-Datei erstellen, indem Du VBA in Excel verwendest, um die erforderlichen Befehle dynamisch zu generieren.

2. Was ist der Unterschied zwischen einer Batch-Datei und einer VBA-Datei?
Eine Batch-Datei führt systembezogene Befehle aus, während VBA in Excel verwendet wird, um automatisierte Aufgaben innerhalb der Excel-Anwendung zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige