Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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
Inhaltsverzeichnis

Zellen mit Formatierung in mehrere Tabellenblätter

Zellen mit Formatierung in mehrere Tabellenblätter
08.02.2017 17:14:05
Ralf
Hallo und Guten Tag,
bei einen Makro rauche ich Hilfe, kenne mich bisher damit nicht so gut aus.
Folgendes Problem:
Es gibt 2 Tabellenblätter, "Erfassung" und "Auswertung".
Im TB "Erfassung" stehen in mehreren Zeilen verschiedene Daten, die an bestimmte Stellen im zweiten TB "Auswertung" kopiert werden.
Im ersten Teil das Makros werden die Daten direkt von einem zum anderen TB übernommen. Dann werden neue Tabellenblätter mit einem neuen Namen (aus den Zellen der Spalte "D" des TB "Erfassung") erstellt.
Danach werden wiederum aus den TB "Erfassung" Daten übernommen, diesmal in die neu erstellten Tabellenblätter. Dabei werden nur Daten übernommen, wenn in den Quellzellen der Wert größer als 1 ist. Dementsprechen werden auch die Überschriften "dynamisch" übernommen.
Das klappt auch alles sehr gut, die Werte werden übernommen, so wie es sein soll. Nun sollen aber neben den Werten auch die (benutzerdefinierten) Formate der Quellzellen übernommen werden.
Der Teil des Codes dafür ist:

'Nun neuer Durchlauf, um die Spalten AE bis AK jeweils in die betreffenden Tabellenblätter zu  _
kopieren.
For lngCount = 4 To lngRow 'Was bwirkt dieser Eintrag?
strTab = .Cells(lngCount, 4).Text 'Name des Arbeitsblatt, in das die Daten geschrieben werden  _
sollen = SPALTENNUMMER (4=D) in Erfassung
lngEinf = 10 'Zeilen, ab der die Daten eingefügt werden sollen = 10
For lngSpalte = 31 To 37 'Spalten AE=31 bis AK=37
If .Cells(lngCount, lngSpalte).Value > 1 Then
Worksheets(strTab).Cells(lngEinf, 6) = .Cells(1, lngSpalte).Value 'Überschrift von Zeile 1 in  _
Spalte F = 6 kopieren
Worksheets(strTab).Cells(lngEinf, 8) = .Cells(lngCount, lngSpalte).Value 'Wert ab Zeile  _
lngCount in Spalte H = 8 kopieren
lngEinf = lngEinf + 1 'Zähler für Einfügezeile erhöhen
End If
Next lngSpalte
Next lngCount
'Nun neuer Durchlauf, um die Spalten AE bis AK jeweils in die betreffenden Tabellenblätter zu  _
kopieren.
For lngCount = 4 To lngRow 'Was bwirkt dieser Eintrag?
strTab = .Cells(lngCount, 4).Text
lngEinf = 32
For lngSpalte = 40 To 53
If .Cells(lngCount, lngSpalte).Value > 1 Then
Worksheets(strTab).Cells(lngEinf, 2) = .Cells(1, lngSpalte).Value
Worksheets(strTab).Cells(lngEinf, 6) = .Cells(2, lngSpalte).Value
Worksheets(strTab).Cells(lngEinf, 8) = .Cells(lngCount, lngSpalte).Value
lngEinf = lngEinf + 1
End If
Next lngSpalte
Next lngCount
Worksheets(3).Select
End With
Link zur Musterdatei: https://www.herber.de/bbs/user/111328.xls
Was muss da noch eingefügt oder geändert werde, um die Werte und Formate zu kopieren?
Vielen Dank für die Hilfe hier.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen mit Formatierung in mehrere Tabellenblätter
08.02.2017 17:58:24
ChrisL
Hi Ralf
Worksheets(strTab).Cells(lngEinf, 6) = .Cells(1, lngSpalte).Value

wird zu...
.Cells(1, lngSpalte).Copy Worksheets(strTab).Cells(lngEinf, 6)
usw.
cu
Chris
AW: Zellen mit Formatierung in mehrere Tabellenblätter
08.02.2017 18:44:13
Ralf
Hallo Chris,
vielen Dank schon mal, das sieht ganz gut aus.
Neues Problem: In einigen Zellen stehen auch Formeln. Bei der reinen Datenübernahme (wie sie vorher in dem Makro war) werden die Werte richtig übernommen. Mit der Übernahme durch deine Version mit .Copy werden jetzt die Formeln mit übernommen und entsprechend fehlen die Bezüge in den neuen Tabellenblättern.
Was muss ich ändern, um nicht die Formeln, sondern sowohl die Formatierungen als auch die Werte (Ergebnisse der Formeln) zu übernehmen.
Ich wusste nicht, dass das ein Problem wird durch die neue Version, sonst hätte ich gleich geschrieben, dass in den Zellen auch formeln stehen können - Sorry.
Danke nochmal.
SG
Ralf
Anzeige
AW: Zellen mit Formatierung in mehrere Tabellenblätter
09.02.2017 00:45:28
Werner
Hallo Ralf,
dann so:
If .Cells(lngCount, lngSpalte).Value > 1 Then
Worksheets(strTab).Cells(lngEinf, 2).Copy
.Cells(1, lngSpalte).PasteSpecial xlPasteValues
.Cells(1, lngSpalte).PasteSpecial xlPasteFormats
Worksheets(strTab).Cells(lngEinf, 6).Copy
.Cells(2, lngSpalte).PasteSpecial xlPasteValues
.Cells(2, lngSpalte).PasteSpecial xlPasteFormats
Worksheets(strTab).Cells(lngEinf, 8).Copy
.Cells(lngCount, lngSpalte).PasteSpecial xlPasteValues
.Cells(lngCount, lngSpalte).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
lngEinf = lngEinf + 1
End If
Gruß Werner
Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige