Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufwerk Buchstaben herausfinden.

Forumthread: Laufwerk Buchstaben herausfinden.

Laufwerk Buchstaben herausfinden.
06.08.2008 11:16:07
Tom
Hallo,
ich hab ein kleines Problem, ich will ein Programm anzeigen von Bilder in Excel schreiben. Jetzt sollt das in meiner Firma zur Verfügung gestellt werden.
Prolem: In der Datei, greif ich dynamisch auf die Bilder je nach Sachnummer zu.
Jetzt das Problem der Pfad: C:\Peter\Lustig\bild\1.jpg
Jetzt kann jeder Mitarbeiter das Laufwerk unterschiedlich als Netzlaufwerk verbinden.
Gibt es jetzt eine Möglichkeit das Laufwerk automatisch herauszufinden, oder im schlechtesten Fall, den Ordner über ein Menü auswählen?
Ein Ansatz hatte ich shcon gefunden der funktioniert bei meinem Excel aber nicht.

''' 
''' Gibt den nächsten freien Laufwerksbuchstaben zurück
''' 
Public Function NextAvailDrive() As String
' alle logischen Laufwerke
Dim sDrives As String = Join(Directory.GetLogicalDrives(), "")
Dim sNextDrive As String = ""
' nach 1. nicht verwendetes Laufwerk suchen
' beginnend ab C:
For i As Integer = 68 To 90
If Not sDrives.Contains(Chr(i) & ":") Then
sNextDrive = Chr(i) & ":" : Exit For
End If
Next
Return sNextDrive
End Function


mfg Tom

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufwerk Buchstaben herausfinden.
06.08.2008 11:22:00
Rudi
Hallo,

Jetzt kann jeder Mitarbeiter das Laufwerk unterschiedlich als Netzlaufwerk verbinden. 


Aber der UNC-Name bleibt immer der gleiche.
\\Servername\Freigabename\Ordner\1.jpg
Gruß
Rudi

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufwerk Buchstaben herausfinden


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11 in Excel, um den VBA-Editor zu starten.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    ''' <summary>
    ''' Gibt den nächsten freien Laufwerksbuchstaben zurück
    ''' </summary>
    Public Function NextAvailDrive() As String
       ' alle logischen Laufwerke
       Dim sDrives As String
       sDrives = Join(Directory.GetLogicalDrives(), "")
       Dim sNextDrive As String
       ' nach 1. nicht verwendetes Laufwerk suchen
       ' beginnend ab C:
       For i As Integer = 68 To 90
           If Not sDrives.Contains(Chr(i) & ":") Then
               sNextDrive = Chr(i) & ":"
               Exit For
           End If
       Next
       Return sNextDrive
    End Function
  4. Funktion verwenden: Rufe die Funktion NextAvailDrive() in einer Zelle auf, um den nächsten freien Laufwerksbuchstaben zu ermitteln.

  5. Pfad anpassen: Ersetze in deinem Bild-Pfad den Laufwerksbuchstaben durch den ermittelten Buchstaben.


Häufige Fehler und Lösungen

  • Fehler bei der Ausführung: Stelle sicher, dass du die richtigen Berechtigungen hast, um auf die Laufwerke zuzugreifen. Manchmal kann es an fehlenden Administratorrechten liegen.

  • Funktion gibt keinen Buchstaben zurück: Überprüfe, ob tatsächlich Laufwerke verbunden sind. Wenn dein Mitarbeiter das Laufwerk nicht verbunden hat, kann die Funktion keinen Buchstaben zurückgeben.

  • Excel großbuchstaben automatisch: Wenn du sicherstellen möchtest, dass die Buchstaben immer in Großbuchstaben angezeigt werden, kannst du die Funktion wie folgt anpassen:

    Return UCase(sNextDrive)

Alternative Methoden

  • UNC-Pfade verwenden: Anstatt Laufwerksbuchstaben zu verwenden, kannst du auch direkt mit UNC-Pfaden arbeiten. Zum Beispiel:

    \\Servername\Freigabename\Ordner\1.jpg

    Diese Methode ist besonders nützlich, wenn unterschiedliche Benutzer unterschiedliche Laufwerksbuchstaben verwenden.

  • Ordner manuell auswählen: Du kannst auch einen Dialog zur Ordnerauswahl implementieren, um den Pfad manuell auszuwählen.

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then
       MsgBox "Ordner ausgewählt: " & fd.SelectedItems(1)
    End If

Praktische Beispiele

  • Laufwerk suchen: Verwende die Funktion NextAvailDrive() in Kombination mit anderen Funktionen, um Pfade dynamisch zu erstellen. Zum Beispiel:

    Dim imagePath As String
    imagePath = NextAvailDrive() & "\Peter\Lustig\bild\1.jpg"
  • Servernamen herausfinden: Wenn du den Servernamen benötigst, kannst du diesen auch über VBA ermitteln:

    MsgBox "Servername: " & Environ("COMPUTERNAME")

Tipps für Profis

  • Automatisierung: Überlege, wie du VBA nutzen kannst, um wiederkehrende Aufgaben zu automatisieren. Das kann dir viel Zeit sparen.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung in deinem VBA-Code, um die Fehlerbehebung zu erleichtern.

  • Dokumentation: Vermerke alle Änderungen in deinem VBA-Code und dokumentiere die Funktionen, damit andere Nutzer (oder du selbst in der Zukunft) diese leichter nachvollziehen können.


FAQ: Häufige Fragen

1. Wie kann ich den Laufwerksbuchstaben dauerhaft speichern?
Du kannst den ermittelten Laufwerksbuchstaben in einer benannten Zelle oder in einem benutzerdefinierten Namen speichern.

2. Was tun, wenn der UNC-Pfad nicht funktioniert?
Überprüfe die Berechtigungen des Freigabepfades. Manchmal sind bestimmte Benutzer nicht berechtigt, auf den Ordner zuzugreifen.

3. Kann ich die Bilddateien direkt in Excel anzeigen?
Ja, du kannst Bilder in Excel einfügen, indem du die Methode Shapes.AddPicture verwendest, um die Bilder dynamisch zu laden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige