Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Codeabwandlung
#1
Hallo,

ich habe beim Stöbern einen für meine Zwecke sehr schönen, sehr kurzen Code gefunden, der Daten aus meiner aktuellen Datei  in die Tabelle einer anderen Datei (Beispiel.xlsx) schreibt.[/url]
[url=http://www.clever-excel-forum.de/thread-8605.html]

http://www.clever-excel-forum.de/thread-8605.html

Code:
Sub M_snb()
 With GetObject("C:\Test\Beispiel.xlsx")
   ThisWorkbook.Sheets(1).Range("A1:A10") = .Sheets(1).Range("A1:A10").Value
   .Close 0
 End With
End Sub
Basierend auf diesem Code möchte ich den umgekehrten Fall haben. Daten aus der Datei Beispiel.xlsx sollen in meine aktuelle Datei geschrieben werden.
Top
#2
Hallo,

ich würd' einfach mal die teile links und rechts des Gleichheitszeichens miteinander austauschen.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • DerAnfänger
Top
#3
@attila

So weit war ich auch schon, funktionierte bei mir aber nicht.
Top
#4
(22.02.2017, 15:35)DerAnfänger schrieb: Basierend auf diesem Code möchte ich den umgekehrten Fall haben. Daten aus der Datei Beispiel.xlsx sollen in meine aktuelle Datei geschrieben werden.
Hm, der Code kopiert doch aus der Datei Beispiel.xlsx in die Datei, in der der Code steht.
Gruß
Michael
Top
#5
Hast Du beim Tauschen das .Value auch an der rechten Seite stehen lassen?

   .Sheets(1).Range("A1:A10") = ThisWorkbook.Sheets(1).Range("A1:A10").Value


EDIT: Steuerfuzzis Einwand ist nicht von der Hand zu weisen ...
[-] Folgende(r) 1 Nutzer sagt Danke an lupo1 für diesen Beitrag:
  • DerAnfänger
Top
#6
Hallo,

am Ende muss bei Close noch gespeichert werden:


Code:
.Close savechanges:=True


Aber bei mir passiert da etwas eigenartiges. Wenn ich die Datei öffne ist sie ohne Tabellenblätter. Nicht da!
Gruß Atilla
Top
#7
(22.02.2017, 16:20)atilla schrieb: Aber bei mir passiert da etwas eigenartiges. Wenn ich die Datei öffne ist sie ohne Tabellenblätter. Nicht da!
Vermutlich ist sie noch geöffnet (von vorherigen Versuchen). Schließe Dein komplettes Excel (evtl. im Task Manager nachsehen, ob noch eine Instanz läuft) und probiere es nochmal.
Gruß
Michael
Top
#8
Hallo,


habe ich alles gemacht, bis auf einen Neustart des Rechners.

Die Dateien sind in der gleichen Instanz erstellt gespeichert und geschlossen worden.

Wäre blöd, wenn ich heute wieder Überstunden machen und eine Nachtschicht einlegen müsste. :19:


Code:
Sub M_snb()
With GetObject("C:\Users\User\Desktop\MappeZU.xlsm")
  .Sheets(1).Range("A1:A10").Value = ThisWorkbook.Sheets(1).Range("A1:A10").Value
  .Close savechanges:=True
End With
End Sub
 

Das ist der Code, welcher in einem Allgemeinen Modul einer Arbeitsmappe liegt, welche nicht "MappeZU.xlsm" heißt
Gruß Atilla
Top
#9
Rainbow 
Danke schon mal für eure Hilfe. 
So funktionierts:

Code:
Sub MDU_snb()
'Funktioniert
'Soll Daten aus meiner aktuellen Datei in die Datei Beispiel.xlsx, die im Verzeichnis "C:\Test\" steht, kopieren
 With GetObject("C:\Test\beispiel.xlsx")
 Application.DisplayAlerts = False 'Sicherheitsabfrage ausschalten.
  .Sheets(1).Range("A1:A10") = ThisWorkbook.Sheets("Tabelle1").Range("A1:A10").Value
   .Close 1
   'oder
   '.Close savechanges:=True
 End With
End Sub

Sub MD_snb()
'Funktioniert
'Kopiert Daten aus der  Beispiel.xlsx, die im Verzeichnis "C:\Test" steht, in meine aktuelle Datei!
 With GetObject("C:\Test\Beispiel.xlsx")
   ThisWorkbook.Sheets(1).Range("A1:A10") = .Sheets(1).Range("A1:A10").Value
   .Close 0
 End With
End Sub

Hab mich gerade mal etwas im Netz zu "GetObject" umgeschaut und finde dort leider nicht viel.

Könntet ihr so nett sein, ein paar gute Adressen zu posten, die diese Funktion und ihre Methoden gut beschreiben.
Top
#10
(22.02.2017, 16:20)atilla schrieb: Aber bei mir passiert da etwas eigenartiges. Wenn ich die Datei öffne ist sie ohne Tabellenblätter. Nicht da!
Ich meine mich zu erinnern, dass mit GetObject die Datei ausgeblendet geöffnet wird. Wenn Du dann speicherst, bleibt das auch ausgeblendet beim nächsten öffnen.

Warum machst Du es nicht über Workbook.open und schaltest Screenupdating vorher auf false und nachher wieder auf true?
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • DerAnfänger
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste