Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel VBA Buttton CMD-Befehl
#1
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
Antworten Top
#2
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.
________
Servus
Case
Antworten Top
#3
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
Antworten Top
#4
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
________
Servus
Case
Antworten Top
#5
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
Antworten Top
#6
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
________
Servus
Case
Antworten Top
#7
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
Antworten Top
#8
Hallo, 19 

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

Open-Anweisung...
________
Servus
Case
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste