Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Save As Dialog (*.bat ausführen) ?

Save As Dialog (*.bat ausführen) ?
18.07.2007 18:10:00
Selma
Hallo Leute,
was muss an diesem Code (siehe unten) verändert werden, damit "Speichern unter" Dialog angezeigt wird?
Unter Dateinamme soll in "Speichern unter" oder ähnliches Dialog diese Dateiname "excel.bat" stehen. Nach dem Speichern soll die "excel.bat" Datei ausgeführt werden.
Zur Zeit ist der Pfad c:\temp\ in Code fest verdrahtet.

Sub Batch_Copy()
Dim ff As Integer
Dim rng As Range
Dim tmp As String
Dim Zeile As Long, Spalte As Integer
If Selection.Areas.Count > 1 Then
MsgBox "Es muss ein zusammenhängender Bereich definiert sein!"
Exit Sub
End If
Set rng = Selection
ff = FreeFile
Open "c:\temp\excel.bat" For Output As #ff
For Spalte = rng(1).Column To rng(1).Column + rng.Columns.Count - 1
For Zeile = rng(1).Row To rng(1).Row + rng.Rows.Count - 1
With Cells(Zeile, Spalte)
If .Value  "" Then Print #1, .Value
End With
Next Zeile
Next Spalte
Close #1
Starte = Shell("c:\temp\excel.bat")
End Sub


Vielen Dank im Voraus...
Liebe Grüße
Selma

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Save As Dialog (*.bat ausführen) ?
18.07.2007 20:35:17
Wolli
Hallo Selma, in der VBA-Hilfe findest Du Informationen zur "GetSaveAsFilename-Methode". Diese gibt lediglich einen Dateinamen zurück, speichert aber selbst nicht. Mit dem erhaltenen Namen (String) verwendest Du dann die "SaveAs (Methode)", um die Datei tatsächlich zu speichern.
Gutes Gelingen, Gruß, Wolli

AW: Save As Dialog (*.bat ausführen) ?
18.07.2007 21:11:47
Selma
Hallo Wolli,
danke für deine Antwort, leider kenne ich mich mit VBA nicht gut aus.
Ich habe versucht dies einzubinden:
Dateiname = Application.GetSaveAsFilename(Dateiname, "Batch-Datei (*.bat), *.bat", 0, "Bitte Speicherort auswählen!")
leider ohne Erfolg.
LG
Selma

Anzeige
AW: Save As Dialog (*.bat ausführen) ?
18.07.2007 23:28:00
Ramses
Hallo
probier mal
Option Explicit

Sub Batch_Copy()
    Dim ff As Integer
    Dim expRange As Range, myC As Range
    Dim tmp As String
    Dim Zeile As Long, Spalte As Integer
    Dim saveFileName As String
    Dim startBat As Variant
    If Selection.Areas.Count > 1 Then
        MsgBox "Es muss ein zusammenhängender Bereich definiert sein!", vbCritical + vbOKOnly, "Fehler"
        Exit Sub
    End If
    If Selection.Columns.Count > 1 Then
        MsgBox "Es darf nur eine Spalte markiert sein!", vbCritical + vbOKOnly, "Fehler"
        Exit Sub
    End If
    Set expRange = Selection
    ff = FreeFile
    saveFileName = Application.GetSaveAsFilename("EXCEL.BAT", "Batchdateien (*.bat), *.bat", , "Name für Batchdatei", "Schliessen")
    If saveFileName = "FAlsch" Then
        MsgBox "Abbruch"
        Exit Sub
    End If
    If UCase(Right(saveFileName, 4)) <> ".BAT" Then
        saveFileName = saveFileName & ".bat"
    End If
    Open saveFileName For Output As #ff
    'Das ergibt keinen Sinn, weil der Bereich Spaltenweise abgerbeitet wird
    'd.h. die Spalte 2, die allenfalls weitere Anweisungen der Zeile enthält
    'wird ans Ende der Werte geschrieben, und dann ist es sinnlos
    'For Spalte = rng(1).Column To rng(1).Column + rng.Columns.Count - 1
    ' For Zeile = rng(1).Row To rng(1).Row + rng.Rows.Count - 1
    ' With Cells(Zeile, Spalte)
    ' If .Value <> "" Then Print #1, .Value
    ' End With
    ' Next Zeile
    'Next Spalte
    For Each myC In expRange
    If myC <> "" Then Print #1, myC
    Next
    Close #1
    'Speichern am gleichen Ort unter dem gleichen Namen als EXCEL Datei
    ActiveWorkbook.SaveAs Left(saveFileName, Len(saveFileName) - 4) & ".xls"
    startBat = Shell("c:\temp\excel.bat")
End Sub

Gruss Rainer

Anzeige
AW: Save As Dialog (*.bat ausführen) ?
20.07.2007 20:56:00
Selma
Hallo Rainer,
mit Google-Hilfe ;) habe ich das Problem so gelöst.

Sub Batch_Copy()
Dim ff As Integer
Dim rng As Range
Dim tmp As String
Dim Zeile As Long, Spalte As Integer
If Selection.Areas.Count > 1 Then
MsgBox "Es muss ein zusammenhängender Bereich definiert sein!"
Exit Sub
End If
Set rng = Selection
ff = FreeFile
savefilename = Application.GetSaveAsFilename("EXCEL.BAT", "Batchdateien (*.bat), *.bat", , " _
Name für Batchdatei", "Schliessen")
Open savefilename For Output As #ff
For Spalte = rng(1).Column To rng(1).Column + rng.Columns.Count - 1
For Zeile = rng(1).Row To rng(1).Row + rng.Rows.Count - 1
With Cells(Zeile, Spalte)
If .Value  "" Then Print #1, .Value
End With
Next Zeile
Next Spalte
Close #1
Starte = Shell(savefilename)
End Sub


LG
Selma

Anzeige
AW: Save As Dialog (*.bat ausführen) ?
20.07.2007 21:02:00
Ramses
Hallo
Alles klar,... es ergibt zwar weiterhin keinen Sinn aber bitte.
Google-Hilfe ?
Das ist ein grausiges zusammengebastel aus dem ersten Code von dir und einer Codezeile von mir.
Gruss Rainer

AW: Save As Dialog (*.bat ausführen) ?
20.07.2007 21:22:07
Selma
Hallo lieber Rainer,
sinn gibt es. Die Zellen sollen spaltenweise abgearbeitet. Da ich in erste Spalte die Formel =WENN(T164="";"";VERKETTEN("mkdir ";"""";B164;"\";T164;"""")) und in zweite, dritte, vierte... Spalte habe ich diese Formel(n)
=WENN(ODER($T164="";O164="");"";VERKETTEN("move ";"""";O164;"""";" ";"""";$B164;"\";$T164;""""))
Das heisst erstmal werden in der excel.bat Datei die Ergebnisse der erste markierte Spalte und dann alle weiteren Spalten geschrieben. Danach wird die BAT-Datei gestartet. Es werden neue Ordner angelegt und die Dateien werden danach in diesen Ordner verschoben. Klappt super.
Zu Google .... ich habe das Problem gehabt dein Code zu verstehen und wusste nicht genau was ich davon nehmen soll. Ich versuche es lieber selber was "zu basteln" oder im Internet zu suchen, bevor ich die Frage hier im Forum stelle.
Ein schönens Wochenende....
Liebe Grüße
Selma
Anzeige

95 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige