Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren von Bereichen mit vorgegebener Liste

Kopieren von Bereichen mit vorgegebener Liste
23.03.2007 13:17:00
Bereichen
Hallo Zusammen,
zuerst möchte ich mich dafür entschuldigen, dass ich manchmal nicht sofort auf eure Vorschläge reagiere, da ich öfters unterwegs bin und dann kein Internetanschluss habe. Ich bemühe mich jedoch, jedem der einen Beitrag schreibt, einer Antwort zu schreiben, ob dass Ganze funktioniert hat bzw. einfach um sich zu bedanken. Danke nochmal an Alle für die tolle Unterstützung ;)
Jetzt habe ich folgendes Anliegen (eigentlich dass komplizierteste aller meiner bisherigen Fragen):
Ich habe eine Arbeitsmappe mit einem Bereich A1:G100 in Tabelle1, der mit Formeln unterlegt ist. In A1 steht der Dateiname auf der der Bereich zugreift, um sich die Daten zu holen.
Im zweiten Tabellenblatt steht in A1:A100 eine Liste an Dateinamen, die sich ändern kann. In der Liste stehen zwischen 1 und 100 Einträge.
Ich würde gerne einen Makro haben, der zuerst die Liste in Tabelle 2 durchgeht um die Anzahl der Dateinamen festzustellen (in der Beispieldatei: 27)
Im zweiten Schritt soll dieser Makro den Bereich A1:G100 in der Tabelle 1 nach unten kopieren, und zwar für jeden Dateiname aus der Liste Tabelle 2 soll ein Bereich dann vorhanden sein (In Tabelle1: Bestehender Bereich + 26 kopierte Bereiche = 27 Bereiche untereinander)
Im dritten Schritt soll der Makro in jedem Bereich der Dateiname in der ersten obersten linken Zelle des Bereichs einfügen (also Tabelle2 A1 in Tabelle1 A1, Tabelle2 A2 in Tabelle1 A101 usw.) so dass die Formeln sich automatisch ändern und dann aus der entsprechenden Datei die Daten rausliesst.
Anschliessend alle Zeile 1:10000 kopieren: Werte einfügen.
Weiter sollen alle Zeilen in Tabelle 1 gelöscht werden falls in Spalte G Zelle ="" oder Zelle="Rückstellung")
Datei: https://www.herber.de/bbs/user/41262.xls
Danke
Salim

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Bereichen mit vorgegebener Liste
24.03.2007 11:53:43
Bereichen
Hallo Salim,
hier mein Lösungsvorschlag
Die Namen der Tabellen im Code muss du ggf. anpassen.
Gruß
Franz
Sub Test()
Dim wksDateien As Worksheet, wksFormeln As Worksheet
Dim rngFormeln As Range, AnzahlDateien As Integer, Datei As Integer
Dim Zeilen As Long, Zeile As Long
Set wksFormeln = Worksheets("Tabelle1")
Set wksDateien = Worksheets("Tabelle2")
Set rngFormeln = wksFormeln.Range("A1:G100")
Zeilen = rngFormeln.Rows.Count 'Anzahl Zeilen im Formelblock
'Anzahl Dateien
With wksDateien
AnzahlDateien = .Cells(.Rows.Count, 1).End(xlUp).Row 'Letzte ausgefüllte Zeile in Spalte A
End With
Application.Calculation = xlCalculationManual 'Formelberechnung manuel
Application.ScreenUpdating = False
With wksFormeln
'Formelbereich kopieren
For Datei = 1 To AnzahlDateien - 1
rngFormeln.Copy Destination:=.Cells(Datei * Zeilen + 1, 1)
Next
'Dateinamen eintragen
For Datei = 1 To AnzahlDateien
.Cells((Datei - 1) * Zeilen + 1, 1).Value = wksDateien.Cells(Datei, 1).Value
Next
Application.Calculation = xlCalculationAutomatic 'Formelberechnung automatisch
.Calculate
'Formeln durch Werte ersetzen
.Range(.Cells(1, 1), .Cells(AnzahlDateien * Zeilen, 7)).Value _
= .Range(.Cells(1, 1), .Cells(AnzahlDateien * Zeilen, 7)).Value
'Zeilen prüfen in Spalte G, ggf. Zeile löschen
Application.Calculation = xlCalculationManual 'Formelberechnung manuel
For Zeile = AnzahlDateien * Zeilen To 1 Step -1
Application.StatusBar = "Prüfe Zeile " & Zeile
If .Cells(Zeile, 7).Value = "" Or .Cells(Zeile, 7).Value = "Rückstellung" Then
.Rows(Zeile).Delete shift:=xlShiftUp
End If
Next
Application.StatusBar = False
Application.Calculation = xlCalculationAutomatic 'Formelberechnung automatisch
.Activate
.Cells(1, 1).Select
End With
Application.ScreenUpdating = True
MsgBox "Fertig!"
End Sub

Anzeige
AW: Kopieren von Bereichen mit vorgegebener Liste
26.03.2007 12:29:00
Bereichen
Vielen Dank Franz!
Hat dir wahrscheinlich viel Mühe gekostet! Ich werde es gleich testen ;)
Frage: ist mit diesem Makro sichergestellt, dass die Daten auch aus geschlossenen Dateien herausgelesen werden können?
Gruss
Salim
AW: Kopieren von Bereichen mit vorgegebener Liste
26.03.2007 14:53:39
Bereichen
Hallo Salim,
die Übernahme der Daten aus geschlossenen Dateien funktioniert damit vermutlich nicht. Dazu müsste wohl in den kopierten Formeln jeweils der Dateiname (bzw. Pfad und Dateiname) ersetzt werden. Viele Excelfunktionen z.B. INDIREKT funktionieren nur wenn die entsprechenden Dateien geöffnet sind.
Man könnte aber auch per Makro die entsprechenden Dateien kurz öffnen und nach dem Ersetzen der Formeln duch die Werte wieder schließen.
Gruß
Franz
Anzeige
AW: Kopieren von Bereichen mit vorgegebener Liste
26.03.2007 18:41:00
Bereichen
Hallo Franz,
dein Makro habe ich getestet, es funktioniert prima!
Ich habe aber seit meiner Anfrage noch gewisse Zeilen und Spalten hinzugefügt, habe dann versucht das Makro anzupassen, leider ohne Erfolg ;(
Das Formelbereich ist jetzt A3:W172 (Tabelle heisst "Quelle") und der Bereich mit Dateinamen A2:A101 (Tabelle heisst "Dateien"). Alle Formeln eines Bereiches sind mit den Dateinamen (der in der ersten Zelle oben links steht) verknüpft.
Es wäre die letzte Bitte, mir den Code anzupassen, und wenn du weisst wie es geht, dass die Daten aus geschlossenen Dateien herausgelesen werden, das wäre einfach toll!
Das Einzige was wirklich wichtig ist, ist die Reihenfolge der Mechanismen zu gewährleisten:
1. Liste der Dateinamen durchgehen und Anzahl festlegen
2. Bereiche untereinander kopieren
3. Dateinamen einfügen
4. Formeln berechnen (Auslesen der Daten aus den gschlossenen Dateien)
5. Tabellenblatt "Quelle" kopieren und Werte einfügen
6. Zeilen löschen
Eigentlich schafft dein Makro das alles bis auf den Zugriff auf den geschlossenen Dateien.
Vielen herzlichen Dank
Gruss
Salim
Anzeige
AW: Kopieren von Bereichen mit vorgegebener Liste
26.03.2007 22:47:00
Bereichen
Hallo Salim,
ich hab die erforderlichen Änderungen in das Makro eingebaut.
Ich hab auch das Makro auch so angepasst, dass es die Formel mit Verweisen auf die geschlossenen Dateien aktualisieren kann. Damit dies ordentlich funktioniert müssen deine Formeln mit Verweisen auf die geschlossenen Dateien alle mit absoluten Zellbezügen arbeiten, sonst gibt es Fehler beim Kopiervorgang.
Ich hab in der Zip-Datei deine Ursprungsdatei so angepasst, dass sie die neuen Tabellennamen und Zellbereiche hat. Außerdem hab ich 3 Testdatendateien eingefügt, mit denen ich das Makro getestet hab.
Schau die bitte die Beispielformeln an. Nach diesem Schema muss du deine Originalformeln anpassen.
Leider benötigt das Makro jetzt sehr viel Zeit, da beim Erstzen der Dateinamen in den Formeln immer gleich der Wert aus der geschlossenen Datei geholt wird.
https://www.herber.de/bbs/user/41409.zip
Gruß
Franz
Anzeige
AW: Kopieren von Bereichen mit vorgegebener Liste
27.03.2007 08:33:00
Bereichen
Vielen herzlichen Dank für die Mühe!
Ich werde es gleich ausführlich testen und dir dann einen Feedback geben!
Danke und Gruss
Salim
AW: Kopieren von Bereichen mit vorgegebener Liste
28.03.2007 15:36:01
Bereichen
Hallo Franz,
wollte mich nochmal herzlich bedanken!
Dein Makro funktioniert einwandfrei!
Frage: Wie hoch schätzt du den Aufwand um von Null VBA-Kenntnisse auf einem Niveau zu kommen, der es ermöglicht solche Geschichten zu basteln?
Danke nochmal
Gruss
Salim
AW: Kopieren von Bereichen mit vorgegebener Liste
26.03.2007 18:45:00
Bereichen
Hallo Franz,
noch einen Hinweis:
im Moment greifen die Formeln in den jeweiligen Bereichen auf den Dateinamen (d.h. ohne Pfad). Soll ich dass möglicherweise ändern, damit ein Makro die Datei überhaupt findet?
Wie sieht so eine Verknüpfung aus? Ich habe es bereits ausprobiert, wieder ohne Erfolg ;(
Gruss
Salim
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige