Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kniffliges Dateien mischen
#1
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!
Antworten Top
#2
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
Antworten Top
#3
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. Wink

Gruß Uwe
Antworten Top
#4
Hallo Uwe,

oder, es ist wie immer, Männer verstehen die Frauen nicht. Wink

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
Antworten Top
#5
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
Antworten Top
#6
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.
Antworten Top
#7
Hallo Kathrin,

leider keine neuen Erkenntnisse.

Definier bitte was für Dich "Zufallsprinzip" bedeutet.
Gruß Atilla
Antworten Top
#8
Hallo Kathrin,

so sieht die Tabelle aus:

Audiodateien

ABCD
1OriginalnameName aktuellhttp://www.clever-excel-forum.de/Thread-Kniffliges-Dateien-mischen
2A_0001.mp3A_0001.mp3
3A_0002.mp3A_0002.mp3Doppelklick in Spalte B benennt Dateien in 3-Blöcken zufällig um
4A_0003.mp3A_0003.mp3Doppelklick in Spalte A benennt Dateien wieder nach Originalnamen um
5A_0004.mp3A_0004.mp3
6A_0005.mp3A_0005.mp3
98A_0097.mp3A_0097.mp3
99A_0098.mp3A_0098.mp3
100A_0099.mp3A_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


.xls   Kniffliges Dateien mischen.xls (Größe: 33,5 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • kathrin-Flint
Antworten Top
#9
Hi, Kathrin,

(03.08.2014, 21: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.
Antworten Top
#10
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!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste