Clever-Excel-Forum

Normale Version: Excel VBA Buttton CMD-Befehl
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich würde gerne in meinem Excel-Dokumente eine Button einfügen, welcher mir eine CMD-Befehl mit dem Inhalt der Zeile A5 ausführt.
In der Zeile A5 steht =A1&A2&A3&A4

Zusammen gesetzt bedeutet es: echo Text1 Text2 >>test.txt

Viele Grüße
Thomas
Hallo, 19 

mit folgendem CMD-Befehl werden alle CSV-Dateien eines Verzeidchnisses in eine CSV-Datei zusammengeführt: 21 

Code:
Option Explicit
Public Sub Main()
    Dim dblTMP As Double
    dblTMP = Shell("cmd /c type E:\Alte_HDD\TEMP\*.csv >> C:\Temp\AlleCSV.csv")
End Sub

Du musst das jetzt nur noch in die richtige Syntax bringen - je nachdem, was in den einzelnen Zellen bei dir steht.
Hallo,

eigentlich möchte ich keine Dateien zusammenfügen, sondern die Zeile A5 an CMD übergeben/ausführen.
Das mit Shell("cmd habe ich schon gelesen, aber wie gebe ich die A5 dem Befehl mit.

Da ich keine andere Möglichkeit kenne, habe habe ich mir meinen Link in einer Zeile zusammen gesetzt.
Bisher kopiere ich mir immer die A5 aus Excel und füge die Zeile ins CMD ein.
Mit eine Button würde das dann automatisch und einfacher gehen.

A1=echo
A2=Text1
A3=Text2
A4=>>c:\test.txt

In der Zeile A5 steht =A1&A2&A3&A4
Die Zeile A5 sieht dann so aus: echo Text1 Text2 >>test.txt

Gruß Thomas
Hallo, 19 

folgende Vorraussetzungen: 21 
  • A1 = echo
  • A2 = Text1
  • A3 = Text2
  • A4 = >>C:\Temp\Text1_2.txt
  • A5 = =TEXTVERKETTEN(" ";WAHR;A1:A4)
Dann geht (getestet):

Code:
Option Explicit
Public Sub Main()
    Dim dblTMP As Double
    dblTMP = Shell("cmd /c " & [A5])
End Sub
Hallo,

der Code funktioniert soweit, nur muss ich die Befehlsschaltfläche immer mehrmals klicken, bis er
es wirklich in die Datei schreibt.  Beim ersten klick passiert nichts, er markierte mir eine Zelle
in der Tabelle und erst nach einem weiteren Klick klappt es.

Vielleicht sollte er direkt in eine Datei schreiben und nicht über meine Bastelformel mit Echo Smile
Das war eben die billige Lösung, wenn man sich mit VBA nicht auskennt Sad

So hätte ich es im Kopf Smile

1. Überprüfe ob Datei vorhanden
2. Wenn ja, Zeile A2,A3 anfügen
3. Wenn nein, erstelle test.txt
4. Meldung Alles ok
3. Fertig

Gruß Thomas
Hallo, 19 

dann so: 21 

Code:
Option Explicit
Public Sub Main()
    Open "C:\Temp\Alles.txt" For Append As #1 ' Anpassen!!!
    With ThisWorkbook.Worksheets("Tabelle2") ' Anpassen!!!
        Print #1, Join(WorksheetFunction.Transpose(.Range("A3:A4").Value), " ")
    End With
    Close #1
End Sub
Hallo,

SUPER!!!
Vielen Dank es funktioniert Smile

Ich habe noch eine blöde Frage, wird die Datei wenn Sie existiert in Excel (Speicher) geladen und dann A3:A4 dazu geschrieben?
Das würde bedeuten, wenn ich mit einem zweiten PC im selben Moment die Datei schreibe, ich die vorhandenen Daten überschreibe?
Weil ich habe doch in diesem Moment eigentlich nicht den aktuellen Stand?
Wie das der Echo-Befehl macht kann ich nicht sagen...

Gruß Thomas
Hallo, 19 

schau dir in dem Zusammenhang mal folgendes (insbesondere die Parameter - auch die optionalen) an: 21

Open-Anweisung...