Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1628to1632
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
Inhaltsverzeichnis

Liste mit Inputbox und Dialogfeld Ordnerauswahl

Liste mit Inputbox und Dialogfeld Ordnerauswahl
03.07.2018 20:55:34
Marco
Hallo in die Runde,
vielleicht könnt Ihr mir weiterhelfen.
Folgender Ablauf:
Button (Datei speichern) - Inputbox (Dateinamen eintragen) - Dialogfeld Ordnerauswahl ( Ordner auswählen, ggf. Ordner erstellen ) - Datei als Tabstopp-getrennt mit Dateiendung ".tsv" speichern.
  • 
    Sub Liste_speichern()
    Dim DateiName As String
    Dim AppShell As Object
    Dim BrowseDir As Variant
    Application.ScreenUpdating = False
    ActiveSheet.Copy
    DateiName = InputBox("Unter welchem Namen soll die Datei gespeichert werden?")
    Set AppShell = CreateObject("Shell.Application")
    Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
    On Error Resume Next
    pfad = BrowseDir.items().Item().Path
    If pfad = "" Then Exit Sub
    On Error GoTo 0
    ActiveWorkbook.SaveAs Filename:="Dateiname" & " " & Format(Now, "dd_mm_yy") & ".tsv",  _
    FileFormat:=xlText, CreateBackup:=False
    ActiveWorkbook.Close savechanges:=False
    Application.ScreenUpdating = True
    MsgBox "Datei wurde gespeichert !", vbibformation
    End Sub
    


  • Das Makro bringt keinen Fehler...doch speichern tut es auch nichts.
    Wo liegt der Fehler?
    Vielen Dank schon im Voraus für Eure Mühe.
    Gruß
    Marco

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Liste mit Inputbox und Dialogfeld Ordnerauswahl
    03.07.2018 22:03:49
    onur
    Das siehst du evtl, wenn du
    On Error Resume Next
    

    wegmachst.
    AW: Liste mit Inputbox und Dialogfeld Ordnerauswahl
    03.07.2018 22:25:51
    Daniel
    Hi
    warum nicht Ordner und Name mit der gleichen Funktion einlesen?
    Dateiname = Application.GetOpenFilename
    if Dateiname like "*.?" or Dateiname like "*.?" then
    Dateiname = Mid(Dateiname, InstrRev(Dateiname, ".") - 1)
    End if
    ActiveWorkbook.SaveAs Filename:=Dateiname & " " & Format(Now, "dd_mm_yy") & ".tsv",  _
    FileFormat:=xlText, CreateBackup:=False
    
    Gruß Daniel
    AW: Liste mit Inputbox und Dialogfeld Ordnerauswahl
    03.07.2018 23:03:16
    Marco
    Hallo Daniel,
    Funktioniert gut...allerdings musste ich noch etwas ändern...ich wollte nämlich speichern...nicht öffnen :-)...aber vielen Dank
    Allerdings macht er mir beim Speichern hinter dem Dateinamen einen Punkt den ich nicht wegbekomme...vielleicht fällt Euch noch was dazu ein.
    Hier der modifizierte Code:
  • 
    Sub Liste_speichern()
    Dim Dateiname As String
    Dateiname = Application.GetSaveAsFilename
    Application.ScreenUpdating = False
    ActiveSheet.Copy
    If Dateiname Like "*.?" Or Dateiname Like "*.?" Then
    Dateiname = Mid(Dateiname, InStrRev(Dateiname, " ") - 1)
    End If
    ActiveWorkbook.SaveAs Filename:=Dateiname & " " & Format(Now, "dd_mm_yy") & ".tsv", _
    FileFormat:=xlText, CreateBackup:=False
    ActiveWorkbook.Close savechanges:=False
    Application.ScreenUpdating = True
    MsgBox "Datei wurde gespeichert !", vbibformation
    End Sub
    

  • Anzeige
    AW: Liste mit Inputbox und Dialogfeld Ordnerauswahl
    03.07.2018 23:18:39
    Daniel
    Hi
    generell solltest du bei SaveAs den Dateinamen ohne die Dateierweiterung angeben, dh du musst den eingelesenen Dateinamen beim Punkt abschneiden. Dazu nimmt man die Funktion LEFT und ermittelt die Position des letzten Punktes mit INSTRREV.
    Die Dateierweiterung wird automatisch vom System passend zum gewählten Dateityp vergeben.
    Sollte dieser nicht passen, müsstest du die Datei nach dem speichern schließen und dann mit
    Name AlterDateiname As NeuerDateiname 
    

    umbenennen.
    Sub Liste_speichern()
    Dim Dateiname As String
    Dateiname = Application.GetSaveAsFilename
    Application.ScreenUpdating = False
    ActiveSheet.Copy
    If Dateiname Like "*.?" Or Dateiname Like "*.?" Then
    Dateiname = Left(Dateiname, InStrRev(Dateiname, " ") - 1)
    End If
    ActiveWorkbook.SaveAs Filename:=Dateiname & " " & Format(Now, "dd_mm_yy"), _
    FileFormat:=xlText, CreateBackup:=False
    ActiveWorkbook.Close savechanges:=False
    Name Dateiname & ".txt" AS Dateiname & ".tsv"
    Application.ScreenUpdating = True
    MsgBox "Datei wurde gespeichert !", vbinformation
    End Sub
    
    kleiner Tip: nimm als Datumsformat "yy_mm_dd"
    dann ist die Reihenfolge passender, wenn du im Explorer die Liste nach Dateinamen sortierst.
    Gruß Daniel
    Anzeige

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige