Einzelne Zeilen von Excel zusammenfassen und Exportieren?
Hallo Miteinander,
ich hätte da folgendes Problem(?)
wie kann ich aus einer Zeile mehrere Spalten in eine Text Datei fassen und diese dann als *.bat abspeichern.
Bsp:
IP | Telefon | Protokoll | System
Ich habe eine KD Liste für FW darin enthalten sind alle Daten der Kunden dann die ISDN Nummer, das Protokoll, die IP des Rechners,
und welches System, und vieles mehr.
Davon bräuchte ich jetzt z.b. den Inhalt von A1, A8 und A12 ...
um nicht hunderte von *.bat Dateien von Hand anlegen zu müssen.
Ich benötige das ganze, um via html ein Programm zu starten, das bei jedem User auf der Festplatte abgelegt ist, das bedeutet ich habe im "Intranet" einen Link auf eine *.bat gesetzt die bat wird ausgeführt und öffnet in c:\programme\anwendung.exe und übergibt dann noch die Parameter.
"c:\programme\anwendung.exe [IP] [ISDN] [Protokoll]"
mit "file:///C:/...." kann ich ja leider nicht die Parameter übergeben, daher muss ich auf die *.bat zurückgreifen, aber um eben nicht meine erstellten Excellisten von hand alle einzeln anlegen zu müssen wollte ich mal nachfragen und freue mich über jeden TIPP
Grüße
IBASE
ich hätte da folgendes Problem(?)
wie kann ich aus einer Zeile mehrere Spalten in eine Text Datei fassen und diese dann als *.bat abspeichern.
Bsp:
IP | Telefon | Protokoll | System
Ich habe eine KD Liste für FW darin enthalten sind alle Daten der Kunden dann die ISDN Nummer, das Protokoll, die IP des Rechners,
und welches System, und vieles mehr.
Davon bräuchte ich jetzt z.b. den Inhalt von A1, A8 und A12 ...
um nicht hunderte von *.bat Dateien von Hand anlegen zu müssen.
Ich benötige das ganze, um via html ein Programm zu starten, das bei jedem User auf der Festplatte abgelegt ist, das bedeutet ich habe im "Intranet" einen Link auf eine *.bat gesetzt die bat wird ausgeführt und öffnet in c:\programme\anwendung.exe und übergibt dann noch die Parameter.
"c:\programme\anwendung.exe [IP] [ISDN] [Protokoll]"
mit "file:///C:/...." kann ich ja leider nicht die Parameter übergeben, daher muss ich auf die *.bat zurückgreifen, aber um eben nicht meine erstellten Excellisten von hand alle einzeln anlegen zu müssen wollte ich mal nachfragen und freue mich über jeden TIPP
Grüße
IBASE
Please also mark the comments that contributed to the solution of the article
Content-Key: 78238
Url: https://administrator.de/contentid/78238
Printed on: April 18, 2024 at 13:04 o'clock
6 Comments
Latest comment
Hallo ibase1 und willkommen im Forum!
Falls ich Deine Absicht richtig interpretiere, nämlich dass Du eine große Anzahl einzelner Batchdateien (je eine pro Datenzeile) erstellen willst, solltest Du noch eine wichtige Information nachreichen: Wie sollen die erstellen Dateien heißen?
Ansonsten kann ich mich nicht ganz mit "aus einer Zeile mehrere Spalten" und "den Inhalt von A1, A8 und A12" anfreunden - ich hätte eher angenommen, dass die Inhalte der Zellen A8, H8 und L8 in die Batchdatei geschrieben werden sollen.
Noch eine Frage zum Format: Dass die einzelnen Werte durch Leerzeichen getrennt werden sollen, setze ich voraus - ist es zusätzlich noch nötig, die Parameter zB in Anführungszeichen einzuschließen?
Und schließlich: Wo befinden sich die zu verarbeitenden Daten in der Tabelle (ab welcher Zeile, sollen alle Zeilen abgearbeitet werden, und wenn ja, woran ist zu erkennen, dass das Ende der Daten erreicht ist - zB wenn in A525 kein Wert mehr vorhanden ist, kann nach Zeile 524 die Vearbeitung beendet werden)?
Grüße
bastla
Falls ich Deine Absicht richtig interpretiere, nämlich dass Du eine große Anzahl einzelner Batchdateien (je eine pro Datenzeile) erstellen willst, solltest Du noch eine wichtige Information nachreichen: Wie sollen die erstellen Dateien heißen?
Ansonsten kann ich mich nicht ganz mit "aus einer Zeile mehrere Spalten" und "den Inhalt von A1, A8 und A12" anfreunden - ich hätte eher angenommen, dass die Inhalte der Zellen A8, H8 und L8 in die Batchdatei geschrieben werden sollen.
Noch eine Frage zum Format: Dass die einzelnen Werte durch Leerzeichen getrennt werden sollen, setze ich voraus - ist es zusätzlich noch nötig, die Parameter zB in Anführungszeichen einzuschließen?
Und schließlich: Wo befinden sich die zu verarbeitenden Daten in der Tabelle (ab welcher Zeile, sollen alle Zeilen abgearbeitet werden, und wenn ja, woran ist zu erkennen, dass das Ende der Daten erreicht ist - zB wenn in A525 kein Wert mehr vorhanden ist, kann nach Zeile 524 die Vearbeitung beendet werden)?
Grüße
bastla
Hallo ibase1!
Derartiges lässt sich natürlich am leichtesten mittels VBA erledigen. Dazu kannst Du mit einem Rechtsklick auf den Tabellennamen ("Tabelle1") im Blattregister und der Auswahl von "Code anzeigen" in den VBA-Editor wechseln und dort folgendes Programm in den großen Arbeitsbereich einfügen:
Nach den erforderlichen Anpassungen in den Zeilen bis "ASPALTEN = ..." einfach den Cursor in einer beliebigen Zeile zwischen "Sub" und "End Sub" platzieren und das grüne "Play"-Symbol in der Symbolleiste drücken.
Wenn erfolgreich, kannst Du den VBA-Editor (oder auch die Excel-Mappe) schließen - das Programm wird dabei mitgespeichert.
Eine Voraussetzung ist noch zu beachten - die Sicherheitsstufe für Makros (in der Tabelle "Extras / Makro / Sicherheit...") muss auf max "Mittel" gesetzt sein. Wenn Du diese Einstellung ändern musst, ist Excel zunächst zu schließen und neu zu öffnen, damit Du dann wie oben beschrieben vorgehen kannst.
Grüße
bastla
Derartiges lässt sich natürlich am leichtesten mittels VBA erledigen. Dazu kannst Du mit einem Rechtsklick auf den Tabellennamen ("Tabelle1") im Blattregister und der Auswahl von "Code anzeigen" in den VBA-Editor wechseln und dort folgendes Programm in den großen Arbeitsbereich einfügen:
Sub MakeBat()
Const ZIEL As String = "D:\Test" 'Zielordner für zu erstellende Dateien (ohne abschließenden "\")
Const DATEINAME As String = "10-116-1-" 'Fixer Namensbestandteil der zu erstellenden Dateien
Const PROG As String = "c:\programme\fwplugin\fwloader.exe" 'Fixer Bestandteil der Batchzeile
Const TABELLE As String = "Tabelle1" 'Zu exportierende Daten in "Tabelle1" ...
Const ABZEILE As Integer = 2 '... beginnen in Zeile 2 ...
Const BISZEILE As Integer = 255 '... reichen bis Zeile 255 ...
ASPALTEN = Array("A", "H", "L") '... und umfassen folgende Spalten (in angegebener Reihenfolge)
With Worksheets(TABELLE)
For iZeile = ABZEILE To BISZEILE
sZeile = PROG
For Each sSpalte In ASPALTEN
sZeile = sZeile & " " & .Cells(iZeile, sSpalte).Value
Next
'Ausgabedatei öffnen und Zeile schreiben
Set oDatei = CreateObject("Scripting.FileSystemObject").OpenTextFile( _
ZIEL & "\" & DATEINAME & CStr(iZeile - ABZEILE + 1) & ".bat", 2, True)
oDatei.WriteLine sZeile
oDatei.Close
Next
End With
MsgBox CStr(iZeile - ABZEILE) & " Dateien erstellt."
End Sub
Wenn erfolgreich, kannst Du den VBA-Editor (oder auch die Excel-Mappe) schließen - das Programm wird dabei mitgespeichert.
Eine Voraussetzung ist noch zu beachten - die Sicherheitsstufe für Makros (in der Tabelle "Extras / Makro / Sicherheit...") muss auf max "Mittel" gesetzt sein. Wenn Du diese Einstellung ändern musst, ist Excel zunächst zu schließen und neu zu öffnen, damit Du dann wie oben beschrieben vorgehen kannst.
Grüße
bastla
Hallo ibase1!
Ein bestimmtes Tutorial oder Buch kann ich Dir leider nicht empfehlen - ich suche meist nur nach Beispielen zu einzelnen Detailfragen (und finde solche oft bei http://www.herber.de unter Dienste/Online-Suche oder etwa bei http://www.office-loesung.de).
Grüße
bastla
kann man eigentlich die einzelne Befehle Irgendwo nachlesen ?!
Du meinst jetzt sicher nicht, Cursor auf Befehl stellen und F1 drücken? Ein bestimmtes Tutorial oder Buch kann ich Dir leider nicht empfehlen - ich suche meist nur nach Beispielen zu einzelnen Detailfragen (und finde solche oft bei http://www.herber.de unter Dienste/Online-Suche oder etwa bei http://www.office-loesung.de).
Grüße
bastla