Office: Makro soll zur Eingabe des Dateinamens auffordern

Helfe beim Thema Makro soll zur Eingabe des Dateinamens auffordern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bin neu in diesem Forum und freue mich darauf, die Hilfe in Anspruch nehmen zu können. Meine Frage: Ich bekomme soweit hin,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von muel180, 23. September 2009.

  1. muel180 Neuer User

    Makro soll zur Eingabe des Dateinamens auffordern


    Hallo zusammen,
    ich bin neu in diesem Forum und freue mich darauf, die Hilfe in Anspruch nehmen zu können.

    Meine Frage:

    Ich bekomme soweit hin, ein Makro zu stricken, welches eine Datei unter speichert. Allerdings immer unter gleichem Namen. Besser wäre, wenn das Makro mich auffordern würde, einen neuen Dateinamen zu vergeben. Dieser soll immer das aktuelle Datum in der Form JJJJMMTT sein. Optimal wäre, wenn der Name (mit Datumsinhalt) automatisch vergeben wird. Die Form wäre nicht so wichtig. Geht das? Und wie sieht das Makro dann aus?
    Vielen Dank bereits jetzt.

    Gruß
    Albert
     
  2. miriki Erfahrener User
    Hast Du schon mal mit Alt-F11 in den VBA-Editor gewechselt und Dir das Makro angesehen, das für das Speichern zuständig ist?

    Irgendwo dort müßte eine Zeile mit dem ungefähren Inhalt
    Code:
    thisworkbook.save
    stehen. vor dem .save könnte auch etwas anderes stehen (z.B. activeworkbook) und ggf. sogar gar nichts, wenn etwas weiter davor irgendwas in der Art von
    Code:
    with thisworkbook
    steht. In jedem Fall ist diese Zeile aber dafür verantwortlich, daß die Mappe unter dem bislang vergebenen Namen gespeichert wird.

    Alternativ dazu gibt es noch .saveas und .savecopyas. Und Du scheinst mir .saveas gebrauchen zu können. Damit wird die Mappe unter neuem Namen gespeichert. Und als ersten Parameter kann man gleich den neuen Dateinamen mit angeben.

    Jetzt mußt Du Dir also nur noch den neuen Dateinamen zusammenbasteln. Das geht relativ simpel:
    Code:
    d = now()
    f = format(year(d),"0000") & format(month(d),"00") & format(day(d),"00") & ".xls"
    Jetzt könntest Du mit
    Code:
    thisworkbook.saveas f
    die Mappe unter neuem Namen speichern. Aber Achtung: Das Ding landet im dann gerade aktuellen Verzeichnis, nicht zwingend im gleichen Verzeichnis, wie die Vorgänger-Version.

    Um neben dem Dateinamen auch noch Laufwerk und Pfad zu bestimmen, wäre dann etwas mehr Aufwand notwendig...

    Gruß, Michael
     
  3. Exl121150 Erfahrener User
    Hallo Albert,

    zur Bestimmung des Pfades der zu speichernden Datei gibt es mehere Möglichkeiten:
    a) Pfadkonstante, wie zB.
    Pfad="C:\ExcelDat\2009\"
    b) Pfad der aktuellen Arbeitsmappe:
    Pfad=ActiveWorkbook.Path & "\"
    c) Pfad der Excel-Anwendung (aber der wird ja nicht in Frage kommen):
    Pfad=Application.Path & "\"

    Dann den Dateinamen konstruieren, wie zB.
    Datei = Format(Date(),"YYYYMMDD") & ".xls"

    Und wie bereits beschrieben, die Speichermethode verwenden:
    ActiveWorkbook.SaveAs Pfad & Datei
    oder
    ActiveWorkbook.SaveCopyAs Pfad & Datei
    oder
    falls Du Excel2003 oder höher besitzt, könntest Du das Ganze auch in den Aufruf der Application.FileDialog(msoFileDialogSaveAs)-Methode einbauen, indem Du dieser den Vorgabepfad als Eigenschaft übergibst, um zusätzlich noch interaktiv den Speicherort im Dialogfenster abändern zu können.
     
    Exl121150, 24. September 2009
    #3
  4. muel180 Neuer User

    Makro soll zur Eingabe des Dateinamens auffordern

    Vielen Dank für die Hilfen. Das bekomm ich aber nicht auf die Reihe.
    Zur Zeit sieht das Makro so aus:

    Sub speichern()
    '
    ' speichern Makro
    ' Makro am 24.9.2009 von Administrator aufgezeichnet
    '

    '
    ChDir "K:\Fachbereich III\BAUHOF\Tagesberichte"
    ActiveWorkbook.SaveAs Filename:= _
    "K:\Fachbereich III\BAUHOF\Tagesberichte\JJJJMMTT.xls",
    FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    End Sub

    Wo ich jetzt was von den Tipps unterbringen muss, ist für mich wie ein fremder Bahnhof.
    Wie müsste denn das fertige Makro aussehen, wenn ich lediglich aufgefordert werden soll, einen neuen Dateinamen zu vergeben? Wenn ich die Methoden
    Application.FileDialog(msoFileDialogSaveAs).Show
    aufnehme, werde ich zwar aufgefordert, den Namen zu vergeben, kann diesen auch eingeben, es erfolgt aber keine Speicherung.
    Was mache ich falsch?
    Gruß
    Albert
     
  5. Exl121150 Erfahrener User
    Hallo Albert,

    Es funktioniert folgendes Makro (ich glaube die Excel-Version darf nicht vor Excel2002 sein, bin mir da aber nicht sicher - wegen des FileDialog-Objektes):
    Ferner müsstest Du die Zeile ".Filterindex = 4" an Deine Verhältnisse anpassen (einfach die Nr. der Filterzeile der Combobox unter dem Dateinamenfeld einsetzen)

    Code:
    Public Sub Speichern()
      Dim Pfad$, Datei$
    
      Pfad$ = "K:\Fachbereich III\BAUHOF\Tagesberichte\"
      Datei$ = Format(Date, "YYYYMMDD") & ".xls"
    
      With Application.FileDialog(msoFileDialogSaveAs)
        .InitialView = msoFileDialogViewDetails
        .AllowMultiSelect = False
        .InitialFileName = Pfad$ & Datei$ 
        .Title = "Speichern unter in " & .InitialFileName
        
        .FilterIndex = 4  'Excel97-2003-Arbeitsmappen (*.xls)
        
        If .Show Then
          .Execute  'Speichert
          'Folgende Meldung nur zu Demo-Zwecken, kann entfernt werden.
          MsgBox "Speichern unter von " & vbCrLf & _
                 .SelectedItems(1) & vbCrLf & _
                 "wurde ausgeführt.", vbOKOnly, "Gespeichert"
        Else
          'folgende Meldung nur zu Demo-Zwecken, kann entfernt werden.
          MsgBox "Speichern unter von " & vbCrLf & _
                 .InitialFileName & vbCrLf & _
                 "wurde abgebrochen.", vbOKOnly, "Speicherungsabbruch"
        End If
      End With
    End Sub
     
    Exl121150, 24. September 2009
    #5
  6. muel180 Neuer User
    Hallo Exl121150,
    vielen lieben Dank für die Hilfe. In meiner Combobox ist es die 1.
    Klappt vorzüglich.
    Nochmals Danke. Ich habe hier bestimmt nicht das letzte Mal um Hilfe gebeten.

    Gruß
    Albert
     
Thema:

Makro soll zur Eingabe des Dateinamens auffordern

Die Seite wird geladen...
  1. Makro soll zur Eingabe des Dateinamens auffordern - Similar Threads - Makro Eingabe Dateinamens

  2. Makro durch die Taste Eingabe/Return/Enter starten

    in Microsoft Excel Hilfe
    Makro durch die Taste Eingabe/Return/Enter starten: Hallo zusammen, ich habe eine Suchfunktion programmiert und möchte dieser gerne weiter vereinfachen. Bisher sieht es folgendermaßen aus: Textbox --> Button (aber einfach nur eine Form wo ein...
  3. Zellen nach Eingabe sperren über Makro

    in Microsoft Excel Hilfe
    Zellen nach Eingabe sperren über Makro: Hallo zusammen, ich erstelle gerade eine Tabelle, wo nach Eingabe von meinen Daten, die Zellen B5:BF5 (vielleicht per Knopfdruck) gesperrt werden sollen + es soll das Datum in einer Zelle...
  4. Autodruck per Makro nach Eingabe

    in Microsoft Excel Hilfe
    Autodruck per Makro nach Eingabe: Hallo liebe Community, ich habe eine Fragen zum Thema Autodruck mit VB: In Tabellenblatt 1 der Datei ist das Hauptdokument. Dort in Zelle B7 soll der Inhalt aus Tabellenblatt 2 aus Zelle A2...
  5. Makro bei Eingabe vom Buchstaben X Wort einsetzen

    in Microsoft Excel Hilfe
    Makro bei Eingabe vom Buchstaben X Wort einsetzen: Guten Morgen fleißige Helfer :-) Ich habe mal wieder eine Frage zu der ich nach vielem googeln und ausprobieren nicht weiterkomme. Habe bisher vollgendes funktionierendes Makro laufen. If...
  6. Dienstplan, eine Eingabe dann mehere Ausgaben. VBA

    in Microsoft Excel Hilfe
    Dienstplan, eine Eingabe dann mehere Ausgaben. VBA: Hallo, Kann mir jemadn bitte Helfen bin am verzweifeln habe schon viele Varianten probiert, zbsp. Private Sub Worksheet_Change(ByVal Target As Range) If Range("N9") = "N1" Or Range("N9")...
  7. Makro für automatische "Eingabe" von Formeln

    in Microsoft Excel Hilfe
    Makro für automatische "Eingabe" von Formeln: Liebe Excel Gemeinde, ich habe ein kleines Problem mit einer Hilfstabelle von mir. Problem bei dieser Hilfstabelle ist, dass diese mit vielen Sheets verknüpft ist. Dadurch, dass...
  8. Range-Eingabe in einem Makro - wie automatisieren?

    in Microsoft Excel Hilfe
    Range-Eingabe in einem Makro - wie automatisieren?: Habe ein Makro mit folgemden Inhalt : ... Rows("2:2").Select Selection.Copy Range("A3:A200").Activate ActiveSheet.Paste ... jetzt möchte ich die Angabe A200 durch einen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden