Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Frage zu VBA
#1
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
Antworten Top
#2
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\"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#4
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"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • painkiller
Antworten Top
#5
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
Antworten Top
#6
Hallöchen,

bei mir sieht das mit dem If ... " rekla" und dem ".xlsx" anders aus. Irgendwie könnten das zwei Zeilen sein Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
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
Antworten Top
#8
oder so
  If Range("C14") = Ja Then 
        Dateiname = Left(Pfad,Len(Pfad) -1)  & " rekla\" & Dateiname & ."xlsx"
 end if
....ActiveWorkbook.SaveAs Filename:=Dateiname, File.......
   
Antworten Top
#9
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"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
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.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste