ibase1
Goto Top

Einzelne Zeilen von Excel zusammenfassen und Exportieren?

Hallo Miteinander,

ich hätte da folgendes Problem(?) face-smile

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 face-smile


Grüße
IBASE

Content-Key: 78238

Url: https://administrator.de/contentid/78238

Printed on: April 18, 2024 at 13:04 o'clock

Member: bastla
bastla Jan 15, 2008 at 20:17:54 (UTC)
Goto Top
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
Member: ibase1
ibase1 Jan 16, 2008 at 05:57:26 (UTC)
Goto Top
Hallo Guten Morgen face-smile

vielen Dank für die Rückantwort, du hast es ganz genau richtig verstanden je Zeile eine Batch das ist ja der Horror ...
ich hatte schon angefangen via Copy & Paste datei für Datei zu erstellen.

quasi habe ich angefangen die Batch Dateienen wie folgt zu benennen :

10-116-1-1.bat
10-116-1-2.bat
10-116-1-3.bat
..
..
..
10-116-1-255.bat

diese sind vorbereitet und liegen auch schon parat die verlinkung auf die jeweilige *.bat funktioniert.
nur ist der Inhalt noch gleich (bis auf ein paar wenige)

es reicht eine *.bat mit einem einzigen Eintrag :
c:\programme\fwplugin\fwloader.exe 10.115.1.1 0721123456 00002

ohne Anführungszeichen lediglich mit leerstellen jeweils.
Die Zeilen sind A8, H8 und L8 also exakt in der Reihenfolge.
und geht von zeile A2 bis runter in der Spalte A256.

Wäre Toll wenn du da eine Idee hast, vielleicht kannst du mir da "Starthilfe" leisten,
die Zellen und alles andere kann ich dann noch "umorgeln"

Grüße Ibase
Member: bastla
bastla Jan 16, 2008 at 06:55:06 (UTC)
Goto Top
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:
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
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
Member: ibase1
ibase1 Jan 16, 2008 at 13:54:39 (UTC)
Goto Top
!!! WOW !!! vielen Dank ! werde ich später gleich testen wenn es etwas ruhiger ist, hier.
schon einmal vorab 1000 Dank! Toll !
Melde mich später noch mal.
Member: ibase1
ibase1 Jan 16, 2008 at 14:48:52 (UTC)
Goto Top
so ich komme gerade aus dem Staunen nicht mehr herraus!

hach herlich ging das schnell anderst als Copy und Paste face-smile

"habe fertig"

bastal, vielen Dank!

kann man eigentlich die einzelne Befehle Irgendwo nachlesen ?!
vielleicht kann ich mir dann selbst mal so was "Stricken" bzw. das ein oder andere abändern,
z.b. als csv exportieren um den Mysql zu füttern nur mit anderen Spalten oder so was ... *duck*
Member: bastla
bastla Jan 16, 2008 at 15:59:09 (UTC)
Goto Top
Hallo ibase1!

kann man eigentlich die einzelne Befehle Irgendwo nachlesen ?!
Du meinst jetzt sicher nicht, Cursor auf Befehl stellen und F1 drücken? face-wink

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