habe folgende Struktur (wenn man davon sprechen kann)
Masterdatei hier wird über mehrere Makros folgendes angestoßen:
- wenn ein neuer Eintrag reinkommt
a. fortlaufende Nummer um eins hochzählen
b. unter dieser Nummer einen Ordner mit dieser Nummer anlegen
c. eine Standardvorlage in diesen kopieren
jetzt mein Wunsch das in der Vorlage Werte aus der Masterdatei stehen:
1. die Nummer des Ordners aus Spalte A
2. Name des Produkts aus Spalte B
für Blatter die sich in einer Maske befinden habe ich einen Code der das kann, aber nciht wenn es sich um verschiedene Arbeitsmappen/Sheets handelt
das wäre der Code der eine Ordner und Hyperlink anlegt:
' von Marcus Hofpointner
'beide Codes legen Anhand von Namen in der Spalte A einen ORdner in der Struktur an und zu diesem einen Hyperlink
Option Explicit
Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal lpPath As String) As Long
Sub machHyperlinksNurEingeblendete()
Dim lZeile As Long, lLetzteZeile As Long
Dim strWurzel As String, strVerzeichnis As String
'Wurzelverzeichnis festlegen
strWurzel = ActiveWorkbook.Path & "\" '"C:\Users\papa\Desktop\"
'Verweis auf Tabellenblatt (evtl. anzupassen)
With ActiveSheet
'Letzte benutzte Zeile ermitteln
lLetzteZeile = .Columns(1).Find("*", , , , xlByRows, xlPrevious).Row
'Schleife über alle Zeilen (unabhängig, ob ausgeblendet, oder nicht)
For lZeile = 2 To lLetzteZeile
'Nur eingeblendete Zeilen
If Not .Rows(lZeile).Hidden Then
'Verzeichnis, das angelegt werden soll
strVerzeichnis = CStr(.Cells(lZeile, 1).Value)
'Pfad anlegen
If MakeSureDirectoryPathExists(strWurzel & strVerzeichnis & "\") Then
'Hyperlink anlegen
.Hyperlinks.Add Anchor:=.Cells(lZeile, 1), _
Address:=strWurzel & strVerzeichnis, _
ScreenTip:="Öffne " & strVerzeichnis, _
TextToDisplay:=strVerzeichnis
End If
End If
Next
End With
End Sub
Das wäre der Code der einen Unterordner erstellt und die leere Datei reinkopiert
Sub Datei_verschieben_inspektion()
'Dieser Code kopiert eine Datei in die Ordnerstruktur der Tabelle nur wenn ich spalte d der gleiche ordnername drinsteht
Dim Zeilen As Long, Pfad As String, FullPfad As String, i As Long
Dim Vorlage As String
' Vorlage = "C:\Users\marcu\Desktop\3 Fertig - Kopie\1.txt"
Vorlage = ActiveWorkbook.Path & "\inspektion.xlsx"
' hier die zele eingeben mit einem buchstaben wo gesucht werden soll
Zeilen = Cells(Rows.Count, "a").End(xlUp).Row
Pfad = ActiveWorkbook.Path & "\"
' Range("B1")
For i = 1 To Zeilen
' hier die zele eingeben mit einem zahl wo gesucht werden soll
FullPfad = Pfad & Cells(i, 1) & "\" & Range("ba1") & "\"
If Dir(FullPfad, vbDirectory) "" Then
FileCopy Vorlage, FullPfad & Dir(Vorlage)
Else
' MsgBox FullPfad & " nicht vorhanden"
End If
Next i
End Sub
das wäre der Code den ich angepasst bräuchte um die Infos von Mappe zu Mappe schieben zu können, bitte:hier wird ja beim anlegen schon der Name des Blattes übergeben, was ich beim anlegen von Mappen nicht hinbekomme
=WENN(ISTFEHLER(TEIL(@ZELLE("Dateiname";A1);FINDEN("]";@ZELLE("Dateiname";A1))+1;255)*1);TEIL(@ZELLE("Dateiname";A1);FINDEN("]";@ZELLE("Dateiname";A1))+1;255);TEIL(@ZELLE("Dateiname";A1);FINDEN("]";@ZELLE("Dateiname";A1))+1;255)*1)
hier wäre der Code der dann die weiteren Werte holt
=SVERWEIS(AF1;Basic!A4:I25;2;FALSCH)
wie gesagt die letzten 2 Codes funktionieren solange sich alles in einer Arbeitsmappe abspielt, bloß wie kann ich das mit Mappen bewerkstelligen?Danke im voraus - eine Musterdatei wäre zu groß zum schicken
Gruß
Marcus