Registriert seit: 25.07.2014
Version(en): 2013
Hallöchen liebe VBA Freunde,
ich habe folgendes Problem. In meinem Verzeichnis Audio befinden sich eine Menge durchnummerierter Dateien mit dem Format A_0001.mp3 bis A_0099.mp3. Diese Dateien sollen nun per Zufallsgenerator umbenannt werden, so dass sich für die einzelnen 99 Dateien eine neue Reihenfolge ergibt. Das besondere dabei soll sein, das jeweils 3 Dateien zusammengehören. Also wenn die Datei A_0001.mp3 zufällig den neuen Dateinamen A_0013.mp3 bekommt, dann muss aus der alten Datei A_0002.mp3 jetzt A_0014.mp3 und aus der alten A_0003.mp3 A_0015.mp3 werden. Also es wird sozusagen immer in 3-Blöcken gemischt. Hat jemand von den VBA Profis eine Ahnung wie man so etwas programmieren könnte.
Im Voraus vielen Dank für Eure Hilfe. P.S: Wenn jemand ganz fit darin ist, könnte er mir vielleicht auch noch verraten, wie man per Knopfdruck die ursprüngliche Reihenfolge speichern und wieder herstellen kann. Danke!
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, Zitat:Wenn jemand ganz fit darin ist, könnte er mir vielleicht auch noch verraten, wie man per Knopfdruck die ursprüngliche Reihenfolge speichern und wieder herstellen kann. Danke! Dazu muss man nicht sehr fit sein, Du tastest die original Tabelle einfach nicht an, alle Änderungen finden in einem separaten Blatt statt. Zitat:dann muss aus der alten Datei A_0002.mp3 jetzt A_0014.mp3 und aus der alten A_0003.mp3 A_0015.mp3 werde Wie sollen dann die bisher so benannten Dateien geändert werden?
Gruß Atilla
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Atilla, Zitat:Wie sollen dann die bisher so benannten Dateien geändert werden? das bleibt doch der Fantasie des Programmierers überlassen, wie alle Dateien erst einmal temporär umbenannt werden. Gruß Uwe
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Uwe, oder, es ist wie immer, Männer verstehen die Frauen nicht. Aber Du kannst Dich ja schon an die Arbeit machen. Für mich ist das momentan zu aufwendig, ich weiß nicht ob ich mich daran versuchen soll. Das Umbenennen der bisherigen Dateien kann sicher leicht in einem bestehenden Code angepasst werden. Falls ich nicht einschlafen kann, versuche ich vielleicht eine Lösung zu finden.
Gruß Atilla
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo zusammen,
habe mich gerade versucht noch einmal da reinzudenken, aber ohne weitere Angaben wird wohl keine Lösung möglich sein.
Kathrin gib mal ein Beispiel. Angenommen es wurde die 100 als Zufallszahl gezogen, was soll jetzt passieren?
Gruß Atilla
Registriert seit: 25.07.2014
Version(en): 2013
Hallo Leute,
eigentlich denke ich mir das so, die Dateien sollen nach dem Zufallsprinzip umbenannt werden. Die Bedingung dabei ist aber, das jeweils immer 3 Dateien zusammengehören und dies soll auch so bleiben. Die Dateien 1 bis 3 gehören zusammen. Die Dateien 4 bis 6 gehören zusammen. Wird Datei 1 umbenannt zu Datei 10, dann ist die alte Datei 2 zwangsläufig Datei 11 und die alte Datei 3 natürlich 12. Die Namen der Dateien sollen gemischt werden.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Kathrin,
leider keine neuen Erkenntnisse.
Definier bitte was für Dich "Zufallsprinzip" bedeutet.
Gruß Atilla
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Kathrin, so sieht die Tabelle aus: Audiodateien | A | B | C | D | 1 | Originalname | Name aktuell | | http://www.clever-excel-forum.de/Thread-Kniffliges-Dateien-mischen | 2 | A_0001.mp3 | A_0001.mp3 | | | 3 | A_0002.mp3 | A_0002.mp3 | | Doppelklick in Spalte B benennt Dateien in 3-Blöcken zufällig um | 4 | A_0003.mp3 | A_0003.mp3 | | Doppelklick in Spalte A benennt Dateien wieder nach Originalnamen um | 5 | A_0004.mp3 | A_0004.mp3 | | | 6 | A_0005.mp3 | A_0005.mp3 | | | 98 | A_0097.mp3 | A_0097.mp3 | | | 99 | A_0098.mp3 | A_0098.mp3 | | | 100 | A_0099.mp3 | A_0099.mp3 | | | Die zugehörigen Codes: Code: ' ************************************************************** ' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...) ' ************************************************************** Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then ZurueckZumOriginalnamen If Target.Column = 2 Then DateienZufaelligUmbenennen End Sub
' ************************************************************** ' Modul: Modul1 Typ = Allgemeines Modul ' ************************************************************** Option Explicit
Sub DateienZufaelligUmbenennen() Dim i As Long, z As Long, dblT As Double Dim varNamen As Variant, varT(1 To 33) As Variant Dim strPfad As String strPfad = "C:\Audio\" '<< Pfad entsprechend anpassen For i = 1 To UBound(varT) varT(i) = i Next i varNamen = Range("B2:C100").Value 'Zufallsschleife For i = UBound(varT) To 1 Step -1 z = Int(i * Rnd + 1) dblT = varT(i) varT(i) = varT(z) varT(z) = dblT varNamen(i * 3 - 2, 2) = varNamen(varT(i) * 3 - 2, 1) varNamen(i * 3 - 1, 2) = varNamen(varT(i) * 3 - 1, 1) varNamen(i * 3 - 0, 2) = varNamen(varT(i) * 3 - 0, 1) Next i 'Dateien temporär umbenennen For i = 1 To 99 Name strPfad & varNamen(i, 1) As strPfad & "T_" & varNamen(i, 1) Next i 'Dateien nach Zufall umbenennen For i = 1 To 99 Name strPfad & "T_" & varNamen(i, 1) As strPfad & varNamen(i, 2) varNamen(i, 1) = varNamen(i, 2) Next i 'aktuelle Namen in Tabelle schreiben Range("B2:B100").Value = varNamen End Sub
Sub ZurueckZumOriginalnamen() Dim i As Long Dim strPfad As String Dim varNamen As Variant strPfad = "C:\Audio\" '<< Pfad entsprechend anpassen varNamen = Range("A2:B100").Value 'Dateien temporär umbenennen For i = 1 To 99 Name strPfad & varNamen(i, 2) As strPfad & "T_" & varNamen(i, 2) Next i 'Dateien auf Originalnamen zurück umbenennen For i = 1 To 99 Name strPfad & "T_" & varNamen(i, 2) As strPfad & varNamen(i, 1) Next i 'aktuelle Namen in Tabelle schreiben Range("B2:B100").Value = varNamen End Sub
Gruß Uwe
Kniffliges Dateien mischen.xls (Größe: 33,5 KB / Downloads: 4)
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• kathrin-Flint
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi, Kathrin, (03.08.2014, 22:19)kathrin-Flint schrieb: Wird Datei 1 umbenannt zu Datei 10, dann ist die alte Datei 2 zwangsläufig Datei 11 und die alte Datei 3 natürlich 12. Die Namen der Dateien sollen gemischt werden. Die Frage von atilla zielt darauf, was dann mit den alten Dateien 10, 11 und 12 passieren soll? Das führt zu einer Kettenreaktion, bei der sich die Katze namens Excel auch in den Schwanz beißen kann.
Registriert seit: 25.07.2014
Version(en): 2013
Hallo Leute, was mit den alten Dateien geschieht? - Ich dachte dies sei klar, da es ums mischen geht, belegen die "alten" Dateien die durch das Mischen frei gewordenen Plätze. Belegt die alte Datei A_001.mp3 den neuen Platz A_0010.mp3, so muss für die "alte" Datei A_0010.mp3 ein neuer Platz her. Dadurch, das immer 3 Dateien zusammengehören, wird die Möglichkeit des Mischens natürlich eingeschränkt. A_0001.mp3 kann z.B. nicht den A_0009.mp3 annehmen aber 10, 13, 16 usw. Für die A_0002.mp3 sind die Auswahlmöglichkeiten natürlich ebenfalls beschränkt. Diese kann nur Werte wie 5,8, 11, 14 usw. annehmen. Deshalb ja schwierig!
|