# Speichern ohne bestätigung / Variable für Auswahl des Verzeichnisses



## jerry0110 (15. Januar 2016)

Hi,

ich habe folgende Herausforderung:

1. möchte ich die Datei speichern, ohne das er nachfragt ob sie gespeichert werden soll oder überschrieben werden soll.
2. möchte ich gerne den bei dem Punkt (siehe Codeschnipsel) das ich in der Exel ein Datum angeben will (z.B. 01.01.2016) und der Code nimmt das als Variable und öffnet den Ordner mit dem richtigen Datum. 


```
sPath = "\\2015-11 Monatsabschluss\xyz\"
```



Das ist der gesamte Code


```
Private Sub CSVSeverins()
  Dim sFile As String, sPath As String, iFree As Integer
  Dim arrCSV, arrTmp, arrXLS(), i As Long, j As Integer, n As Long
  Dim zFile As String

  sPath = "\\2015-11 Monatsabschluss\xyz\"       
  sFile = Dir(sPath & "*.csv")
  zFile = "BWA xyz"
  Application.ScreenUpdating = False
 
  Do While Len(sFile)
 
    iFree = FreeFile
    Open sPath & sFile For Input As iFree
    arrCSV = Split(Input(LOF(iFree), iFree), vbCrLf)
    Close iFree
   
    For i = 0 To UBound(arrCSV)
      arrTmp = Split(arrCSV(i), ";")
      n = Application.Max(n, UBound(arrTmp))
    Next
   
    ReDim arrXLS(1 To UBound(arrCSV) + 1, 1 To n + 1)
    For i = 0 To UBound(arrCSV)
      arrTmp = Split(arrCSV(i), ";")
      For j = 0 To UBound(arrTmp)
        arrXLS(i + 1, j + 1) = arrTmp(j)
      Next
    Next
   
    With Workbooks.Add
      .Sheets(1).Cells(1, 1).Resize(UBound(arrXLS), UBound(arrXLS, 2)) = arrXLS
      .SaveAs sPath & Mid(zFile, 1, Len(sFile) - 4)
      Spaltenerstellen
      fillFields1
      .Close
    End With
   
    sFile = Dir
  Loop
 
End Sub
```


----------



## Yaslaw (15. Januar 2016)

Zum Datum im Ordner:

```
Dim myDate As Date
  myDate = #12/31/2016#

  sPath = "\\" & Format(myDate, "YYYY-MM") & " Monatsabschluss\xyz\"
```

Zum Speichern ohne Nachfrage. Verstehe ich richtig? Du speicherst es wieder als csv ab? Dann solltest du den Typ mitgeben

```
.SaveAs sPath & Mid(zFile, 1, Len(sFile) - 4), xlCSV
```
Um ganz ehrlich zu sein, ich verstehe nicht, was Mid(zFile, 1, Len(sFile) - 4) bewirken soll


----------



## jerry0110 (15. Januar 2016)

Yaslaw hat gesagt.:


> Zum Datum im Ordner:
> 
> ```
> Dim myDate As Date
> ...




Also die CSV wird in eine xlsx gespeichert.  Und speichern möchte ich ohne das die Nachricht kommt dass die Datei gespeichert oder überschrieben wird.

Zum oberen Teil sieht meine Lösung so aus:


```
Private Sub CSVodf()
  Dim sFile As String, sPath As String, iFree As Integer
  Dim arrCSV, arrTmp, arrXLS(), i As Long, j As Integer, n As Long
  Dim zFile As String
  Dim myDate As Date
  myDate = ThisWorkbook.Worksheets("Inhalt").Range("A4")

  sPath = "C:\Monatsabschlüsse " & Format(myDate, "YYYY") "\" & Format(myDate, "YYYY-MM") & " Monatsabschluss" & Format(myDate, "YYYY-MM") & " Monatsabschluss\xyz\"
  sFile = Dir(sPath & "*.csv")
  zFile = "BWA xyz"
  Application.ScreenUpdating = False
```

Es kommt aber bei sPath immer ein Syntaxfehler


----------



## Yaslaw (15. Januar 2016)

Es fehlt ein & nach dem Jahr.

Zum speichern im Excel ohne Meldung muss ich passen. Das bedeutet aber nicht, dass es nicht geht. In Excel-VBA bin ich nicht besonders versiert


----------



## jerry0110 (18. Januar 2016)

Leider findet er die Datei nicht wenn ich auf einen Pfad verweise. Wenn ich C:/.... nehme dann klappt es. Mache ich aber //Servername.... dann findet er den nicht obwohl der Pfad richtig ist.


```
Sub CSVxyz()
  Dim sFile As String, sPath As String, iFree As Integer
  Dim arrCSV, arrTmp, arrXLS(), i As Long, j As Integer, n As Long
  Dim zFile As String
  Dim myDate As Date
  myDate = ThisWorkbook.Worksheets("Inhalt").Range("A4")

  sPath = "\\servername\xxx\Allgemein\Beteiligungsgesellschaften\Monatsabschlüsse " & Format(myDate, "YYYY") & "\" & Format(myDate, "YYYY-MM") & " Monatsabschluss\xyz\"       'anpassen
  sFile = Dir(sPath & "*.csv")
  zFile = "BWA xyz"
  Application.ScreenUpdating = False
```

Das ist der Pfad:

\\servername\xxx\Allgemein\Beteiligungsgesellschaften\Monatsabschlüsse 2015\2015-11 Monatsabschluss\xyz

Wenn ich eine Abfrage starte mit If Dir(sPath) starte um die Datei zu suchen, dann kommt als Massage dass er die nicht findet.

Dazu ist zu sagen, dass in der Exceltabelle unter dem Sheet "Inhalt" in der Zelle A4 ein Datum steht (01.11.2015)


----------



## jerry0110 (18. Januar 2016)

Kommando zurück. Alles geht. 

Nur das Speichern nicht ohne Bestätigung. Vielleicht weiß da noch jemand einen Rat.


----------

