Datentransfer innerhalb eines Netz

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Datentransfer innerhalb eines Netz
von: Rafael
Geschrieben am: 05.11.2003 15:21:47

Hallo Boardgemeinde,

ich suche die entsprechende Syntax, um innerhalb eines Netzwerkes (EXCEL-)Daten zu versenden.

Auf beiden Rechnern eines Netzwerks läuft jeweils EXCEL. Auf Rechner1 ist das Workbook ("MesswerteNeu.xls") geöffnet. Ein Code innerhalb dieses Workbooks soll in regelmässigen Abständen Daten in das Workbook Messwerte (mit dem Pfad: \\Hnpc2\C:\Archiv\Messwerte\ ......Sheets(2).Cells(1, 1)) auf Rechner2 kopieren. Hier analysiert ein anderer Code die Werte und archiviert sie. Berechtigungen und Freigaben auf dem Zielrechner sind korrekt gesetzt.

Mit der Anweisung:
Range(Sheets(1).Cells(8, 4), Sheets(1).Cells(28, 12)).SpecialCells(xlCellTypeVisible).Copy _
Workbooks("Messwerte").Sheets(2).Cells(1,1) ..... werden die Daten von einem Workbook zum andern auf d e m s e l b e n Rechner problemlos kopieren.

Leider habe ich weder in meinen Büchern, noch in den verschiedenen Chatboards einen Hinweis gefunden, wie ich diesen Code so abändern müsste, um das Gleiche rechnerübergreifend hinzubekommen.


Hier im Board hatte mir Andreas netterweise den Tip gegeben, es doch mal mit:
MSGBOX WORKBOOKS(1).NAME
MSGBOX WORKBOOKS(2).NAME ..........zu versuchen. Das bringt mich aber insofern nicht weiter, alsdass das Ansprechen der Workbooks i n n e r h a l b eines Rechnersystems ja tadellos funktioniert.
Das Anzeigenlassen des Pfades einer Datei funktioniert ebenfalls nur auf dem Rechner, auf dem die Anfrage gestartet wurde.


Auch für kleinste Hinweise wäre ich wirklich sehr dankbar!

Rafael

Bild


Betrifft: AW: Datentransfer innerhalb eines Netz
von: Andreas Walter
Geschrieben am: 05.11.2003 15:36:19

M.E. gibt es hier lediglich ein Verständnis Problem.
Du musst nichts besonders machen.

Sobald eine Exceldatei mit Excel aufgemacht wurde, ist es Excel absolut egal, ob die Datei lokal oder über Netz eröffnet wurde.

Du hast MessWerteNEU offen. Das ist Workbooks(1)

Du hast jetzt MESSEWERT.XLS im Netz eröffnet. Das ist Workbooks(2)

Du sagst
Range(Sheets(1).Cells(8, 4), Sheets(1).Cells(28, 12)).SpecialCells(xlCellTypeVisible).Copy _
Workbooks("Messwerte").Sheets(2).Cells(1,1) ..... werden die Daten von einem Workbook zum andern auf d e m s e l b e n Rechner problemlos kopieren.

Das ist m.E. nicht richtig. Die Erklärung ist m.E.
..... werden die Daten von einem Workbook zum andern, SPIRCH MESSWERTE EGAL AUF WELCHEM RECHNER MESSWERTE SICH BEFINDET problemlos kopieren.

So bald die Datei offen ist, ist der Pfad irrelevant. Man spricht die zwei Exceldateien mit
WORKBOOKS(1) und WORKBOOKS(2)
oder
WORKBOOKS("messwerteNEU.XLS") und WORKBOOKS("MESSWERTE.XLS")
an
Nur der OPEN Befehl entscheidet wo tatsächlich die Datei liegt.

Deswegen kann man nicht zwei Exceldateien mit identischen Namen in unterschieldichen Verzeichnisse gleichzeitig öffnen.


Bild


Betrifft: Hallo Andreas ...
von: Rafael
Geschrieben am: 05.11.2003 16:00:56

... vielen Dank für die schnelle Antwort.
Hab' Deinen Tip direkt ausprobiert! Leider bekomme ich erneut Laufzeitfehler 9 'Index ausserhalb des gültigen Bereichs' angezeigt. Des Gleichen hatte ich, als ich heute Mittag versuchte, unter Verwendung von MsgBox Workbooks(1).Path bzw. MsgBox Workbooks(2).Path den vollständigen Pfad des jeweiligen Workbooks anzeigen zu lassen. Innerhalb eines Rechners kein Problem, Zugriff auf den anderen Rechner des Netzwerks, Fehlermeldung.Berechtigungen und Freigaben auf dem Zielrechner sind korrekt gesetzt.

Gruss, Rafael


Bild


Betrifft: AW: Hallo Andreas ...
von: Andreas Walter
Geschrieben am: 05.11.2003 16:14:24

Mit
MSGBOX WORKBOOKS.COUNT
bekommst Du die Anzahl von ZUR ZEIT OFFENEN Dateien

Mit
MSGBOX WORKBOOKS(n).NAME
Kannst Du nur einen Laufzeitfehler 9, wenn "n" grösser als die Anzahl von offenen Dateien ist.

Laufzeitfehler 9 kann man auch bekommen, wenn man sich vertippt

Workbooks().PATH brauchst Du nicht / ist uninteressant.

Fang nochmals an

Mach MESSWERTENEU auf
Mach MESSWERT.XLS auf dem Netzwerk auf

Schreib ein Makro


Sub Test()
msgbox workbooks.count     <----------- muss 2 bringen
msgbox workbooks(1).name   <----------- muss messwertNEU bringen
msgbox workbooks(2).name   <----------- muss MESSWERT bringen
End Sub


Ruf makro auf. Das muss gehen.


Bild


Betrifft: msgbox workbooks.count ergibt 1 ....
von: Rafael
Geschrieben am: 05.11.2003 16:25:02

..... aber wenn Du so davon überzeugt bist, dass das gehen muss, werd' ich jetzt nochmal alles genau durchdeklinieren, angefangen von der Freigabe und Berechtigung.

Auf jeden Fall vielen Dank nochmal für Deine Mühe!

Rafael


Bild


Betrifft: AW: msgbox workbooks.count ergibt 1 ....
von: Andreas Walter
Geschrieben am: 05.11.2003 16:30:37

Wenn msgbox workbooks.count 1 ergibt ist nur eine Exceldatei auf.

Wer oder was macht die Datei auf dem netzwerklaufwerk auf
- Du händisch?
- ein Makro?

Du sagst es ging, wenn MESSWERT.XLS lokal auf war. Wer oder was hat MESSWERT.XLS aufgemacht?

Wenn Du nicht zurecht kommst - poste mal mehr code


Bild


Betrifft: Manuell ...
von: Rafael
Geschrieben am: 05.11.2003 16:49:05

... ich bin das Ganze gerade nochmal durchgegangen. Ich öffne MesswerteNeu.xls auf Rechner1 dann Messwerte.xls auf Rechner2 per Hand. Gehe in den Code von Workbook("MesswerteNeu") und lasse per Einzelschritt-Debuggen "MsgBox Workbooks.Count" ausführen. Ergebnis 1. .... aber wenn's nach Deiner Erfahrung klappen muss, .... soviele mögliche Fehlerquellen kann's dabei ja eigentlich nicht geben.

P.S. Das Ganze lief wie gewünscht, als ich beide Dateien auf einem Rechner geöffnet hatte. Hier bekomme ich natürlich auch mit .Count die zwei Workboks angezeigt.




Bild


Betrifft: AW: Manuell ...
von: Andreas Walter
Geschrieben am: 05.11.2003 16:59:32

Irgendwo gibt es ein Verständnis Problem

Excel auf einem Rechner hat eine Datei auf
Dann ist naturlich ...Count gleich 1


Excel auf einem andern Rechner hat eine Datei auf
Dann ist naturlich ...Count gleich 1


Aber Du hast gepostet
Mit der Anweisung:
Range(Sheets(1).Cells(8, 4), Sheets(1).Cells(28, 12)).SpecialCells(xlCellTypeVisible).Copy _
Workbooks("Messwerte").Sheets(2).Cells(1,1) ..... werden die Daten von einem Workbook zum andern auf d e m s e l b e n Rechner problemlos kopieren.

Mit einem solchen Befehl kopierst Du, wenn ich es richtig verstehe, VON EINER IN EINE ANDERE EXCELDATEI. Das kann aber nur gehen, wenn auf einem der 2 Rechner das programm Excel ZWEI Dateien aufhat.

Ich kapier irgendwie nicht, wie das ganz hier ablaufen soll, wenn
Einmal Excel auf einem Rechner eine Datei auf hat und
Einmal Excel auf einem anderen Rechner eine andere Datei auf hat


Du solltest m.E.
auf EINEM Rechner
Excel aufhaben.
Mit diesem Excel machst du ZWEI Dateien auf
eins lokal, eins über netzwerk
Dann kannst Du mit
Befvehl wie
Range(Sheets(1).Cells(8, 4), Sheets(1).Cells(28, 12)).SpecialCells(xlCellTypeVisible).Copy _
innerhalb von dem einen offenen excel Programm von einer exceldatei in die andere exceldatei daten übernehmen.

fEIERABEND!


Bild

Beiträge aus den Excel-Beispielen zum Thema " Sortieren in Spalte1"