Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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
Inhaltsverzeichnis

Tabellenblätter "einlesen"

Tabellenblätter "einlesen"
Thomas
hallo Nochmals!
Und jetzt noch:
Im tabellenblatt "Basisdaten" befinden sich in C8 bis c200 Pfad und Dateinamen
das Makro soll prüfen welche der in dieser Liste vorhandenen Dateien vorhanden ist und dann diese Datei(en) öffnen
Danach das Tabellenblatt "Musterherhebungsblatt" kopieren und im worksheet "Auswertung" in das Tabellenblatt mit dem Namen aus der dazupassenden Zelle aus C8 bis C200 einfügen (Der Tabellenblattname ist gleich dem Dateinamen (ohne .Dateiendung)
klingt nicht so schwer, ist für mich alleine aber unlösbar...
AW: Tabellenblätter "einlesen"
18.01.2012 10:05:25
fcs
Hallo Thomas,
hier:
Danach das Tabellenblatt "Musterherhebungsblatt" kopieren und im worksheet "Auswertung" in das Tabellenblatt mit dem Namen aus der dazupassenden Zelle aus C8 bis C200 einfügen
gehen Begriffe durcheinander bzw. hab ich Verständnisfragen.
1. Wo befindet sich das Tabellenblatt "Musterherhebungsblatt"?
In den ggf. zu öffnenden Dateien?
2. Willst du tatsächlich das Tabellenblatt "Musterherhebungsblatt" kopieren oder nur den Zellbereich Daten/Formatierungen in diesem Tabellenblatt?
Wenn Zellbereich:
Ist dieser in allen Dateien identisch z.B. A1:F20 oder variabel?
Sollen nur die Werte oder auch die Zellformatierungen in die Tabellenblätter in "Auswertung" kopiert werden?
3. Was ist "Auswertung" ?
Kann eigentlich kein Worksheet (= Tabellenblatt) sein, sonder muss eine Excel-Datei/Arbeitsmappe "Auswertung.xlsx" oder "Auswertung.xlsm" sein.
4. Befindet sich das Blatt "Basisdaten" in der Arbeitsmappe "Auswertung"?
5. Ist die Mappe "Auswertung" zum Zeitpunkt des Makrostarts die aktive Arbeitsmappe?
Gruß
Franz
Anzeige
Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 11:18:47
Thomas
Hallo Franz!
Danke für Deine Hilfe!
1) in "Beiden" Workbooks, einerseits in den ggf. zu öffnenden Dateien (Worksheet.name = Mustererhebungsblatt), workbook.name= z.B. Hr. Meier, Fr. Müller usw...
und andererseits auch im Auswertungsworkbook (workbook.name = Auswertung) und dort heisst das sheet auch worksheet.name = Musterherhebungsblatt - das dient als "vorlage" für die Tabellenblätter die auch über ein makro jeweils kopiert werden und dann mit dem Namen (z.B. Hr. Meier, Fr. Müller) benannt werden
hmm bin mir nicht sicher ob ich mich verständlich ausgedrückt habe
2. Du has Recht! ich will nicht das Tabellenblatt kopieren sondern nur die Zellen A6 bis x106 (oder falls Zeilen eingefügt werden bis 1 Zeile weniger als die Zeile in der "Summe" steht (aktuell in A107)
3. Beides, Auswertung ist ein Workbook und ein Worksheet (im gleichnamigen Workbook mit der Dateiendung .xlsm)
4. Genau (zumindest das hab ich verständlich gebracht...)
5. Richtig - und soll es danach auch wieder sein (und genauer, das Worksheet "Auswertung" Zelle A1)
Ich hoffe einiges ist jetzt klarer....?
Anzeige
AW: Daten aus Dateien kopieren per Makro
18.01.2012 13:58:44
fcs
Hallo Thomas,
in der hochgeladen Textdatei findest du den Code eines entsprechenden Makros.
https://www.herber.de/bbs/user/78492.txt
Gruß
Franz
Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 17:18:51
Thomas
Hallo Franz!
Vielen Dank - ich glaub es fehlt nur noch ganz wenig....
Ich bekomm einen Fehler:
Fehler-Nr.: 1004
Die Select-Medhode des Range-Objektes konnte nicht ausgeführt werden.
Und zwar bei der Datei aus der die Daten kopiert weren sollen also z.B. "Hr. Meier.xls"
Woran könnte das liegen?
Danke nochmals!
lg Thomas
AW: Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 18:18:24
fcs
Hallo Thomas,
den Fehler kann ich nicht nachvollziehen.
Die einzige Range-Select-Anweisung ist kurz vor Ende der Makroausführung und die ist nach meiner Meinung sogar überflüssig.
Mit meinen Testdateien läuft das Makro unter Excel 2007 jedenfalls ohne Probleme durch.
In welcher Prorammzeile tritt der Fehler denn auf?
Deaktiviere hierzu mal vorübergehnde die Zeile
On Error GoTo Fehler

und starte das Makro.
Gruß
Franz
Anzeige
Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 19:06:10
Thomas
Hallo Franz!
Getan und - schwierig:
Dann bekomm ich ein Fenster mit einem Weißen Kreuzerl auf in rotem Kreis und einfach nur "400" (als überschrift des Fenster ist "Microsoft Visual Basic for Applications"
Wenn ich das Makro mit F8 im einzelschrittmodus durchführen lasse bleibt er irgendwie in der "For-Next" Schleife (oder er durchläuft die 200 mal das hab ich nicht versucht...)?
versteh ich nicht...
Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 18:33:38
Thomas
Hallo Franz!
ich bin dem Fehler noch weiter "Nachgelaufen" und hab folgende Vermutung:
Ich hab's fett geschrieben dort wo die Schleifenabbarbeitung beginnt ....
Option Explicit
Sub Auswertung()
Dim rngName As Range
Dim wbAuswert As Workbook, wksZiel As Worksheet, strZiel As String
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim lngZeile As Long, strQuelle As String, rngQuelle As Range
Dim StatusCalc As Long, strMsgTitel As String
Const strCopy As String = "Mustererhebungsblatt" 'Name des Blatts mit zu kopierenden Daten
On Error GoTo Fehler
If MsgBox("Auswertungsdaten einlesen?", vbYesNo) = vbNo Then GoTo Fehler
strMsgTitel = "Fehlermeldung - Auswertung"
Set wbAuswert = ActiveWorkbook 'Datei "Auswertung.xlsm"
'Makrobremsen lösen
With Application
.EnableEvents = False
StatusCalc = .Application.Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
'Zellen mit den Dateinamen abarbeiten
For Each rngName In wbAuswert.Worksheets("Basisdaten").Range("C8:C200").Cells
'leere Zellen überspringen
If rngName.Value  "" Then
Ich bin mir nicht sicher aber vielleicht ist hier der Hund drin? Es scheint so als ob er  _
keinen Dateinamen übernimmt?, sowohl Basisdaten als auch C8:c200 sind richtig, aber er übernimmt nur "" und deswegen steigt er sofort wieder aus... (Next)
'prüfen, ob Datei vorhanden
strQuelle = VBA.Dir(rngName.Value)
strMsgTitel = "Auswertung - Datei " & rngName.Value
If strQuelle = "" Then
'Datei nicht gefunden
Else
'Quelldatei schreibgeschützt öffnen
Set wbQuelle = Workbooks.Open(Filename:=rngName.Value, ReadOnly:=True)
'Prüfen, ob Blatt mit zu kopierenden Daten vorhanden
If fncCheckSheet(varBlatt:=strCopy, wb:=wbQuelle) = True Then
Set wksQuelle = wbQuelle.Worksheets(strCopy)
'Zu kopierender Bereich
With wksQuelle
'letzte Zeile mit Daten in Spalte A
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zeile mit "Summe" suchen
Do
If .Cells(lngZeile, 1) = "Summe" Or lngZeile 

Anzeige
AW: Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 19:22:13
fcs
Hallo Thomas,
ein Fehler an der Stelle ist völlig unlogisch.
Entweder in den Zellen im Bereich C8:C200 stehen Daten oder keine. Bei leer wird halt nichts gemacht ansonsten geht es weiter mit der Prüfung der Dateinamen. Ein Fehler an dieser Stelle hätter auch nichts mit deiner ursprünglich geschriebenen Fehlermeldung zu tun.
Packe evtl. mal deine Datei in abgespeckter Version (mit nur einem Tabellenblatt, das zuder Dateiliste passt) und eine zu öffnende Datendatei in ein ZIP-File und schicke es an meine E-Mailadresse (findest du hier unter Forums-Seiten---Profile---Profilliste). Dann schaue ich mir das mal an.
Gruß
Franz
Anzeige
Tabellenblätter erstellen mit Makro danach einlese
18.01.2012 11:19:10
Thomas
Hallo Franz!
Danke für Deine Hilfe!
1) in "Beiden" Workbooks, einerseits in den ggf. zu öffnenden Dateien (Worksheet.name = Mustererhebungsblatt), workbook.name= z.B. Hr. Meier, Fr. Müller usw...
und andererseits auch im Auswertungsworkbook (workbook.name = Auswertung) und dort heisst das sheet auch worksheet.name = Musterherhebungsblatt - das dient als "vorlage" für die Tabellenblätter die auch über ein makro jeweils kopiert werden und dann mit dem Namen (z.B. Hr. Meier, Fr. Müller) benannt werden
hmm bin mir nicht sicher ob ich mich verständlich ausgedrückt habe
2. Du has Recht! ich will nicht das Tabellenblatt kopieren sondern nur die Zellen A6 bis x106 (oder falls Zeilen eingefügt werden bis 1 Zeile weniger als die Zeile in der "Summe" steht (aktuell in A107)
3. Beides, Auswertung ist ein Workbook und ein Worksheet (im gleichnamigen Workbook mit der Dateiendung .xlsm)
4. Genau (zumindest das hab ich verständlich gebracht...)
5. Richtig - und soll es danach auch wieder sein (und genauer, das Worksheet "Auswertung" Zelle A1)
Ich hoffe einiges ist jetzt klarer....?
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige