Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zusammenfügen von Arbeitsblättern

Zusammenfügen von Arbeitsblättern
07.06.2004 11:06:28
Arbeitsblättern
Guten Morgen zusammen,
Ich habe folgende Problemstellung :
Ich habe in einer Excel Datei zwei Ablageblätter, die komplett identisch aufgebaut sind. Allerdings unterscheiden sich die Werte in den Blättern.
Ich möchte nun, dass diese Werte aus den 2 Blättern in einer externen Excel Datei zusammengefügt werden, d.h. also :
Wert Blatt1 Zelle A1 + Wert Blatt2 Zelle A1 ; Ergebnis soll dann ebenso in der neuen Datei in A1 stehen.
Die Formate sollen wenn möglich auch ins neue Blatt übertragen werden, d.h. dass das neu erzeugte Blatt ebenso identisch mit den 2 "Ur-Blättern" sein soll.
Kann mir da jemand helfen?
Für Hilfen wäre ich sehr dankbar.
Gruß,
Thomas

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zusammenfügen von Arbeitsblättern
07.06.2004 11:49:08
Arbeitsblättern
hallo thomas
ohne vba-kenntnisse würd ich mich da nicht allzuweit zum fenster hinauslehnen..
füge doch per copypaste ein drittes blatt in die bestehende datei ein, so hast du bereits die gesamte formatierung.
anschliessend änderst du eine formel, = wert blatt 1 + wert blatt 2, die du kopierst (ctrl+c).
jetzt wählst du den gesamten bereich aus, in dem werte stehen und wählst mit rechtsklick (einfügen spezial.. oder wie das heisst, habs drum auf französisch). dort wählst du "nur formeln"
gruss joel
AW: Zusammenfügen von Arbeitsblättern
07.06.2004 11:49:11
Arbeitsblättern
hallo thomas
ohne vba-kenntnisse würd ich mich da nicht allzuweit zum fenster hinauslehnen..
füge doch per copypaste ein drittes blatt in die bestehende datei ein, so hast du bereits die gesamte formatierung.
anschliessend änderst du eine formel, = wert blatt 1 + wert blatt 2, die du kopierst (ctrl+c).
jetzt wählst du den gesamten bereich aus, in dem werte stehen und wählst mit rechtsklick (einfügen spezial.. oder wie das heisst, habs drum auf französisch). dort wählst du "nur formeln"
gruss joel
Anzeige
AW: Zusammenfügen von Arbeitsblättern
07.06.2004 13:19:19
Arbeitsblättern
Hallo Joel,
erstmal Danke für die Antwort, aber falls Du da eine VBA Lösung kennst, würde ich sie gerne hören, weil dein Vorschlag erfüllt zwar seinen Zweck, ist aber nicht das, was ich brauche.
Ich muss die ganze Sache automatisieren und brauche deshalb eine VBA Lösung.
Es ist wichtig !!
Thomas
AW: Zusammenfügen von Arbeitsblättern
07.06.2004 13:23:25
Arbeitsblättern
hallo thomas
die ganze sache ist nicht sehr schwer, aus zeitgründen kann ich dir jedoch erst morgen vormittag eine lösung schicken. hoffe also auf andere benutzer oder warte bis morgen..
ansonsten musst du selber pröbeln..
gruss joel
Um neue Vorschläge wird gebeten !
07.06.2004 14:21:20
Thomas
Joel,
ich denke, dass es bis morgen mittag reicht.
Vielleicht meldet sich ja auch noch jemand.
Bis morgen.
Thomas.
Anzeige
AW: Um neue Vorschläge wird gebeten !
08.06.2004 08:11:01
joel
hallo thomas
hier eine lösung.. hab einfach drauflosgeschrieben.. du könntest als verbesserung die formate erst am schluss fürs ganze blatt kopieren (geht schneller)..
Public

Sub Exportieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim wkbNeu As Workbook
Dim c As Range
Set wks1 = ThisWorkbook.Sheets(1)
Set wks2 = ThisWorkbook.Sheets(2)
Set wkbNeu = Workbooks.Add
For Each c In wks1.UsedRange
With wkbNeu.Worksheets(1).Cells(c.Row, c.Column)
'werte summieren
.Value = c.Value + wks2.Cells(c.Row, c.Column).Value
'formate übernehmen
c.Copy
Call .PasteSpecial(Paste:=xlFormats, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False)
End With
Next c
End Sub

gruss joel
Anzeige
AW: Um neue Vorschläge wird gebeten !
08.06.2004 08:31:43
Thomas
Hallo Joel,
ich danke dir erstmal dafür, dass du am frühen Morgen schon eine Lösung präsentieren konntest. Das funzt auch super.
ABER : In den Spalten A-H / U-V der beiden Arbeitsblätter stehen Texte, die nicht addiert werden sollen. Nur der Bereich von I 9 - T 300 soll summiert werden, der Rest kann aus einem beliebigen der beiden Arbeitsblätter übernommen werden.
Geht das ?
Wenn das auch noch klappen würde, wäre das Problem gelöst.
Thomas.
AW: Um neue Vorschläge wird gebeten !
08.06.2004 09:35:47
joel
hallo thomas
das geht natürlich auch...

Sub Exportieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim wkbNeu As Workbook
Dim c As Range
Set wks1 = ThisWorkbook.Sheets(1)
Set wks2 = ThisWorkbook.Sheets(2)
Set wkbNeu = Workbooks.Add
For Each c In wks1.UsedRange
With wkbNeu.Worksheets(1).Cells(c.Row, c.Column)
Select Case c.Column
Case 9 To 20        'spalten I bis T
'werte summieren
.Value = c.Value + wks2.Cells(c.Row, c.Column).Value
Case Else
'nur text kopieren
.Value = c.Value
End Select
'formate übernehmen
c.Copy
Call .PasteSpecial(Paste:=xlFormats, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False)
End With
Next c
End Sub

ps: wie wichtig ist zeile 1-300? hab das nicht integriert..
gruss
Anzeige
Schon nah an der Lösung !!!
08.06.2004 09:55:40
Thomas
Hallo Joel
das mit zeile 9 - 300 ist sehr wichtig. Vielleicht geht das noch, das zu integrieren.
Würde das eigentlich auch selbst machen, aber VBA ist nun mal nicht so mein Ding.
Wenn wir schon einaml dabei sind, fällt mir ein, dass das erzeugte "Summenblatt" doch besser in der selben Datei, wie die "Ur-Blätter" erzeugt werden soll.
Also nicht in einer neuen Arbeitsmappe. Und für diese Arbeitsblatt soll dann direkt der Name "Gesamt" vergeben werden.
Ich weiß, das sind viele Anfragen, aber wie gesagt, ich kenn mich mit VBA nicht aus und ich muss dieses Problem möglichst schnell lösen.
Wenn Du mir da noch einmal helfen könntest, würdest Du mich überglücklich machen...
Danke und Gruß,
Thomas
Anzeige
AW: Schon nah an der Lösung !!!
08.06.2004 10:06:18
joel
hallo thomas
hast du ein glück, dass in bern die sonne scheint.. so lässt sich auch das machen!

Sub Exportieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim wksNeu As Worksheet
Dim c As Range
Set wks1 = ThisWorkbook.Sheets(1)
Set wks2 = ThisWorkbook.Sheets(2)
Set wksNeu = ThisWorkbook.Sheets.Add
wksNeu.Name = "Gesamt"
For Each c In wks1.UsedRange
With wksNeu.Cells(c.Row, c.Column)
If c.Column >= 9 And c.Column <= 20 And _
c.Row >= 9 And c.Row <= 300 Then
'werte summieren
.Value = c.Value + wks2.Cells(c.Row, c.Column).Value
Else
'nur text kopieren
.Value = c.Value
End If
'formate übernehmen
c.Copy
Call .PasteSpecial(Paste:=xlFormats, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False)
End With
Next c
End Sub

Anzeige
AW: Schon nah an der Lösung !!!
08.06.2004 10:57:17
Thomas
Hallo Joel,
so, das laäuft jetzt erste Sahne !! SUPER !! DANKE !!!
Das einzige Problem, das noch vorhanden ist, ist dass die ganze Prozedur ungelogen 30min dauert. Das liegt wohl an der Übertragung der Formate, oder?
Thomas
AW: Schon nah an der Lösung !!!
08.06.2004 11:11:08
joel
hallo thomas
du hast nerven...

Sub Exportieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim wksNeu As Worksheet
Dim c As Range
Application.ScreenUpdating = False
Set wks1 = ThisWorkbook.Sheets(1)
Set wks2 = ThisWorkbook.Sheets(2)
Set wksNeu = ThisWorkbook.Sheets.Add
wksNeu.Name = "Gesamt"
For Each c In wks1.UsedRange
With wksNeu.Cells(c.Row, c.Column)
If c.Column >= 9 And c.Column <= 20 And _
c.Row >= 9 And c.Row <= 300 Then
'werte summieren
.Value = c.Value + wks2.Cells(c.Row, c.Column).Value
Else
'nur text kopieren
.Value = c.Value
End If
End With
Next c
'formate übernehmen
wks1.Cells.Copy
Call wksNeu.Cells.PasteSpecial(Paste:=xlFormats, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False)
Application.ScreenUpdating = True
End Sub

gruss joel
Anzeige
AW: Schon nah an der Lösung !!!
Thomas
Hallo Joel,
jetzt passt das alles ganz gut.
Muss allerdings noch ein bisschen an der ganzen Geschichte pfeilen.
Da kannst Du mir aber nicht mehr helfen, da das zu sehr ins Detail gehen würde.
ICH DANKE DIR FÜR ALLES, DU HAST MIR UNHEIMLICH GEHOLFEN.
Gruß,
Thomas.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige