Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Speichern nach Kriterien





Frage

Hallo Leute! ich habe mich schon am Anfang unseres Projektes einmal an dieses Forum gewendet und damals wurde mir sehr professionell von nighty geholfen. Jetzt hätte ich noch ein weiteres Problem zu überwinden: Ich habe ein Excel-Dokument so modifiziert das es aus verschiedenen Excel-Doks (die sich alle in einem Ordner befinden) Zeilen kopiert und in das "Hauptdokument" einfügt. Jetzt möchte ich gerne dass es die Excel-Doks je nach Dateiname in unterschiedliche Ordner verschiebt. Also zB. das Dokument aa2007.xls in den Ordner aa\2007 und das Dokument bb2007.xls in den Ordner bb\2007 Dabei sollten natürlich der Text und das Jahr abgefragt werden, dass es später in den Ordner 2008, 2009 und so weiter verschiebt! Dabei habe ich folgenden Code verwendet: For Dateien = 1 To .FoundFiles.Count DateiName = Dir(.FoundFiles(Dateien)) If DateiName <> ThisWorkbook.Name Then Workbooks.Open Filename:=.FoundFiles(Dateien) Dim n As Integer Dim m As Integer Dim q As Integer n = Workbooks(DateiName).Sheets("Tabelle2").Range("A1") - 1 m = ThisWorkbook.Sheets("Tabelle2").Range("A1") q = n - 1 Workbooks(DateiName).Sheets("Tabelle1").Rows("2:" & n).Copy ThisWorkbook.Sheets("Tabelle1").Rows(m & ":" & m) m = m + q ThisWorkbook.Sheets("Tabelle2").Range("A1") = m Workbooks(DateiName).Close SaveChanges:=True End If [b] Laufwerk = "F:\Programm MEVO\Programmieren mit Idee\Kleiderbügel\History\2007\" Name "F:\Programmieren für MEVO\Bügel\" & DateiName As Laufwerk & DateiName[/b] Next Dateien für den Teil in Fettbuchstaben sollte ich nun diese Kriterien haben! Also je nachdem ob aa oder bb etc. und welches Jahr! Bisher habe ich dazu die Funktionen Left und Right verwendet aber das hat nicht so ganz funktioniert, da ich mehrere Kriterien habe!! Ich hoffe mir kann jemand helfen, besonders weil ich als Nichtprogrammierer schon so weit gekommen bin und es schade wäre wenn das PRojekt jetzt daran scheitert!!! Vielen dank für eure HIlfe im Voraus!! mfg der Maturant

Antwort 1 von coros

Hallo Maturant,

nachfolgend mal ein Beispiel, wie man das lösen könnte. Der Dateiname kommt in meinem Beispiel aus Zelle A1.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche

Option Explicit

Sub Dateiname_aufteilen()
Dim Ordner_Jahr As Variant
Dim Ordner_Text As String
Dim DateiName  As String
DateiName = Range("A1")
Ordner_Text = Mid(DateiName, 1, Len(DateiName) - 8)
Ordner_Jahr = Left(Right(DateiName, 8), 4)
MsgBox Ordner_Text
MsgBox Ordner_Jahr
End Sub


Hier wird der Name, z.B. "aa2007.xls" in seine Bestandteile "aa" und "2007" zerlegt und in die Variablen "Ordner_Jahr" und "Ordner_Text" geschrieben. Abschließend werden diese Texte in einer MessageBox angezeigt.

Ich hoffe, das Beispiel hilft Dir bei Deinem Problem weiter.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Maturant

Hallo Oliver!

Vielen Dank für deine schnelle Hilfe!!
Es ist zwar nicht ganz nach was ich gesucht habe, die Funktion "Mid" konnte ich jedoch anderswo super gut einbauen.

Vielen dank also für deine Bemühungen!!

Mfg und noch nen schönen Abend!

der Maturant

Antwort 3 von coros

Hallo Maturant,

und was an der Lösung ist nicht so, wie Du es Dir vorgestellt hast? Das müsste ich schon wissen, um da etwas zu ändern.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: