Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten übergabe von Subroutine zu Hauptprogram

Daten übergabe von Subroutine zu Hauptprogram
22.01.2004 13:14:45
Urs
Hallo Freaks
Aus einem Ordner möchte ich ich aus allen xls Dateien die Kopfzeile rechts auslesen.
1.) Mit dem Befehl: Workbooks.Open (strPfad & str)
öffne ich die Dateien.
Wie schreibe ich nun den momentanen Dateinamen in die Zelle A2 einer aktiven Datei.
2.) in einer Subroutine lese ich als String die Kopfzeile rechts als: kzr
Wie lautet der Code um krz in der Hauptroutine in Feld B2 auszudrucken?
Danke fürs Mitdenken Urs

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten übergabe von Subroutine zu Hauptprogram
22.01.2004 14:26:31
Roland Hochhäuser
Hallo Urs,
warum erst auslesen und nicht so:

Sub DateinamenUndKopfzeileAuslesen()
With ActiveWorkbook.Sheets(1)
Range("A2") = ThisWorkbook.Name
Range("B2") = .PageSetup.RightHeader
End With
End Sub

Gruß
Roland
Tip ist gut aber ich benötige ein Listing
22.01.2004 14:36:09
urs
Hallo Roland
der Tip ist super, ich will aber ein Listing der beiden Angaben auf neutraler Tabelle (ca 500 Dateien). Jetzt schreibe ich es ja auf jedes gerade aktuelle Blatt!
Gruss urs
AW: Tip ist gut aber ich benötige ein Listing
22.01.2004 14:45:56
Roland Hochhäuser
Hallo Urs,
a) hattest du geschrieben: . . . 1.) Mit dem Befehl: Workbooks.Open (strPfad & str) öffne ich die Dateien. Wie schreibe ich nun den momentanen Dateinamen . .
Also bin ich davon ausgegangen, dass du dir die Schleife zum Öffnen der von dir gewollten Dateien schon geschnürt hast. Ohne deren Kenntnis ist es auch nicht möglich, ein "Listing" zu erstellen bzw. in einen bereits bestehenden Code einzuarbeiten.
b) behauptest du: Jetzt schreibe ich es ja auf jedes gerade aktuelle Blatt!
Das stimmt nicht, die Angaben werden nur auf das erste Blatt der gerade geöffneten Arbeitsmappe geschrieben, also nicht auf jedes gerade geöffnete Blatt.
Gruß
Roland
Anzeige
Sorry für meine halbe Information!!!
22.01.2004 15:15:10
urs
Hallo Roland
Du hast recht mehr und detaillierter schreiben wäre besser gewewsen. Ich versuche nun selbst mit Deinem Input weiter zu kommen. Erste Tests waren super.
Sonst melde ich mich noch einmal.
Schönes Wochenende
Gruss urs
Danke für die Rückmeldung
22.01.2004 15:22:18
Roland Hochhäuser
. . . und wenns irgendwo noch klemmen sollte, wirst du diesen Thread sicher finden :-)
Ebenfalls ein
Schönes Wochenende
Roland Hochhäuser
AW: Danke für die Rückmeldung
23.01.2004 10:16:36
urs
Hallo Roland
wie du siehst, habe ich den Thread wieder gefunden.
"Einfachheitshalber" habe ich den Code ins Forum gestellt.
Wo ich Fragen habe, habe ich ein Fragezeichen an den Zeilenanfang gestellt.
Die Dateien werden geöffnet.
Wie vermneide ich vom Programm her die Aktualisierung der geöffneten Dateien?
Warum wird der Dateiname und Kopfrechts nicht in die Zellen geschrieben? Fehlt es am
Datentransfer?
Die Subroutine Newxls hier nicht abgebildet, läuft eigentlich gut. Wie kann ich dort die
Frage ob eine vorhandene Datei überschrieben werden soll zum vornherein abschmettern?
Ich hoffe ich habe jetzt mein Problem deutlicher angegeben. Würdest Du mal reinschauen?
Vielen Dank Urs
--------------------------------

Sub Aenderungsindex()
'Workbooks.Add
Dim aRow As Integer, Rowb As Integer, Datei As String, Kopfr As String
Call Newxls  ' Öffnet neue Arbeitsmappe
aRow = 3
Dim str As String, strPfad As String
strPfad = "R:\1_intern\Tabellen in Arbeit\Macro\Ordner_für_Serienmacros\"
str = Dir(strPfad & "*.xls")
While str <> ""
?      Workbooks.Open (strPfad & str,[UpdateLinks:=0]) '????? Was ist hier Falsch?????
Call DateinamenUndKopfzeileAuslesen
ActiveWorkbook.Close SaveChanges:=False   'False weil nichts verändert werden soll
Windows("Auswertung_Indexvergleich.xls").Activate
?         Cells(aRow, 1) = Datei        '????? Was ist hier falsch es wird nichts eingetragen ?????
Cells(aRow, 2) = Kopfr
aRow = aRow + 1
str = Dir()
Wend
End Sub

'--------------------------------------------------------------------------------------------

Sub Newxls()
' Newxls öffnet eine Datei, beschriftet Kolonnen und Fusszeile und wird gespeichert
' Makro am 22.01.2004 von Urs erstellt
Workbooks.Add Template:="\\server17\stae$\Vorlagen\Arbeitsmappe.xlt"
Call Datum_Seiten_Datei
Range("A2").Select
ActiveCell.FormulaR1C1 = "Dateiname"
Range("B2").Select
ActiveCell.FormulaR1C1 = "Änderungsindex"
Range("C2").Select
ActiveCell.FormulaR1C1 = "Dateiname"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Änderungsindex"
Columns("A:D").Select
Selection.ColumnWidth = 30
ActiveWorkbook.SaveAs Filename:= _
"R:\1_Intern\Tabellen in Arbeit\Macro\Auswertung_Indexvergleich.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
?        ReadOnlyRecommended:=False, CreateBackup:=False  '???? Ich will Überschreiben
End Sub

'---------------------------------------------------------------------------------------------

Sub DateinamenUndKopfzeileAuslesen()
Dim Datei As String, Kopfr As String
With ActiveWorkbook.Sheets(1)
Datei = ThisWorkbook.Name
Kopfr = .PageSetup.RightHeader
End With
End Sub

