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
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.
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
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.
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.

