Clever-Excel-Forum

Normale Version: Frage zu VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen 

ich habe in einer Excel Datei einen Command Button welche mir die Datei mit einem Pfad automatisch abspeichert.
Nun müsste ich noch folgendes einfügen:
Es gibt ein Feld in dem ein Drop Down mit Ja / Nein ist, wenn Nein ist sollte es mit dem normalen Pfad abgespeichert werden und wenn ja
mit dem Zusatz im Pfad rekla.
Wie lautet der Code dann?
Code:
Private Sub CommandButton1_Click()

    Const Pfad As String = "M:\70_QMS\120_Prüfprotokolle 2021\"
    Dim Dateiname As String
   
    If Range("C4") = "" Or Range("H4") = "" Or Range("M4") = "" Or Range("C8") = "" Or Range("C6") = "" Or Range("M6") = "" Then MsgBox "Alle Felder ausfüllen!": Exit Sub

    Application.DisplayAlerts = False   ' Warnmeldung ausschalten
   
    ' Zeichnungsnummer_Index+IndexNr_Bestellnummer_Lieferant_WEDatum
    ' Zeichnungsnummer_Index (H4)
    ' IndexNr                (M4)
    ' Bezeichnung            (C4)
    ' Bestellnummer          (C8)
    ' Lieferant              (C6)
    ' WEDatum                (M6)
   
    Dateiname = Range("H4") & "_" & "Index" & "_" & Range("M4") & "_" & Range("C4") & "_" & Range("C8") & "_" & Range("c6") & "_" & Range("M6") & ".xlsx"
    Debug.Print Pfad & Dateiname
   
   
    ActiveWorkbook.SaveAs Filename:=Pfad & Dateiname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
   
    Application.DisplayAlerts = True    ' Warnmeldung einschalten

    ActiveSheet.Shapes.Range(Array("CommandButton1")).Delete


   
End Sub
Hallöchen,

ich habe Deine Frage mal ins Excel-Forum geschoben, Du warst im Beispielbereich ...


statt
Const Pfad As String = "M:\70_QMS\120_Prüfprotokolle 2021\"

dann
Dim Pfad As String
If ... Then Pfad = "M:\70_QMS\120_Prüfprotokolle 2021\" Else Pfad = "M:\70_QMS\120_Prüfprotokolle 2021 rekla\"
Hi 

Danke dir erstmal !

Das passt noch nicht ganz.
Es sollte so sein das wenn ich im Abklärungsfeld "Ja" drin habe er den Dateinamen am ende mit Rekla speichert.
Also nicht der Pfad wo die Datei abgespeichert wird sondern der Dateiname muss eben mit Rekla am Ende sein.
Hallöchen,

Da steht aber:

Zitat:Es gibt ein Feld in dem ein Drop Down mit Ja / Nein ist, wenn Nein ist sollte es mit dem normalen Pfad abgespeichert werden und wenn ja
mit dem Zusatz im Pfad rekla.

und nicht

Zitat:Es gibt ein Feld in dem ein Drop Down mit Ja / Nein ist, wenn Nein ist sollte es mit dem normalen Dateiname abgespeichert werden und wenn ja
mit dem Zusatz im Dateiname rekla.

Lasse dann den Pfad wie gehabt.

Es geht dann so:

Dateiname = Range("H4") & "_" & "Index" & "_" & Range("M4") & "_" & Range("C4") & "_" & Range("C8") & "_" & Range("c6") & "_" & Range("M6")
If ... Then Dateiname = Dateiname & " rekla"
Dateiname = Dateiname ".xlsx"
irgendwo hab ich noch ein Bock drin ..mhhh

Private Sub CommandButton1_Click()
    Const Pfad As String = "M:\70_QMS\120_Prüfprotokolle 2021\"
    Dim Dateiname As String
   
    If Range("C4") = "" Or Range("H4") = "" Or Range("M4") = "" Or Range("C8") = "" Or Range("C6") = "" Or Range("M6") = "" Then MsgBox "Alle Felder ausfüllen!": Exit Sub
    Application.DisplayAlerts = False   ' Warnmeldung ausschalten
   
    ' Zeichnungsnummer_Index+IndexNr_Bestellnummer_Lieferant_WEDatum
    ' Zeichnungsnummer_Index (H4)
    ' IndexNr                (M4)
    ' Bezeichnung            (C4)
    ' Bestellnummer          (C8)
    ' Lieferant              (C6)
    ' WEDatum                (M6)
   
  
   
    Dateiname = Range("H4") & "_" & "Index" & "_" & Range("M4") & "_" & Range("C4") & "_" & Range("C8") & "_" & Range("c6") & "_" & Range("M6")
    If Range("C14") = "Ja" Then Dateiname = Dateiname & "rekla".xlsx"
   
   
    ActiveWorkbook.SaveAs Filename:=Pfad & Dateiname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
   
    Application.DisplayAlerts = True    ' Warnmeldung einschalten
    ActiveSheet.Shapes.Range(Array("CommandButton1")).Delete
 
   
   
End Sub
Hallöchen,

bei mir sieht das mit dem If ... " rekla" und dem ".xlsx" anders aus. Irgendwie könnten das zwei Zeilen sein Smile
mhh .. es geht trotzdem noch nicht ..

Private Sub CommandButton1_Click()
    Const Pfad As String = "M:\70_QMS\120_Prüfprotokolle 2021\"
    Dim Dateiname As String
   
    If Range("C4") = "" Or Range("H4") = "" Or Range("M4") = "" Or Range("C8") = "" Or Range("C6") = "" Or Range("M6") = "" Then MsgBox "Alle Felder ausfüllen!": Exit Sub
    Application.DisplayAlerts = False   ' Warnmeldung ausschalten
   
    ' Zeichnungsnummer_Index+IndexNr_Bestellnummer_Lieferant_WEDatum
    ' Zeichnungsnummer_Index (H4)
    ' IndexNr                (M4)
    ' Bezeichnung            (C4)
    ' Bestellnummer          (C8)
    ' Lieferant              (C6)
    ' WEDatum                (M6)
   
  
   
    Dateiname = Range("H4") & "_" & "Index" & "_" & Range("M4") & "_" & Range("C4") & "_" & Range("C8") & "_" & Range("c6") & "_" & Range("M6")
    If Range("C14") = Ja Then Dateiname = Dateiname & " rekla" Dateiname = Dateiname ".xlsx"
   
    ActiveWorkbook.SaveAs Filename:=Pfad & Dateiname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
   
    Application.DisplayAlerts = True    ' Warnmeldung einschalten
    ActiveSheet.Shapes.Range(Array("CommandButton1")).Delete
 
   
   
End Sub
oder so
  If Range("C14") = Ja Then 
        Dateiname = Left(Pfad,Len(Pfad) -1)  & " rekla\" & Dateiname & ."xlsx"
 end if
....ActiveWorkbook.SaveAs Filename:=Dateiname, File.......
   
Hallöchen,

Zitat:If Range("C14") = Ja Then Dateiname = Dateiname & " rekla" Dateiname = Dateiname ".xlsx"

Das ist immer noch eine Zeile ...

Bei mir steht

If Range("C14") = Ja Then Dateiname = Dateiname & " rekla"
Dateiname = Dateiname ".xlsx"
Off topic oder auch nicht:
Warum nur wird in 99% der Codes für die .SaveAs-Methode "krampfhaft" eine Dateiendung angehängt, die bereits durch FileFormat:= vorgegeben ist?
Positiv würde ich sagen: Pfeif doch auf die Redundanz!
Negativ: Hiermit kann man eine Dateiendung "vorgaukeln", die Unwissenden im wahrsten Sinn ein x für ein u vormacht.
Seiten: 1 2