Clever-Excel-Forum

Normale Version: Exel Hauptarbeitsmappe mit mehreren Arbeitsmappen synchronisieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
HEUREKKKKAAAAAAAAAAAA!!!!!!!:)

Danke Andre!!!!!!!

Erstmal sorry, dass ich den Fehler nicht klar definiert habe... 

Also er hat immer Fehler mit dem Befehl

Range(.Cells(i, 2)).Value = Application.Transpose(wsBeschauauftrag.Range("B9").Value) gehabt,

dein Vorschlag mit
.Cells(i, 2)

hat funktioniert!!!!

Jetzt konnte ich den Inhalt von einer Arbeitsmappe in die andere bekommen:)

Du sagtest, dass es nicht nötig ist eine Zelle zu Transportieren. Ich habe die Befehle ja nun sagen wir mal "geborgt" von anderen Foreneinträgen,
deshalb nun meine Frage, dieser Befehl "transportiert" die Zelle von einem Arbeitsblatt in das andere? Also von meier Quelle in die Datenbank? Hier wird sicher mehr Rechenleistung gebraucht als beim Kopieren, oder?
 
Mir würde ein einfaches Kopieren vollkommen ausreichen, kannst du mir sagen, wie dann der Befehl dafür lauten würde?

Sorry, ihr denkt euch gerade bestimmt sowas wie lerne erstmal krabbeln bevor du gehen willst, ich habe halt echt keinerlei Erfahrungen mit solchen arbeiten....

Danke für die Hilfe!!!!!
Ich nochmal, also mit dem VBA Rekorder habe ich jetzt etwas rumprobiert und folgendes erreicht:

Range("C10").Select
    Selection.Copy
    Windows("test.xlsx").Activate
    .Cells(i, 2).Select
    ActiveSheet.Paste
    Windows("quelle.xlsm").Activate

Für mich zum Verständnis, mit .Cells(i,2) sage ich ihm doch jetzt, kopiere das in:

i=die letzte freie zeile (durch den Befehl davor definiert) in die 2 Spalte (B), richtig?

Nun habe ich aber leider das Problem, dass er sich anscheind den Wert der Zelle C10 merkt und diesen einfach immer wieder in die Datenbank kopiert :(

Ich habe also z.B. in "C10" der Quelle den wert 100 stehen, das kopiert er dann brav rüber....wenn ich jetzt nochmal den befehl ausführe, kopiert er den wert 100 auch in die nächste Freie Zelle....soweit so gut, wenn ich den Wert jetzt aber ändere, sagen wir auf 110 unnd den Befehl ausführe, dann kopiert er wieder den Wert 100 in die Datenbank :(

Aber es ging gerade auf jeden Fall schneller!!!

Dankeschön!!!
Hallöchen,

wenn Du 100x C10 kopierst:
Range("C10").Select
Selection.Copy

wirst Du auch 100x C10 bekommen Smile
Du müsstest auch die Quelle variabel gestalten. Die Frage ist nur, wie / woher Du die Daten schaufelst.

Wenn Du C10:C100 kopieren willst und in .Cells(i,2) einfügst und das untereinander stehen soll, geht das in einem Rutsch.

Range(C10:C100).Copy
.Cells(i,2).Paste...

Wenn Du C10:CV10 kopieren willst und in .Cells(i,2) einfügst und das untereinander stehen soll, geht das auch in einem Rutsch.
Hier würde dann Transpose dazu passen wie in Deinem geposteten Code

Wenn Du verschiedene Zelen kopieren willst und in Spalte B immer untereinander einfügen, dann musst Du zwischendurch auch immer wieder die letzte Zelle feststellen.

Wenn Du …


Du merkst schon, da fehlt eine konkrete Aufgabe zum Antworten …
Hallo Andre, 

nochmal Danke das du dir die Zeit nimmst!

Die Aufgabe sieht konkret so aus: Ich möchte in meiner Quelle in die Zelle xy (sagen wir Mal c10) einen Wert eingeben, manuel. Dann habe ich mir einen shortcut eingerichtet mit dem ich das marko starte. Jetzt soll der eingegebene Wert in die Datenbank kopiert werden, hier in die nächste freie Zelle der Spalte B.... Das haben wir ja durch i definiert. 

Jetzt möchte ich später die Datei Quelle ganz normal azsrucken und gebe jetzt eine neue Nummer Manuel in die Quelle c10 ein, wieder durch shortcut drücken soll jetzt der neue wert in die Datenbank kopiert werden. Quelle wieder ausdrucken, c10 in der Quelle ändern, kopieren und immer so weiter....

Momentan kopiert er den ersten wert den ich eingebe schon rüber, wenn ich den Wert der Zelle ändere dann wird dieser neue wert aber nicht beachtet....

Ich hoffe du verstehst das Problem.... Also doch eher die Zellen transportierent oder stelle ich mich einfach mal wieder zu doof an beim kopierbefehl?

Danke für deine Mühen!

Grus

Torben
Hallo Torben,

wenn das so ist, dann ist alles richtig, zumindest, wenn Du vor dem zuletzt geposteten Codeschnipsel auch noch die erste freie Zelle feststellst.
Hattest Du zuvor schon mal irgendwo gepostet.

'freie Zeile finden
i = .Cells(Rows.Count, 2).End(xlUp).Row + 1

Falls nicht, dann z.B. so

Range("C10").Select
Selection.Copy
Windows("test.xlsx").Activate
i = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(i, 2).Select
ActiveSheet.Paste
Windows("quelle.xlsm").Activate

wobei man das mit dem Select noch etwas einkürzen könnte... Ob die Punkte vor .Cells korrekt sind, kann ich allerdings anhand
des kurzen Schnipsels nicht feststellen.
Hallo Andre,

vielen vielen Dank nochmal bis hier :) Ich habe den Befehl jetzt glaube ich einigermassen hin bekommen, zumindest kopiert er das jetzt alle brav ;)

Kannst du nochmal einen Blick darauf werfen?

'Pfad zur Masterdatei festlegen:
Const MasterDat As String = "C:\Users\test.xlsx"

Dim wsBeschauauftrag As Worksheet
Dim wstest As Worksheet
Dim lngZeile As Long, rngTmp As Range


'Festlegen aus welchem Tabellenblatt die Daten kopiert werden sollen
   Set wsBeschauauftrag = ActiveSheet


'Masterdatei öffnen
   Set wsMasterTab = Workbooks.Open(MasterDat).Worksheets("tabelle1") 

'Daten übernehmen
   With wsMasterTab
      
      
    'Daten kopieren

    Windows("quelle.xlsm").Activate
    Range("B10").Select
Selection.Copy
Windows("test.xlsx").Activate
i = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(i, 2).Select
ActiveSheet.Paste
Windows("quelle.xlsm").Activate
     
      
   End With

'Masterdatei speichern und schließen
   wsMasterTab.Parent.Close savechanges:=True


Set wsMasterTab = Nothing
Set wsQuelle = Nothing
Set i = Nothing

End Sub



Soweit so gut:) Jetzt wollte ich gerne nur die Werte der Zelle B10 kopieren, also ohne Format und Formeln.... ich habe den Befehl dann so geschrieben:

Windows("quelle.xlsm").Activate
    Range("B10").Select
Selection.Copy
Windows("test.xlsx").Activate
i = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(i, 2).Select
ActiveSheet.PasteSpecial xlPasteValues
Windows("quelle.xlsm").Activate


Leider klappt das nicht....die Pastspecial Methode konnte nicht ausgeführt werden.... Nehme ich einen falschen Befehl???

Danke für euer Backup!!!!!!

Gruß

Torben
HI Torben,

versuch's mal so:

Selection.PasteSpecial Paste:=xlPasteValues
Seiten: 1 2