Anzeige
AW: Danke für die Rückmeldung
23.01.2004 11:37:37
Roland Hochhäuser
Hallo Urs,
oha, na dann wollen wir mal . . .
Nochmals zur Aufgabe:
- willst du in nur EINER neuen Datei alle Dateinamen und rechten Kopfzeilen der anderen Dateien auflisten (so hatte ich es bisher verstanden)? Wenn ja, sollen die Angaben in den Spalten A und B untereinander gelistet werden?
- willst du für jede existierende Datei je eine neue Datei nach Maßgabe einer bestehenden Vorlage erschaffen, in der der Dateiname und die rechte Kopfzeilen der existierende Dateien geschrieben wird (genau das macht nämlich der wiederkehrende Aufruf deiner Newxls)?
Dann müsstest du diese neue Datei natürlich unter einem Namen speichern und schließen, bevor du die nächste aufmachst. Wirf außerdem alle selects aus der Newxls, die sind überflüssig und gehen voll auf die Performance; pack die Beschriftungen einfach in einen With-Rahmen.
Zum Aenderungsindex:
Was soll das Makro Datum_Seiten_Datei machen????
Ich persönlich arbeite so wenig wie möglich mit Aufrufen anderer Makros, da das Chaos durch mitgeschleppte oder verlorene Variablen und Konstanten und deren Werte irgendwann einfach nicht mehr zu händeln ist. Poste die doch auch noch.
Mit Application.EnableEvents = False vermeidest du die Aktualisierung der geöffneten Datei.
strPfad & str heißt R:\1_intern\Tabellen in Arbeit\Macro\Ordner_für_Serienmacros\*.xls
Du musst in dem String entweder eine weitere Variable integrieren (sonst sucht das Makro nur genau nach der Datei *.xls) oder du gehst das mit einer Objektauflistung an, die du anschließend mit einer for each - next - Schleife durchgehst. So jedenfalls kann das nichts werden.
Eingetragen wird nichts, weil du die Strings Datei und Kopfr aus einem Makro holen willst, das zu diesem Zeitpunkt bereits nicht mehr läuft. Dann stehen dessen Variablen und Werte natürlich auch nicht mehr zur Verfügung.
Zusammenfassend: Stell mal klar, was du willst (siehe Strichaufzählung) und dann sehen wir weiter.
Gruß
Roland
Anzeige
Jetzt mal alles!
23.01.2004 14:46:23
urs
Hallo Roland
danke für Deinen Einsatz. Vielleicht beschreibe ich zuerst das Problem und das Ziel der Aufgabe.
Ich habe 2 Ordner, die je ca 500 Dateien enthalten. Diese Dateien sollten insofern identisch sein, dass im einen Ordner nur Dateien mit Werten gespeichert sind und im andern Ordner sind die Dateien mit Querverweisen abgelegt. In der Kopfzeile rechts steht bei jeder Datei versteckt der Änderungsindex. Sind beide von gleichem Stand, so sind die Kopfzeilen rechts identisch. Leider sind diverse Speicherungen unterlassen worden, sodass ich jetzt mit dem Programm feststellen will:
1.) welche Dateien zeigen Unterschiede
2.) welche Dateien sind nur in diesem oder jenem Ordner gespeichert
Ich habe den Code schon optimiert:
1.) Macro Datum_Seiten_Datei weggelassen (Dies ist ein "nice to have" für jedes neue Excelblatt)
2.) Macro DateinamenUndKopfzeile direkt integriert
Mit dem vorhandenen Code von mir wollte ich eigentlich ersteinmal:
a) Start von Macro Änderungsindex
b) eine Neue Arbeitsmappe mit Macro Newxls öffnen, die Kolonnen beschriften und als Datei Auswertung_Indexvergleich abspeichern, wobei eine schon vorhandene Datei gelöscht werden soll! wie muss ich Save As ergänzen, wenn ich überschreiben will??? Zurück zu Macro Änderungsindex
c) Aufrufen der Dateien und Wechesel zu Macro DateinamenUndKopfzeileAuslesen In die beiden Kolonnen A und B mit den Dateien aus einem der Ordner füllen. Wenn's funktionierte hätte ich in C und D dasselbe mit dem andern Ordner gemacht.
Zur Zeit tauchen folgende Störungen auf:
- Frage ob beim Speiern unter Auswertung_Indexvergleich.xls überschrieben werden soll?
- Nachwievor wird beim öffnen der Dateien aus den Ordnern gefragt ob aktualisiert werden soll. NEIN
- Der Dateiname wird in Kolonne A und C mit der Macrodatei eingesetzt.
Erfolg:
in den Kolonnen B und D werden alle Kopfzeilen rechts Werte eingetragen.

Zu den Strichfragen.
-Ich öffne EINE neue Datei um darin in den Kolonnen A und B die Resultate Dateiname und Kopfrechts zu schreiben und in C und D die Resultate des 2. Ordners.

Code optimiert:

Sub Aenderungsindex()
Dim aRow As Integer, Rowb As Integer, Dateikopfr As String, Kopfr As String
Call Newxls  ' Öffnet neue Arbeitsmappe
aRow = 3
Dim str As String, strPfad As String
strPfad = "R:\1_intern\Tabellen in Arbeit\Macro\Ordner_für_Serienmacros\"
str = Dir(strPfad & "*.xls")
While str <> ""
Workbooks.Open (strPfad & str)
Application.EnableEvents = False
With ActiveWorkbook.Sheets(1)
Dateikopfr = ThisWorkbook.Name
Kopfr = .PageSetup.RightHeader
End With
ActiveWorkbook.Close SaveChanges:=False   'False weil nichts verändert werden soll
Windows("Auswertung_Indexvergleich.xls").Activate
Cells(aRow, 1) = Dateikopfr
Cells(aRow, 2) = Kopfr
aRow = aRow + 1
str = Dir()
Wend
'   aRow = 3
'   strPfad = "Q:\Produkte\Technik\Weissnorm\Datenblätter\"
'   str = Dir(strPfad & "*.xls")
'   While str <> ""
'      Workbooks.Open (strPfad & str)
'      'Application.EnableEvents             ??????  Hier bekomme ich eine Störung
'      With ActiveWorkbook.Sheets(1)
'        Dateikopfr = ThisWorkbook.Name
'        Kopfr = .PageSetup.RightHeader
'      End With
'      ActiveWorkbook.Close SaveChanges:=False   'False weil nichts verändert werden soll
'      Windows("Auswertung_Indexvergleich.xls").Activate
'         Cells(aRow, 3) = Dateikopfr
'         Cells(aRow, 4) = Kopfr
'         aRow = aRow + 1
'      str = Dir()
'   Wend
End Sub

'--------------------------------------------------------------------------------------------

Sub Newxls()
' Newxls öffnet eine Datei, beschriftet Kolonnen und Fusszeile und wird gespeichert
' Makro am 22.01.2004 von Urs erstellt
Workbooks.Add Template:="\\server17\stae$\Vorlagen\Arbeitsmappe.xlt"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Dateiname"
Range("B2").Select
ActiveCell.FormulaR1C1 = "Änderungsindex"
Range("C2").Select
ActiveCell.FormulaR1C1 = "Dateiname"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Änderungsindex"
Columns("A:D").Select
Selection.ColumnWidth = 30
ActiveWorkbook.SaveAs Filename:= _
"R:\1_Intern\Tabellen in Arbeit\Macro\Auswertung_Indexvergleich.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Anzeige
Noch mal Rückfrage
23.01.2004 16:21:05
Roland Hochhäuser
Hallo Urs,
mit meinen Worten: du willst ein Makro, das eine Datei mit dem Namen Auswertung_Indexvergleich kreiert, dort
- in den Spalten A und B die Dateinamen und rechten Kopfzeilen der Excelmappen aus Ordner 1 untereinander einspeist,
- in den Spalten C und D die Dateinamen und rechten Kopfzeilen der Excelmappen aus Ordner 2 untereinander einspeist und last but not least
- eine bereits bestehende Datei mit dem Namen Auswertung_Indexvergleich löscht?
Wenn ich das jetzt richtig erfasst haben sollte eine weitere Frage: wird es auch künftig nur die beiden Ordner á ca. 500 Dateien geben oder können noch weitere Ordner hinzukommen?
Wenn das alles so zutrifft, wie ich es beschrieben habe, schlage ich folgendes vor:
1. Überlege doch noch mal kritisch, ob du die Auswertung_Indexvergleich jedesmal wirklich löschen willst; es fehlt dir ja dann die Vergleichsmöglichkeit zum letzten erfassten Stand. Es wäre z.B. kein Thema, jeweils eine neue Auswertung_Indexvergleich mit einem Datums- und oder Uhrzeitzusatz zu schaffen und abzuspeichern, dann bräuchte die alte nicht gelöscht zu werden und die Informationen stünden auch künftig noch zur Verfügung (wer weiss wozu mans braucht!?)
2. sehe ich nicht einen Grund, die Jobs auf mehrere Makros aufzuteilen, das geht viel besser in einem einzigen.
3. würde ich dir in diesem Falle einen Makrovorschlag unterbreiten, aber bevor ich mich dransetze, bräuchte ich die Antworten (auch was das jetzt weggelassene Datum_Seiten_Datei bewirken sollte). Wenn du schon eine Vorstellung hast, ob und nach welchem Kriterium die Auflistungen noch sortiert werden sollen, könnte das auch eingearbeitet werden.
Gruß
Roland
Anzeige
AW: Noch mal Rückfrage
26.01.2004 09:42:42
urs
Hallo Roland
Vielen Dank für Deinen Effort.
Du hast es mit eigenen Worten gut ausgedrückt und fragst mich warum ich die bestehende Datei löschen würde. Nun dies muss nicht unbedingt sein.
Ich denke, dass dieser Ordnervergleich weitere Anwendungen finden wird, und bin daran interressiert dieses Programme vielseitig zu gestalten.
Zu Deinen drei Vorschlägen:
1. Dein Vorschlag gefällt mir. Obwohl ich mir bei dieser im Moment gestellten Aufgabe
den Nutzen noch nicht sehe.
2. "All in one" ist ok. (früher hiess es: gliedere durch Unterprogramme)
3. Ja, die Auflistung bis jetzt ist unübersichtlich. Eigentlich kommt nun erst der Aufräumteil des Programms.
Alle gefundenen Duplikate mit Ai =Cj UND Bi=Dj sollen nach Blatt 2 verschoben werden
Die übereinstimmenden Datensätze sollen in der gleichen Zeile stehen. (Sind ja ok)
Alle Datensätze mit Ai=Cj UND Bi<>Dj sollen jeweils in der gleichen Zeile stehen.
Datensätze mit Ai<>Cj sollen jeweils in einer einzelnen Zeile stehen.
So habe ich am Schluss eine Liste mit den zu bearbeitenden Dateien.
a) Dateien mit verschiedenem Änderungsstand. (die Zellen A,B,C,D sind belegt)
b) Dateien die nur in einem der beiden Ordner vorkommen.(die Zelen A,B oder C,D sind
belegt)
Blatt 1 enthält am Schluss alle zu bearbeitenden Datensätze.
Blatt 2 enthält am schluss alle übereinstimmenden Datensätze.

Warum ich Datum_Seiten_Datei weglasse:
Dies ist ein unabhängiges Problem:
Eigentlich sollte bei mir jede neue Exceldatei diese Grundeinstellung mitbringen.
Ebenso sollte jede neue Exceldatei die Grundeinstellung
Crtl + q = ActiveCell.PasteSpecial xlPasteFormulas
mitbringen. Wo kann man solche generellen Wünsche effektiv versorgen?
Ich werde mich im Laufe des Nachmittags mit Deinem Programmvorschlag vom 24.01.04 auseinandersetzen.
Gruss urs
Anzeige
AW: Jetzt mal alles!
24.01.2004 22:18:57
Roland Hochhäuser
Hallo Urs,
mach mal eine neue Tabelle, lösche dort alles bis auf das Blatt "Tabelle1", speicher das gute Stück ab und impf es mal mit folgendem Makro (die Pfade sind ggfs. anzupassen):
Option Explicit

Sub NamenUndKopfzeilenListen()
Dim objFSO As Object, strPfad1 As String, strPfad2 As String, i As Integer
Set objFSO = CreateObject("scripting.filesystemobject")
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.DisplayAlerts = False
.EnableEvents = False
End With
ActiveWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
'#### oder zunächst abspeichern unter anderem Namen statt direkt zu löschen
'ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & _
'Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".", 1) - 1) & _
'" " & " vom " & Format(Date, "dd.mm.yyyy") & " um " & Format(Time, "hh.mm") & " Uhr.xls"
Sheets(1).Delete
With Sheets(1)
.Range("A1") = "Dateiname"
.Range("B1") = "Änderungsindex"
.Range("C1") = "Dateiname"
.Range("D1") = "Änderungsindex"
.Name = "erstellt am " & Format(Date, "dd.mm.yy") & " " & Format(Time, "hh.mm") & " Uhr"
End With
strPfad1 = InputBox("Geben Sie bitte den ersten auszulesenden Ordner ein", Default:="R:\1_intern\Tabellen in Arbeit\Macro\Ordner_für_Serienmacros\")
With Application.FileSearch
.LookIn = strPfad1
.SearchSubFolders = False
.Filename = "*.xls"
.Execute
End With
For i = 1 To Application.FileSearch.FoundFiles.Count
Application.StatusBar = "Die " & i & ". von insgesamt " & Application.FileSearch.FoundFiles.Count & " Mappen im Verzeichnis " & strPfad1 & " wird eingelesen"
On Error Resume Next
Workbooks.Open Application.FileSearch.FoundFiles(i)
With ActiveWorkbook
.DisplayAlerts = False
.UpdateLinks = xlUpdateLinksNever
End With
ThisWorkbook.Sheets(1).Range("A" & i + 1) = ActiveWorkbook.Name
ThisWorkbook.Sheets(1).Range("B" & i + 1) = ActiveWorkbook.Sheets(1).PageSetup.RightHeader
ActiveWorkbook.Close SaveChanges:=False
Next
strPfad2 = InputBox("Geben Sie bitte den zweiten auszulesenden Ordner ein", Default:="R:\1_intern\Tabellen in Arbeit\Macro\Ordner_für_Serienmacros\")
With Application.FileSearch
.LookIn = strPfad2
.SearchSubFolders = False
.Filename = "*.xls"
.Execute
End With
For i = 1 To Application.FileSearch.FoundFiles.Count
Application.StatusBar = "Die " & i & ". von insgesamt " & Application.FileSearch.FoundFiles.Count & " Mappen im Verzeichnis " & strPfad2 & " wird eingelesen"
Workbooks.Open Application.FileSearch.FoundFiles(i)
With ActiveWorkbook
.DisplayAlerts = False
.UpdateLinks = xlUpdateLinksNever
End With
ThisWorkbook.Sheets(1).Range("C" & i + 1) = ActiveWorkbook.Name
ThisWorkbook.Sheets(1).Range("D" & i + 1) = ActiveWorkbook.Sheets(1).PageSetup.RightHeader
ActiveWorkbook.Close SaveChanges:=False
Next
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.DisplayAlerts = True
.EnableEvents = True
End With
Set objFSO = Nothing
End Sub

Feedback wäre nett
Gruß
Roland
Anzeige
Wochenende & Bedenkzeit
26.01.2004 07:43:54
urs
Hallo Roland
ich habe privat keinen Internet Anschluss, darum habe ich erst heute morgen Deine Zeilen lesen können.
Im allgemeinen lasse ich meine Helfer nicht warten.
Ich werde mir also jetzt Deine beiden Beiträge zu Gemüte führen und mich wieder melden.
Bis bald
Gruss Urs
Unbekannt
26.01.2004 10:59:57
urs
Hallo Roland
bei einer Schnellanwendung Deines Programmes ergab sich bei folgenden Zeilen eine Fehlermeldung:
.UpdateLinks = xlUpdateLinksNever
xlUpdateLinksNever ===> Fehlermeldung: Variable nicht definiert
Wo klemmts, ist meine Excelversion älter als Deine?
Gruss Urs
AW: Unbekannt
26.01.2004 11:52:54
Roland Hochhäuser
Hallo Urs,
kann sein (Excel 2000 habe ich nicht mehr) dann kommentier die beiden Zeilen einfach aus und versuche es mal so.
Gruß
Roland
Anzeige
AW: Unbekannt
26.01.2004 14:07:16
urs
Hallo Roland
ich habe die Zeilen kommentiert und das Programm laufen lassen. Mühsam aber es ging.--
Bin dann auf die Idee gekommen mit dem Macrorecorder in den "Optionen" unter "Bearbeiten" das Feld "Aktualisieren von automatischen Verknüpfungen bestätigen" zu deaktiviern, um den Code zu erhalten.
Befehl: Application.AskToUpdateLinks = False
Ich habe dies bei den Applikationsdefinitionen, bei den entsprechenden Aufrufen und am Schluss bei der Rückstellung auf =True eingesetzt.
Es funktioniert.
Ich versuche mich nun mit dem Auswerten der Tabelle, wie ich es Dir als Antwort auf Dein "Noch eine Rückfrage" geschildert habe.
Für Tips stets offen
grüsst Dich urs
Anzeige
Mühsam ernährt sich das Eichhörnchen
26.01.2004 14:30:42
Roland Hochhäuser
Hallo Urs,
als "Test" hatte ich bei mir die komplette Herber-CD (2.200 Dateien) eingelesen, dazu habe ich mit einem durchschnittlichen Rechner fast 10 Min. gebraucht. Ist sicher mühsam, aber besser als zu Fuß.
Zu deinen weiteren Anmerkungen: "2. "All in one" ist ok. (früher hiess es: gliedere durch Unterprogramme)" => Das ist auch meine Meinung, nur bei der Aufgabenstellung geht es in einem Arbeitsgang wirklich schneller.
. . . "Alle Datensätze mit Ai=Cj UND Bi<>Dj sollen jeweils in der gleichen Zeile stehen.
Datensätze mit Ai<>Cj sollen jeweils in einer einzelnen Zeile stehen.
So habe ich am Schluss eine Liste mit den zu bearbeitenden Dateien.
a) Dateien mit verschiedenem Änderungsstand. (die Zellen A,B,C,D sind belegt)
b) Dateien die nur in einem der beiden Ordner vorkommen.(die Zelen A,B oder C,D sind
belegt)
Blatt 1 enthält am Schluss alle zu bearbeitenden Datensätze.
Blatt 2 enthält am schluss alle übereinstimmenden Datensätze" . . .
Bisher war weder von einer Weiterverarbeitung noch von 2 Blättern die Rede, ist aber nur konsequent. Wenn du das nicht alleine sortiert bekommst, kannst du mich gerne noch mal ansprechen. Dazu würde ich ein weiteres (neues) Makro empfehlen und die erforderlichen Routinen nicht in das bestehende einbinden wollen. Die entsprechenden If - Then - Bedingungen hast du ja schon formuliert.
Viel Erfolg
Roland

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige