Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1284to1288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellenname als Windows-Ordnernahme ausgeben

Zellenname als Windows-Ordnernahme ausgeben
14.11.2012 20:28:44
Lemmi
Hallo zusammen,
wie kann ich mittels Makro eine Tabelle mit 1....X Namen. in Ordnernamen umschreiben bzw. ableiten.
Idealerweise makiere ich teilweise oder auch ganz eine Spalte mit vielen Namen.
Der makierten Bereich hat ggf. auch leer Zellen.
Diese sollen nicht berücksichtigt werden.
Sind also die Namen makiert, möchte ich Sie als Verzeichnisnamen in ein vorher bestimmtes Laufwerk + Unterverzeichnisse geschreiben werden.
Gibt es da schon etwas? (Addin)?
Gruß
Lemmi
Wenn es das nicht geben sollte, kann jemand das Problem vieleicht lösen?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenname als Windows-Ordnernahme ausgeben
15.11.2012 07:49:54
Tino
Hallo,
kannst mal dies versuchen.
In der Zeile strPath = "G:\TestOrdner" kannst Du den Pfad vorgeben.
Es werden alle markierten Zellen durchlaufen.
Wenn ein Ordner nicht angelegt werden kann, wird eine Fahlerlister erstellt.
Getestet unter, Win7(32Bit) mit xl2007!
Option Explicit

Private Declare Function apiCreateFullPath _
Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long

Sub OrdnerAnlegen()
Dim varData, varPath, arrFehler()
Dim strPath$, sTmpPath$
Dim lngPath&, nCountF&
Dim oWS As Worksheet

'hier Pfad angeben 
strPath = "G:\TestOrdner"

strPath = IIf(Right$(strPath, 1) = "\", strPath, strPath & "\")

For Each varData In Selection.Areas
    For Each varPath In varData
        If varPath <> "" Then
            sTmpPath = varPath
            If Left$(sTmpPath, 1) = "\" Then sTmpPath = Mid$(sTmpPath, 2, Len(sTmpPath))
            If Right$(sTmpPath, 1) <> "\" Then sTmpPath = sTmpPath & "\"
            sTmpPath = strPath & sTmpPath
            lngPath = apiCreateFullPath(sTmpPath)
            If lngPath = 0 Then
                Redim Preserve arrFehler(nCountF)
                arrFehler(nCountF) = varPath
                nCountF = nCountF + 1
            End If
        End If
    Next varPath
Next varData

If nCountF > 0 Then
    If MsgBox("Es wurden nicht alle Ordner angelegt!" & vbCr & _
              "Soll eine Liste der Fehler ausgegeben werden?", vbQuestion + vbYesNo) = vbYes Then
    
        Set oWS = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        oWS.Cells(1, 1) = "Fehler Pfad"
        oWS.Cells(1, 1).Font.Bold = True
        oWS.Cells(2, 1).Resize(nCountF) = Application.Transpose(arrFehler)
        oWS.Columns(1).AutoFit
    End If
End If
End Sub
Gruß Tino

Anzeige
AW: Zellenname als Windows-Ordnernahme ausgeben
15.11.2012 09:42:46
Lemmi
Hallo Tino,
ich habe bei mir XP und Excel 2007 könnte das für mich ein Problem sein?
Ich bin mir nicht ganz sicher, ob ich alles richtig mache, es wäre für mich besser wenn das Makro erst startet wenn ich es ausgewählt habe!
D. h. Ich markiere die Zellen (Texte oder Zahlen) in einer Spalte, starte dann das Makro!
Zur zeit werden alle makierten Felder als Fehler Pfad in einem neunen Reiter ausgeegeben!
Gruß
Lemmi

AW: Zellenname als Windows-Ordnernahme ausgeben
15.11.2012 12:13:41
Tino
Hallo,
also der Code funktioniert bei mir auch unter Win XP.
Starten kannst Du den Code z. Bsp. über einen Button wenn Du die Zellen markiert hast.
Möglichkeiten die mir einfallen warum die Ordner nicht angelegt werden.
  • Hast Du den Pfad im Code wie zuvor beschrieben angepasst?

  • Gibt diese Laufwerksbezeichnung?

  • Hast Du Schreibrechte auf diesen Ordner?

  • Die Testtabelle ist bei mir so aufgebaut.
     A
    1Pfad
    2Ordner1
    3Ordner2
    4 
    5?*#!"§$%&/()=
    6 
    7 
    8\Ordner3\Odner4
    9 

    Wenn ich nun die Zellen A2:A8 (A1 = Überschrift) markiere und den Code starte,
    werden die Ordner angelegt.
    Die Markierung kann auch wo anders liegen.
    Wichtig ist nur, die Markierung darf nur die Ordnerangaben (bzw. auch nichts) enthalten
    die erstellt werden sollen.
    Der Ordner in A5 wird nicht angelegt, dieser hat ungültige Zeichen und dieser wird als
    Fehler in einer neuen Tabelle ausgewiesen, wenn man es will.
    Gruß Tino

    Anzeige
    AW: Zellenname als Windows-Ordnernahme ausgeben
    15.11.2012 14:55:17
    Lemmi
    Tino,
    es hat geklappt! allerbesten Dank!
    Es hatte sich bei dem Umschreiben der Verzeichnisses ein " (gänsefüßchen nach oben) eingeschlichen.
    Danke!
    Gruß
    Lemmi

    307 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige