Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordner anlegen per VBS mit NAmen aus Tabelle

Frage Entwicklung VB for Applications

Mitglied: ShitzOvran

ShitzOvran (Level 1) - Jetzt verbinden

30.06.2009, aktualisiert 09:41 Uhr, 4854 Aufrufe, 4 Kommentare

Wie mein Titel schon sagt, möchte ich Ordner anlegen mit Namen aus einer Tabelle

was ich schon habe ist
01.
Sub CommandButton1_Click() 
02.
 
03.
Dim intIndex As Integer 
04.
 
05.
For intIndex = 3 To 15 
06.
  MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & Range("B" & intIndex).Value) 
07.
Next intIndex 
08.
 
09.
End Sub
klappt an sich auch schon sehr gut. Doch wenn ihr euch die dazugehörige Tabelle anschaut, merkt ihr dass es eine Problematik gibt.


10-000 MASCHINENBAU
10-200 Fertigungskomponenten
10-210 Grundrahmen Tankanlagen
10-220 Abdeckungen_Seitenwände
10-225 Isolierungen Thermisch
10-230 Gusstteile (z.B. Schmelzbehälter)
11-000 SCHMELZSYSTEME
11-110 Tanksysteme mit Kolbenpumpen 1
11-112 Tanksysteme mit Kolbenpumpen 2
11-120 Tanksysteme mit Kolbenpumpen 3
11-200 Tanksysteme mit Kolbenpumpen sonstige
12-110 Tanksysteme mit Zahnradpumpen 1
12-120 Tanksysteme mit Zahnradpumpen 2
12-200 Tanksysteme mit Zahnradpumpen Spezial
Ich hab eine Spalte Produktnummern und eine Spalte Bezeichnung. Jetzt ist es so, dass ich immer eine Nummer habe "XX-000" das ist sozusagen der Überordner und alles was nachfolgend kommt, gehört in den Ordner darunter. Problematisch wirds, da es auch sein kann dass es mehrere Ebenen gibt zB.
01.
Maschinenbau 
02.
03.
        |------------Fertigungskomponenten 
04.
                          |------------ Grundrahmen 
05.
                          |------------ Abdeckung 
06.
                          |------------ Isolierung 
07.
                          |------------ Gußteile 
08.
 
09.
Schmelzsysteme 
10.
11.
[usw...]
Hat einer ne hilftreiche Idee wie ich das bewerkstelligen kann?

Muss dazu sagen, bin in VBS ne Niete ;)
Mitglied: ShitzOvran
30.06.2009 um 10:03 Uhr
ok, hab mitlerweile das hier

01.
Sub CommandButton1_Click() 
02.
 
03.
Dim intIndex As Integer 
04.
 
05.
For intIndex = 3 To 4 
06.
 
07.
If Range("A" & intIndex) Like "*000" Then 
08.
MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & Range("B" & intIndex).Value) 
09.
Else 
10.
MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & Range("B" & intIndex - 1).Value & "\" & Range("B" & intIndex).Value) 
11.
 
12.
End If 
13.
 
14.
Next intIndex 
15.
 
16.
End Sub
jetzt macht er nur ein Fehler, da er jaimmer nur ein Zähler zurücksetzt... er muss ja aber solange den zähler zurücksetzten, bis er den Oberordner wieder hat.
Das Problem dann aber, wie soll er dann die Nächse Zeile verarbeiten?? Hach, is das alles schwierig
Bitte warten ..
Mitglied: ShitzOvran
30.06.2009 um 10:53 Uhr
so, habs jetzt... zumindest für zwei Ebenen

01.
Sub CommandButton1_Click() 
02.
 
03.
Dim intIndex As Integer 
04.
 
05.
For intIndex = 3 To 15 
06.
 
07.
If Range("A" & intIndex) Like "*000"  
08.
Then 
09.
          MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & Range("B" & intIndex).Value) 
10.
          Merker = 0 
11.
 
12.
Else 
13.
          Merker = Merker + 1 
14.
          MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & Range("B" & intIndex - Merker).Value & "\" & Range("B" & intIndex).Value) 
15.
 
16.
End If 
17.
 
18.
Next intIndex 
19.
 
20.
End Sub
Bitte warten ..
Mitglied: Eierbaer
30.06.2009 um 21:35 Uhr
Probiers einmal hiermit:

01.
Sub CommandButton1_Click() 
02.
   Dim strVerz(4)     As String 
03.
   Dim strNR(4)       As String 
04.
   Dim strAktuell    As String 
05.
   Dim intEbene      As Integer 
06.
   Dim intZeile      As Integer 
07.
   Dim strAusgabe    As String 
08.
   Dim i             As Integer 
09.
   intEbene = 0 
10.
    
11.
   'Startzeile 
12.
   intZeile = 3 
13.
    
14.
   'Solange in Zelle B ein Wert vorhanden 
15.
   While Range("B" & intZeile).Value <> "" 
16.
      strZellentext = Mid(Range("B" & intZeile).Value, 8) 
17.
      strAktuell = Left(Range("B" & intZeile).Value, 6) 
18.
       
19.
      'Ebene ermitteln 
20.
      If Left(strAktuell, 2) <> strNR(0) Then 
21.
         intEbene = 0 
22.
         strNR(0) = Left(strAktuell, 2) 
23.
      ElseIf Mid(strAktuell, 1, 4) <> strNR(1) Then 
24.
         intEbene = 1 
25.
         strNR(1) = Mid(strAktuell, 1, 4) 
26.
      ElseIf Mid(strAktuell, 1, 5) <> strNR(2) Then 
27.
         intEbene = 2 
28.
         strNR(2) = Mid(strAktuell, 1, 5) 
29.
      ElseIf Mid(strAktuell, 1, 6) <> strNR(3) Then 
30.
         intEbene = 3 
31.
         strNR(3) = Mid(strAktuell, 1, 6) 
32.
      End If 
33.
       
34.
      'Verzeichnisname merken 
35.
      strVerz(intEbene) = strZellentext 
36.
       
37.
      'Pfad zumsammenbasteln 
38.
      strAusgabe = "" 
39.
      For i = 0 To intEbene 
40.
         strAusgabe = strAusgabe + strVerz(i) + "\" 
41.
      Next i 
42.
       
43.
      'Pfad um den letzten Backslash kürzen 
44.
      strAusgabe = Left(strAusgabe, Len(strAusgabe) - 1) 
45.
      
46.
      MkDir ("P:\Datenaustausch\Konstruktion\Ordner\" & strAusgabe) 
47.
       
48.
      'Zeilenzähler erhöhen 
49.
      intZeile = intZeile + 1 
50.
 
51.
   Wend 
52.
    
53.
End Sub
Gruß Rüdiger aus Kiel
Bitte warten ..
Mitglied: bastla
30.06.2009 um 23:49 Uhr
... oder noch ein Ansatz (falls es so zu verstehen wäre, dass alle Ordnerebenen durch "-" voneinander getrennt sind, also es zB "XX-YYY-ZZZZ" geben kann ([Edit] Bei nochmaliger Betrachtung der Struktur wird's wohl nicht so sein - ich lass' den Code aber trotzdem stehen ... [/Edit]):
01.
BasisPfad = "P:\Datenaustausch\Konstruktion\Ordner" 
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
... 
04.
PfadUndName = Cells(intZeile, "A") 
05.
NurPfad = Split(PfadUndName)(0) 
06.
NurName = Trim(Mid(PfadUndName, Len(NurPfad))) 
07.
 
08.
OrdnerPfad = Basispfad 
09.
AlleOrdner = Split(NurPfad, "-") 
10.
For i = 0 To UBound(AlleOrdner) 
11.
    OrdnerPfad = OrdnerPfad & "\" & AlleOrdner(i) 
12.
    If Not fso.FolderExists(OrdnerPfad) Then fso.CreateFolder(OrdnerPfad) 
13.
Next 
14.
...
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...