Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1208to1212
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
Daten in Blatt einer anderen Mappe kopieren
Stefan
Hallo,
ich habe folgendes Problem:
ich möchte nach markieren einer Zelle in der Spalte C von einer Arbeitsmappe Zellen aus drei Spalten (C, D und E) einer Tabelle (Quelle) in eine Tabelle (Ziel) einer zweiten Arbeitsmappe kopieren (vielleicht mittels eines Buttons). Das Problem ist, daß die Zielmappe verschiedene Tabellenblätter hat, deren Name aber identisch ist mit Einträgen der Spalte B der Quellmappe (also d.h. der Eintrag in Spalte B der Quelle ist der Name des Tabellenblattes des Ziels, z.Bsp. gibt es einen Eintrag in Spalte B der Quelle "GSZ_OP_TA_Debi" und ein Tabellenblatt in der Zielmappe mit gleichem Namen, ebenso mit "GSZ_OP_TA_Kredit" und anderen).
Also nach markieren der Zelle in Spalte C (z.Bsp. C3) soll der Code "nachsehen" was in Spalte B steht, jetzt die Zielmappe aufmachen und hier das entsprechend benannte Blatt aktivieren und die Daten der Spalten C3, D3 und E3 in die ersten freien Zellen der Spalten C3, D3 und F3 kopieren, speichern und wieder schließen.
(Ich beziehe mich auf einen Eintrag von mir auf den ich bisher keine Antwort bekam Archiv-IDX 1207054
vom 2011-03-23 11:24:27).
Kann mir hiermit jemand weiterhelfen?
Viele Grüße
Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten in Blatt einer anderen Mappe kopieren
29.03.2011 11:52:52
Björn
Hallo Stefan,
wie sieht denn Dein bisheriger Code aus? Wo klemmts denn?
Du beschreibst hier ein Problem und willst die fertige Lösung ohne irgendwelche Ideen oder Ansätze von Dir. Das ist nicht der Sinn dieses Forums.
Ich kann Dir in sofern weiterhelfen, dass du mal anfangen sollst, und wenn Du nicht weiter weißt, es noch mal hier versuchen kannnst. Zeichne mit dem Makrorekorder auf, was Du machen möchtest und dann schaue Dir den Code an. Das meiste dürftest Du warhscheinlich verstehen und vielleicht sogar schon anpassen können.
Gruß
Björn B.
AW: Daten in Blatt einer anderen Mappe kopieren
29.03.2011 12:18:34
Stefan
Hallo,
folgender Code wurde mir hier schon zur Verfügung gestellt. Er funktioniert auch. Nur muß ich hier die Zieltabelle immer geöffnet haben und das entsprechende ZielSheet selbst auswählen. Und das sollte der Code automatisch machen.
Dabei ist "Brainstorming_FI_CO_test.xlsm" die Quelltabelle
"INFOBOX_FICO_test.xlsm" die Zielmappe
(Der Code splittet noch den Eintrag in der markierten Spalte der Quelltabelle)
Mein Problem ist folgender Schritt:
Das automatische Öffnen der Quellmappe (also "Brainstorming_FI_CO_test.xlsm") und je nach Eintrag in Spalte B der Quelle (also "sehen" was in Spalte B steht, vergleichen mit Tabellenname der Zielmappe)dann das Aktivieren des gleichbenamten Tabellenblattes der Zielmappe.
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim sRow As Long
Dim myWks As String
'Ursprungstabelle: Daten kopieren
myWks = Range("B" & Selection.Row).Value
Selection.Copy
sRow = Selection.Row
'Bildschirmaktualisierung und Ereignismakros deaktivieren
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Zieltabelle in den Focus holen
Windows("INFOBOX_FICO_test.xlsm").Activate
With Sheets(myWks)
'letzte freie Zeile der Zieltabelle finden
lRow = .Range("B65536").End(xlUp).Row + 1
'Ursprungsdatensatz einfügen
.Range("K" & lRow).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'String-Zerteilungs Formeln einfügen
.Range("B" & lRow).FormulaR1C1 = "=LEFT(RC[9],13)"
.Range("C" & lRow).FormulaR1C1 = "=MID(RC[8],15,9^9)"
.Range("G" & lRow).FormulaR1C1 = "=MID(RC[4],15,2)"
.Range("H" & lRow).FormulaR1C1 = "=RIGHT(RC[3],3)"
.Range("B" & lRow & ":H" & lRow).Value = .Range("B" & lRow & ":H" & lRow).  _
_Value
.Columns("K:K").ClearContents
End With
'Transaktionen kopieren
Windows("Brainstorming_FI_CO_test.xlsm").Activate
ActiveSheet.Range("D" & sRow).Copy
Windows("INFOBOX_FICO_test.xlsm").Activate
ActiveSheet.Range("F" & lRow).PasteSpecial Paste:=xlValues
'Testart kopieren
Windows("Brainstorming_FI_CO_test.xlsm").Activate
ActiveSheet.Range("E" & sRow).Copy
Windows("INFOBOX_FICO_test.xlsm").Activate
ActiveSheet.Range("D" & lRow).PasteSpecial Paste:=xlValues
End Sub
Viele Grüße
Stefan
Anzeige
so wie du das beschreibst, ...
29.03.2011 12:45:10
Rudi
Hallo,
steht der Code doch in der Quelltabelle. Die muss dann doch geöffnet sein!
Gruß
Rudi
AW: so wie du das beschreibst, ...
29.03.2011 13:01:25
Stefan
Hallo,
ja, die Quelltabelle ist natürlich geöffnet, die Zieltabelle soll mit dem entsprechenden Tabellenblatt automatisch geöffnet und nach dem kopieren wieder geschlossen werden
Grüße
Stefan
AW: so wie du das beschreibst, ...
29.03.2011 13:28:30
Rudi
Hallo,
teste mal:
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim sRow As Long
Dim myWks As String
Dim wkbZiel As Workbook, wksZiel As Worksheet
Dim wksQuelle As Worksheet
Set wksQuelle = ActiveSheet
'Ursprungstabelle: Daten kopieren
myWks = Range("B" & Selection.Row).Value
Selection.Copy
sRow = Selection.Row
On Error Resume Next
Set wkbZiel = Workbooks("INFOBOX_FICO_test.xlsm")
On Error GoTo 0
If wkbZiel Is Nothing Then
Set wkbZiel = Workbooks.Open("c:\test\INFOBOX_FICO_test.xlsm") 'anpassen
End If
Set wksZiel = wkbZiel.Sheets(myWks)
'Bildschirmaktualisierung und Ereignismakros deaktivieren
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
With wksZiel
'letzte freie Zeile der Zieltabelle finden
lRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
'Ursprungsdatensatz einfügen
.Range("K" & lRow).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'String-Zerteilungs Formeln einfügen
.Range("B" & lRow).FormulaR1C1 = "=LEFT(RC[9],13)"
.Range("C" & lRow).FormulaR1C1 = "=MID(RC[8],15,9^9)"
.Range("G" & lRow).FormulaR1C1 = "=MID(RC[4],15,2)"
.Range("H" & lRow).FormulaR1C1 = "=RIGHT(RC[3],3)"
.Range("B" & lRow & ":H" & lRow).Value = .Range("B" & lRow & ":H" & lRow).Value
.Columns("K:K").ClearContents
End With
'Transaktionen kopieren
wksQuelle.Range("D" & sRow).Copy
wksZiel.Range("F" & lRow).PasteSpecial Paste:=xlValues
'Testart kopieren
wksQuelle.Range("E" & sRow).Copy
wksZiel.Range("D" & lRow).PasteSpecial Paste:=xlValues
wkbZiel.Close True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Gruß
Rudi
Anzeige
AW: so wie du das beschreibst, ...
29.03.2011 14:10:49
Stefan
Hallo,
Genau das war mein Problem. Funktioniert hervorragend.
Vielen Dank
Grüße
Stefan

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige