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
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)
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)
   
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
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
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)
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
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.......
   
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)
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)
Top


Gehe zu:


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