Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenkopie mit ComboBox & GESCHLOSSENEN Mappen?

Datenkopie mit ComboBox & GESCHLOSSENEN Mappen?
13.07.2004 11:15:56
Stephan
Hallo!
Mittels Holger's Hilfe (Danke Holger!) ist jetzt endlich die Möglichkeit gegeben, Daten über eine Combo Box aus einer fremden Datei zu kopieren.
Ein Problem ist dabei aber neu aufgetaucht.
Die relevanten Mappen sind als Excel-Datei (gepackt) auf dem Server:
https://www.herber.de/bbs/user/8447.zip
Handhabung:
Zuerst die "Kalk1", dann "Center" & "Rear" öffnen. Nun kann auf dem Blatt "Haupt" in der "Kalk1.xls" in den ComboBoxen ein Status gewählt werden, der Daten auf das "Ergebnis"-Blatt in der "Kalk1" kopiert.
Mein Problem ist jetzt, das immer unbedingt alle drei Dateien geöffnet sein müssen, damit auf "Kalk1" eine Auswahl erfolgen kann!
Da ich nicht immer die "Center"- & "Rear"-Dateien offen haben kann, weil es im endgültigen Projekt ziemlich große und speicherintensive Dateien sind, brauche ich dafür eine andere Lösung.
1. Gedanke:
Ist es möglich, das ganze so zu verändern, das die "Center"- & "Rear"-Dateien nicht geöffnet sein müssen?
2. Gedanke:
Oder, falls der erste nicht möglich ist, das sich die Datei automatisch bei Auswahl in der ComboBox kurz öffnet, die Daten kopiert, und danach sofort wieder autom. schließt? Oder so ähnlich...
3. Gedanke:
Das ganze ein wenig statischer machen, indem man die Combo Boxen von vornherein mit festen Werten füllt, z.B. "Center (1)", "Center (2)", "Center (2)". Diese dann mit dem jeweiligen Blatt fest verknüpft. Sollte ein Blatt noch nicht da sein (Das ganze soll ja erweiterbar für die Zukunft sein, sprich "Center (x)"), müsste der Fehler einfach in einer MsgBox mit einem Hinweis abgefangen werden.
Soooo, das ist glaubich viel Stoff für's erste, und vor allem viel von mir von euch verlangt. Ich hoffe ihr könnt mir trotzdem wie so gut und häufig in der letzten Zeit) helfen.
mfg S.

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenkopie mit ComboBox & GESCHLOSSENEN Mappen?
Holger
Hallo Stephan
Habe noch was gefunden um Daten aus geschlossenen Mappen auszulesen. Kann es aber erst zu Haus fertig stricken . Melde mich dann wieder.
Oder jemand anderes ist schneller.
Gruß Holger
@Holger. Du rettest mich!
13.07.2004 12:12:37
Stephan
.
Hallo Stephan hier schau mal
Holger
Hallo stephan
Bin gestern leider nicht mehr zu gekommen.Hier die Dateien.
Rear.xls und Center.xls müssen erst mal in C:\Temp\ abgelegt werden. Die andere ist egal. Später kannst Du Dir ja den Ordner noch anpassen.

