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.

Makro zum automatischen speichern auf USB
#1
Wink 
100 Erstmal Danke, Ihr seit fantastisch. 18

      
 Folgendes:
eine Mappe wird, beim Abspeichern immer auf einem Server abgelegt.
Nun, versuche ich, einen 'button' einzubauen, (kleines Backup) der folgendes kann.


1)   Abfrage, welches USB-Laufwerk, Stick usw. auf diesem PC, angeschlossen und beschreibbar ist.
2)   Ausgabe in einem Fenster das dieses(e) Laufwerk(e) auswählbar macht um die offene Datei (Mappe) zu speichern.
3)   Möglichkeit den Namen, Datum mit Uhrzeit zu ändern.
Das Einzige was ich habe ist folgendes:

ActiveWorkbook.SaveAs "d:\Excel\termine " & Format(Now, "yyyy.mm.dd") & ".xlsm"

Wer kann mir einen Tipp geben oder wer hat schon mal so ein Makro geschrieben und kann mir aushelfen?
21
Antworten Top
#2
Hallöchen,

USB-Laufwerke könntest Du im Prinzip so ausgeben. Kann aber auch SD-Kartenleser erwischen Sad

Code:
Sub ShowDriveList
    Dim objFSO as Object, objDrive as Object, objDrives as Object
    Dim strAll$
    'Objektzuweisung
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDrives = objFSO.Drives
    'Schleife ueber alle Laufwerke
     For Each objDrive in objDrives
       'Wenn es ein Wechseldatentraeger ist, dann
       If objDrive.DriveType = 2 Then
           'LaufwerksName  zum Ausgabestring hinzufuegen
           strAll = strAll & objDrive.DriveLetter & vblf
       'Ende Wenn es ein Wechseldatentraeger ist, dann
        End If
    'Ende Schleife ueber alle Laufwerke
    Next
    MsgBox strAll
End Sub

... Edit: SSD's werden auch als Wechseldatenträger erkannt. Sad
.      \\\|///      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:
  • Atlan
Antworten Top
#3
Smile 
Hallo,
im Bild (Anhang) werden alle HD's aufgelistet die im PC vorhanden sind.
Mein Wunsch währe dass nur die USB Lwerke angezeigt, die Partionen-Namen erscheinen,
anwählbar sind um darauf dann die Mappe, mit Name,als xls oder xlsm und Datum mit Uhrzeit, durch einen OK klicke zu speichern sind.
Das Problem ist dass die Benutzer der Mappe, von Computer weniger verstehen als ich 17  und deswegen die Sache so einfach wie möglich zu gestalten ist.
22 Merci


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#4
Verwende das serialnumber

Code:
Sub M_snb()
  With CreateObject("scripting.filesystemobject")
    For Each it In .drives
      If it.SerialNumber = 12345 Then Exit For
    Next
  End With
 
  MsgBox it
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Atlan
Antworten Top
#5
Hallöchen,

nimm mal den DriveType 1 ...
.      \\\|///      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:
  • Atlan
Antworten Top
#6
Danke Leute,
aber ich komme nicht klar.
Ich gebs auf.
16
Antworten Top
#7
Hallöchen,

also, 2 durch 1 zu ersetzen sollte doch nicht so schwer sein.

Code:
Sub ShowDriveList()
    Dim objFSO As Object, objDrive As Object, objDrives As Object
    Dim strAll$
    'Objektzuweisung
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDrives = objFSO.Drives
    'Schleife ueber alle Laufwerke
     For Each objDrive In objDrives
       'Wenn es ein Wechseldatentraeger ist, dann
       If objDrive.DriveType = 1 Then
           'LaufwerksName  zum Ausgabestring hinzufuegen
           strAll = strAll & objDrive.DriveLetter & " " & objDrive.rootfolder.Type & " " & objDrive.volumename & vbLf
       'Ende Wenn es ein Wechseldatentraeger ist, dann
        End If
    'Ende Schleife ueber alle Laufwerke
    Next
    MsgBox strAll
End Sub

Wenn das passt, kann man weitermachen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Lass mal laufen und zeige mal das Ergebnis:

Code:
Sub M_snb()
  With CreateObject("scripting.filesystemobject")
    For Each it In .drives
      c00=c00 & vblf & it & vbtab & it.SerialNumber
    Next
  End With

  msgbox c00 
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
@snb,

Dein Code zeigt alle Drives, mein letzter nur die Wechseldatenträger - z.B. USB-Drives, die als solche erkannt werden, also ggf. keine HD / SSD am USB-Port.
   
E ist eine SSD an USB, D und F zwei Sticks.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
@Schau

Ich berücksichtige das Serialnumber; Der TS kann uns dann sagen welche Driveletterder USB hat.

Basiert auf das Ergebnis kann man wählen welche USB benützt werden soll.
z. B D:\

Code:
Sub M_snb()
  With CreateObject("scripting.filesystemobject")
    For Each it In .drives
      If it.SerialNumber = 785958618 Then Exit For
    Next
  End With

  activeworkbook.saveas it  &  "Beispiel.xlsb",50
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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