3.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

gestern wurde mir schon prima geholfen (Danke an nighty)

Aber jetzt stecke ich wieder fest. Das Problem:

Es soll eine Excel-Zelle von Tabellenblatt1 z.B "F6" = 10 (dieser setzt sich wiederrum aus dieser Wert durch F4+F5=F6 zusammen) meinen VBA Code ausgelesen werden und Variabel auf Tabellenblatt2 kopiert werden. Das funktioniert alles gut, nur gibt Excel nicht die 25 untereinander aus, sondern #Bezug! ....es liegt also an der Summe.....ohne Summe klappt es mit der 10...aber mit Summe nicht...kennt da einer eine mögliche Lösung? Hier mein Code:
Private Sub CommandButton1_Click()
Sheets("Tabellenblatt1").Range("F6").Copy Destination:=Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(3, 4))
End Sub

12 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo Sina,

Du mußt die Werte übertragen. analog diesem Beispiel
Sub Werte_Format()
' Formeln ersetzen durch Werte mit Formate
' Workbooks("Datei1.xls").Worksheets("Tabelle1").Range(Sheets("Tabelle1").UsedRange.Address).Copy
' Vorschlag Verbesserrung NoNet
Workbooks("Datei1.xls").Worksheets("Tabelle1").UsedRange.Copy
' *****
With Workbooks("Datei2.xls").Worksheets("Tabelle1").Range("A1")
.PasteSpecial Paste:=xlValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
Application.CutCopyMode = False
End Sub

Gruß hajo
0 Punkte
Beantwortet von
Hallo Hajo,

danke für die schnelle Antwort....Du ahnst es...aber gibt es da eine "einfachere" Lösung? Kann man Sheets("Tabellenblatt1").Range( "F6").Copy vielleicht anders kopieren? Bin in VBA leider noch nicht so bewandert.

Aber trotzdem vielen Dank!!!
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Sina,

Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(3, 4)) =Sheets("Tabellenblatt1").Range("F6")

Gruß hajo
0 Punkte
Beantwortet von
Wow...genau so! Du bist der Hammer.....vielen lieben Dank!!!
0 Punkte
Beantwortet von
Eine Kleinigkeit noch.....damit kann ich irgendwie nicht weitere Werte zur Liste hinzufügen

meinen alten code konnte ich untereinander kopieren...damit die Liste um weitre werte ... z.B. nach der 10 (4 Mal ..nach Cells(3,4) .. die 8(3 Mal nach Cells(4,4) direkt dadrunter auftaucht....

10
10
10
10
8
8
8

Mein alter Code


Private Sub CommandButton1_Click()

Sheets("Tabellenblatt1").Range("F6").Copy Destination:=Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(3, 4))


Sheets("Tabellenblatt1").Range("F7").Copy Destination:=Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(4, 4))

End Sub

.....wie kann ich deinen Code modifizieren, b.z.w. "kopierbar" machen???

Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(3, 4)) =Sheets("Tabellenblatt1").Range("F6")
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo Sina,

ich baue das jetzt nicht nach. Ist es nicht so wie im ersten Teil das nur der linke und rechte Teil getauscht werden muss?

Gruß hajo
0 Punkte
Beantwortet von
...irgendwie haut mein Versuch nicht hin ...


Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(4, 10)) = Sheets("Tabellenblatt1").Range("F4")


Sheets("Tabellenblatt1").Range("F5") = Sheets("Tabellenblatt2").Range("A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + 1 & _
":A" & Sheets("Tabellenblatt2").Cells(Rows.Count, 1).End(xlUp).Row + Cells(5, 10))
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo Sina,

das sind vom Prinzip zwei unterschiedliche Zeilen.
In meiner Zewile wurde was von Tabelle1 in Tabelle2 übertragen bei Dir
Tabelle1 in Tabelle2
Tabelle2 in Tabelle1

Ich haääte vermutet im zweiten Beispiel muss wie vorgeschlagen der linke und rechte Teil getauscht werden.

Gruß Hajo
0 Punkte
Beantwortet von
...ich komm leider nicht drauf was genau getauscht werden muss...probiere schon einige Zeit...hm...
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Sina,

das gleich ist das Trennzeichen.
Also alles vor dem gleich einschl. = ausschneidn , ans Ende der Codezeile = strg+v und .Copy Destination:=
am Ende der Zeile löschen.

Gruß hajo
...