https://www.herber.de/bbs/user/8530.zip
Wenn noch was Fehlt ? Einfach melden.
Gruß Holger
Anzeige
Ich noch mal
Holger
Ich habe noch eine Möglichkeit gefunden, das die Werte aus den beiden Dateien nicht als verknüpfte Formel eingetragen wird sondern als Wert geschrieben.
z.B. ='C:\Temp\[Rear.xls]Rear (2)'!A13 sondern "11"
Dadurch entfällt beim öffnen die Nachfrage nach dem Aktualisieren der Daten.
Eine Möglichkeit die Sheet-Namen aus geschlossener Mappe auszulesen habe ich nicht gefunden.
Gruß Holger
Hab das gerade ausprobiert...
15.07.2004 15:59:26
Stephan
Hallo Holger,
vielen Dank nochmal für deine Mühe. Respekt, das muss aber Arbeit bedeutet haben!?
Das kommt dem ganzen schon verdammt nah :-)
Also, ich hab' die Pfade soweit angepasst. Sprich, unter der "aus_Center_Rear" die "strPath" auf meinen Ordner umgeschrieben, sowie den Pfad in der "ComboBox1_GotFocus" unter "Workbooks.Open". Trotzdem öffnet er mir beim Laden des Files 'ne Öffnenbox im C:\Temp\-Vezeichnis, weil er noch "Center.xls" und "Rear.xls" benötigt? Diese liegen ja aber nicht im Temp-Verzeichnis. Das liegt wahrscheinlich daran, dass Center & Rear nicht (wie du erwähntest) im Temp-Verzeichnis liegen, oder?
Aus deinem 2 Beitrag ("Ich noch mal") werde ich nicht so recht schlau ;-)
Was soll ich wie ändern?
Ich hab' auch noch ein wenig rumexperimentiert und auch eine Art der Lösung gefunden. Ist jetzt aber nicht mit unserer oben bearbeiteten Datei identisch, aber vom Prinzip her.
Wäre nett, wenn du dir das mal anschauen könntest. Dort drin ist ein Pfad der bei dir angepasst werden muss. Eigentlich muss jetzt nur die "Kalk3_Blatt1.xls" geöffnet werden, eine Auswahl getroffen werden, und der Rest sollte von allein gehen!?
Hier ist sie: https://www.herber.de/bbs/user/8573.zip
Danke & MfG,
Stephan
Anzeige
Schau ich mir noch mal in Ruhe an
Holger
Hallo Stephan
Zu Punkt 2 nur soviel. Du machst es ja schon richtig. Die Werte werden kopiert und nicht die Zelle als Verknüpfung.
Und 3. schaue ich mir noch mal in Ruhe an.
Du hast ja jetzt die zweite Datei immer offen, ich glaube das wolltest Du nicht zum Anfang wegen der späteren Größe.
Ich meld mich noch mal.
Gruß Holger
Verda***, hast recht
16.07.2004 08:57:34
Stephan
Ist mir gar nicht aufgefalen, weil die 2. Tabelle ja gar nicht sichtbar war. Hab sie auch eben erst im VB-Editor gesehen.
Und ich hab' mich schon gewundert, so einfach kann das nicht sein...
Genau das wollte ich auch nicht.
Bin schon am überlegen, ob man das ganze nicht statisch macht. Sprich, in der ComboBox die Werte fest hinterlegt (zb. Status1, Status2, Status3, etc) und dann fest mit den Tabellen verknüpft und die Daten kopiert. So über IF. Wenn dort Status1 fegwählt ist, dann öffne, kopiere und schließe. Wenn Status10 gewählt, aber keine Tabelle dort dann MsgBox (zwecks Fehlerabfang).
Gruß
S.
Anzeige
Vorschlag
Holger
Die jeweiligen Blatt-Namen der beiden Mappen Rear und Center könnte mann in der Datei auf dem Blatt Haupt oder einem anderen Blatt, das von mir aus ausgeblendet wird, hinterlegen. Dann sind die Namen immer beim Start der Mappe Kalk vorhanden und können so in die Combox'en initialisiert werden. Den Button könnte mann nehmen umd den Status zu aktualisieren. Sprich die beiden Mappen Rear und Center werden nach neuen Blatt-Namen abgefragt.
Der 2. Punkt das kopieren der Daten. Jetzt ist es noch so, wenn die Datei Kalk geöffnet wird will Excel die Verknüpfungen aktualisieren. In der Zelle siehst Du zwar den Wert aber in der Bearbeitungszeile sieht mann die Verknüpfung zu den anderen Mappen ( Rear und Center ). Aber das kann mann noch ändern, so das immer der ware Wert und nicht die Verknüpfung eingetragen wird. OK
Dein anderes Projekt mit den Mappen Kalk3_Blatt1 und Kalk3_Blatt2 wäre noch meine Frage
Wenn Du per Button eine neue Kalk-Seite erstellst soll die in der Kalk3_Blatt1 bleiben oder gehört die nicht in Kalk3_Blatt2 ? Wäre für mich logisch, muß aber nicht.
Nur so 'ne Idee
Kannst Dich ruhig noch mal melden wenn Du willst.
Gruß Holger
Anzeige
Kling gut
16.07.2004 13:27:55
Stephan
Hallo Holger!
Um erstmal auf deine unterste Frage zu kommen (das mit den Kalk3...), das ist im Grunde das gleiche wie das obere, nur die Mappen haben andere Namen. Es soll wieder per ComboBox ein Datenbereich aus einer ungeöffneten Mappe gelesen werden. Im Prinzip also dasselbe, nur ein Vesuch von mir noch einen anderen Lösungsweg zu finden.
Problem war, das die Mappen vom Blatt 2 nicht mehr sichtbar waren, auch nicht wenn sie normal geöffnet wurden. Man konnte nur im VB-Editor erkennen, das die Datei offen ist.
Und weiteres Problem war, das er nicht die Daten übernehmen wollte, sondern immer nur einen Laufzeitfehler ausgab.
Der Button für die neue Kalk-Seite spielt keine Rolle, hab ich nur vergessen raus zu nehmen. Du hast aber recht, der ist im Prinzip für Blatt2 gedacht, spielt aber bei unserem Thema keine Rolle.
So, nun zu deinem eigentlichen Vorschlag.
Zu Punkt 1 muss ich sagen, dass klingt gut, also warum nicht. Das würde bedeuten, wenn man weiss das keine neuen Blätter vorhanden sind, kann man direkt in der ComboBox auswählen? Ansonsten erst einmal Button drücken und nach neuen Mappen suchen lassen, oder?
zu Punkt 2 kann ich sagen, das ich die Verknüpfung eigentlich gar nicht brauche, sondern nur den Wert (Value) der in der anderen Mappe auf dem entsprechenden Blatt steht. Das soll ja nachher nur als Statistik dienen, d.h. ich kann den Status von Rear & Center auswählen, und schön übersichtlich auf einem Blatt dessen Werte sehen (so 'ne Art Auswertung).

Gruß,
S.
Anzeige
AW: Mach ich
Holger
OK Ich werde mich mal darum kümmern und mache noch mal Punkt 1. und 2.
Dann schicke ich Dir die Dateien wieder.
Bis bald Holger
AW: Muss ich mir mal ansehen
Stephan
Moin Holger!
Danke für deine Arbeit. Leider fehlt mir heute die Zeit, werde es ich mir morgen (Dienstag) mal ausführlich ansehen. Melde mich aber auf jeden Fall wieder.
Gruß
Stephan
Perfekt!
Stephan
Hallo Holger,
komme leider erst heute dazu mir deine Datei anzusehen (Das gute Wetter musste ich ja unbedingt für Urlaub nutzen).
Also, dein bearbeitete Datei ist absolut genial. Das passt sehr gut. Ich werde jetzt mal sehen, ob ich das in mein Projekt problemlos integrieren kann.
Auf jeden Fall, Danke sehr!
Stephan
Anzeige
Bereich statt einzelner Zellangaben?
Stephan
Tag auch.
Ich hab da doch noch ein bzw. 2 Probleme!
Im Modul "aus_Center_Rear" ist für jede Zelle, die übernommen werden soll, ein einzelner Eintrag: ...strFormula & "A12"......strFormula & "A13"...usw.!
Da ich dabei bin das ganze jetzt in mein Projekt zu integrieren, ist doch noch ein Problem aufgetaucht. Ich habe sehr viele Zellen die betroffen sind, ca. 200. Es wäre also besser einen Bereich (Range) von x bis y (in diesem Falle A11:A15) zu übernehmen. Wie kann ich das erreichen, was muss ich ändern?
Das zweite Problem ist der temporäre Ordner. Da die Dateien später auf einem gemeinsamen Server liegen, sie aber über 2 verschiedene Pfade angesprochen werden, muss ich noch irgendwie eine Auswahlmöglichkeit einbauen. Also quasi komme ich aus Hamburg über den Pfad "\\Server1\HAM\Kalk\" und über München über "\\Server1\MUN\Kalk\".
Ich müsste also irgendwie auf der "Haupt"-Seite noch eine Auswahlmöglichkeit haben, wo ich einfach München oder Hamburg auswählen kann, und es wird der entsprechene temporäre Pfad benutzt.
Gruß
Stephan
Anzeige
Frage
Holger
Hallo stephan
Zu1. Nun braucht man noch ein paar Angaben. Vorher war es ja immer auf dem jeweiligen Blatt die Zellen A12 bis A15 und jetzt?
Wo soll man anfangen zu suchen in welcher Zelle oder ab welcher Zeile oder Spalte.
Sind jetzt mehere daten auf einem Blatt. Hast Du da vielleicht ein beispiel?
Zu 2.
Sieht aus wie eine Fleißaufgabe da müßte ich erst die Recherche besuchen.
Ob ich aus München oder Hamburg komme ist denn das dan nicht immer gleich ?
Da kann sich doch nichts ändern. Es muß doch nur für den jeweiligen Standort der Pfad festgelegt werden oder ?
Gruß Holger
Anzeige
AW: Frage
Stephan
Hallo Holger,
Danke für Deine Antwort bzw. Nachfrage.
Zu 1:
Vielleicht hab ich mich etwas kompliziert ausgedrückt. Ich meinte das bei deinem Code im Modul "ausl_Center_Rear", der zu übernehmende Bereich der Center- bzw. Rear-Datei (also A11 bis A15), jede Zelle A11, A12,... einzeln bei dem rng.Offset... aufgeführt wird.
Sprich 5 Zellen ergibt 5 Code-Einträge. Da ich bei der Portation einen sehr großen Bereich an Zellen abdecken muss, müsste ich für jede Zelle einen EIntrag erstellen (mühsam bei ca. 200 Zellen). Deswegen meine Frage nach einem zusammengefassten Bereich.
Ich hab hier den Code-bereich, den ich meine, mal eingefügt und die entspr. Zeilen mit einem Ausrufezeichen vorne markiert.
If FileDateTime(strPath & arrFiles(intCounter)) Set rng = Range("A8")
strFormula = "='"
strFormula = strFormula & strPath & "["
strFormula = strFormula & arrFiles(intCounter) & "]"
strFormula = strFormula & strShNameC & "'!" '"Tabelle1'!"
strTmp = Right(strFormula, Len(strFormula) - 1)
Sheets("Ergebnis").Activate
Range("A8").Select
! rng.Value = strFormula & "A11"
! a = rng.Value
! rng.Value = a
! rng.Offset(1, 0).Formula = strFormula & "A12"
! a = rng.Offset(1, 0).Value
! rng.Offset(1, 0).Value = a
! rng.Offset(2, 0).Formula = strFormula & "A13"
! a = rng.Offset(2, 0).Value
! rng.Offset(2, 0).Value = a
! rng.Offset(3, 0).Formula = strFormula & "A14"
! a = rng.Offset(3, 0).Value
! rng.Offset(3, 0).Value = a
! rng.Offset(4, 0).Formula = strFormula & "A15"
! a = rng.Offset(4, 0).Value
! rng.Offset(4, 0).Value = a
End If
Ob man da nicht was ändern kann, so vonwegen von...bis...?
Zu 2:
Leider ist das hier nicht immer gleich, wäre ja auch zu schön und einfach (Ein böser Gruß an unsere Netz-Admin's!)
Also, ich habe die entsprechenden Dateien auf einem gemeinsamen Server, der nicht in Hamburg, noch in München steht, sondern in Frankfurt.
Wenn ich von meinem Rechner (Netzwerk-LogIn in Hamburg) auf diese Dateien zugreifen möchte, und mir den Pfad anschaue, dann habe ich folgenden Pfad "\\Server1\HAM\Kalk\".
Bin ich nun aber in München und hab dort mein Netzwerk-LogIn gehabt, greife ich dann auf die Dateien zu, habe ich diesen Pfad "\\Server1\MUN\Kalk\"!
Das gibt natürlich dann Probleme mit dem Temp-Pfad (strPath = "C:\Temp") in deinem "ausl_Center_Rear"-Modul.
Jetzt dachte ich mir, da muss noch eine einfache Auswahlmöglichkeit gesetzt werden. Sprich, bevor ich in den ComboBoxen etwas auswähle, bestimme ich erstmal meinen derzeitigen Standort.
Zu Zeit versuche ich es mit 2 einfachen OptionButton's in der "Haupt"-Tabelle. Diese beiden werden einfach mit Hamburg bzw. München betitelt. Wenn ich also einen auswähle, wird daduch der Code für den Ordner angepasst.
Frei gedacht ungefähr so:
------------------------------------------------------------
strPath = StdAuswahl
&

Sub ButtonNo1()
If OptionButton1.Value = True Then
StdAuswahl= "\\Server1\HAM\Kalk\"
Else
End If
End Sub

--------------------------------------------------------------
Funktioniert aber so gar nicht. Ich hab auch schon recherchiert, aber nichts gescheites gefunden.
Vielleicht hast du ja 'ne Idee, wäre dankbar!
Schönen Tag noch,
Stephan
Anzeige
AW: Frage
Holger
Hallo Stephan
Zu 1.
! rng.Offset(1, 0).Formula = strFormula & "A12" ---aus andere Datei Wert lesen und in Zelle schreiben, die beiden Dateien sind ja geschlossen
! a = rng.Offset(1, 0).Value---- jetzt den Wert aus der Zelle noch mal auslesen
! rng.Offset(1, 0).Value = a----und hier als Variable einschreiben
dadurch steht in der Zelle keine Formel die zur Folge hätte, das beim öffnen der Datei um Aktualisierung nachgefragt wird.
Ich habe es zwar noch nicht Probiert aber ich glaube es geht wohl nicht aus einer geschlossen Datei einen Wert zu kopieren. Es geht nur mit Zellbezug und den lösen wir ja wieder zum Schluß auf eben durch auslesen des Wertes und neu einschreiben.
Zu 2. Wenn ich es richtig verstehe wird doch dann jeweils eine Datei Kakl in Hamburg und eine in München liegen. Von dort kann mann doch sowieso den Pfad nicht anders ansprechen. Also kann man doch in die jeweilige Datei den Pfad gleich richtig ins Modul schreiben. Da kann doch garkeine Auswahl mehr stattfinden. Oder sehe ich das immer noch verkehrt. Ansonsten würde ich den Vorschlag machen mit zwei Button Hamburg oder München auszuwählen. Diese Auswahl würde ich in eine bestimmte Zelle schreiben so das auch gleich jeder sieht ob Hamburg oder München ausgewählt ist. Und diese Zelle kann man dann gleich als Vorbage für die Pfad-Variable geben.
Wir kriegen das schon noch hin !!
Gruß Holger

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige