Microsoft Excel

Herbers Excel/VBA-Archiv

Zellbereiche als Werte in 2. Tabelle einfügen | Herbers Excel-Forum


Betrifft: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 19.02.2012 20:33:42

Hallo Forumsbesucher,

ich ersuche um Hilfe bei den VBA-Experten unter euch mit folgendem Anliegen:

In meiner Mappe befinden sich zwei (ausgeblendete) Tabellen mit identischer Struktur und Formeln:
Tabelle2 und Tabelle2a.

Ich möchte nun – quasi zur Sicherung Daten der Tabelle2 - 15 Zellbereiche aus der Tabelle2 in die Tabelle 2a kopieren und diese Zellbereiche danach in der Tabelle2 löschen.
Da andere Tabellen mittels Formeln auf die betreffenden Zellen der Tabelle2 zugreifen dürfen die Daten nicht ‚verschoben‘ werden. Sie sollten somit kopiert und als Inhalte in den gleichen Zellbereich von Tabelle2a eingefügt und schließlich aus der Tabelle2 gelöscht werden.
Es handelt sich dabei um die Daten der Spalten C bis L (10 Spalten) beginnend ab Zeile 2 immer insgesamt 16 Zeilen, jeweils nach drei weiteren Zeilen wieder die nächsten 16 Zeilen, insgesamt 15 Datenblöcke.
Der erste Datenblock wäre demzufolge Zellbereich C2:L17, der zweite C21:L36 und der letzte (der 15.) würde den Zellbereich C268 bis L283 beinhalten.

Ein derartiges Makro hätte den Vorteil, dass ich mit einem weiteren Makro – bei Vertauschen der Tabellennamen - die Daten aus Tabelle2a wieder in Tabelle2 zurückschreiben könnte.

Da die Tabellen ausgeblendet sind sollte das Makro aus jeder anderen Tabelle der Mappe gestartet werden können.

Ich hoffe, mein Anliegen nachvollziehbar beschrieben zu haben und freue mich über eure Hilfe.
mfg
Fritz

  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Matthias
Geschrieben am: 19.02.2012 21:10:20

Hallo Fritz,

benutz doch den Makrorecoder :

Im Blatt2 Bereiche markieren und kopieren
Blatt 2 a anwählen die Bereiche markieren und "nur Werte einfügen"
In Blatt 2 wechseln und entfernen drücken

sollte dir schon mal helfen..

es geht natürlich auch anders...


Gruß Matthias


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 19.02.2012 21:37:35

Hallo Matthias,

die Tabellen sind ausgeblendet, fünfzehn getrennte Textbereiche, mit gleichem Abstand,
hab mir vorgestellt, dass das anders 'komfortabler' zu bewerkstelligen ist.

mfg
Fritz


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Matthias
Geschrieben am: 19.02.2012 22:29:26

Hallo Fritz,

ich bin im VBA auch noch nicht soweit und Arbeite mich deshalb langsam ran,

die Datei im Anhang steuert über den Button in Tabelle1 das Makro (mit Recorder)

Reicht dir das so? Anhang: https://www.herber.de/bbs/user/78996.xlsm


Gruß Matthias


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 20.02.2012 09:40:50

Hallo Matthias,

hab den Code getestet: Das Makro tut das, was es soll. Damit hast Du mir schon sehr geholfen.
Allerdings hab ich den Eindruck, das Makro läuft unruhig und etwas lange, was wohl an der Verwendung von 'select' liegt. Ich lass die Frage deshalb 'noch offen', vielleicht kommt noch von einem der VBA-Experten ein Vorschlag zur Optimierung des Codes.

Nochmals vielen Dank für Deine Hilfe.

Viele Grüße
Fritz


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: hary
Geschrieben am: 20.02.2012 09:59:55

Hallo
versuch mal nach diesem Motto. Das loeschen kann noch mit Union machen.

Sub rueber()
Sheets("Tabelle2a").Range("C2:L17") = Sheets("Tabelle2").Range("C2:L17").Value
Sheets("Tabelle2").Range("C2:L17").ClearContents
Sheets("Tabelle2a").Range("C21:L36") = Sheets("Tabelle2").Range("C21:L36").Value
Sheets("Tabelle2").Range("C21:L36").ClearContents
End Sub

gruss hary


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 20.02.2012 10:30:12

Hallo Hary,

funktioniert soweit, vielen Dank.
Ich verstehe aber nicht, was Du mit 'Das loeschen kann noch mit Union machen' gemeint ist.
In dem vorliegenden Code ist das Löschen doch bereits vorgesehen oder was bedeutet dein Hinweis?

Viele Grüße
Fritz


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: hary
Geschrieben am: 20.02.2012 10:42:05

Hallo Fritz
Mit Union fasst man Bereiche zusammen. Dadurch spart man die einzelnen loeschzeilen.

Sub rueber()
With Sheets("Tabelle2")
Sheets("Tabelle2a").Range("C2:L17") = .Range("C2:L17").Value
Sheets("Tabelle2a").Range("C21:L36") = .Range("C21:L36").Value
Union(.Range("C21:L36"), .Range("C2:L17")).ClearContents 'loeschen in einer zeile, wichtig die  _
Punkte vor Range
End With
End Sub

gruss hary


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 20.02.2012 10:48:30

Hallo Hary,

vielen Dank für die hilfreiche Info.

Viele Grüße
Fritz


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: hary
Geschrieben am: 20.02.2012 11:02:33

Hallo Fritz
hier nochmal was mit Schleife. Teste mal ob die Bereiche passen.

Sub rueberanders()
Dim i As Long
With Sheets("Tabelle2")
 For i = 2 To 249 Step 19
   Sheets("Tabelle2a").Range("C" & i & ":L" & i + 15) = .Range("C" & i & ":L" & i + 15).Value
   .Range("C" & i & ":L" & i + 15).ClearContents
 Next
End With
End Sub

gruss hary


  

Betrifft: AW: Zellbereiche als Werte in 2. Tabelle einfügen von: Fritz_W
Geschrieben am: 20.02.2012 11:19:34

Hallo Hary,

finde es toll, dass Du Dich weiter um eine Optimierung des Codes bemühst.
Beim Test hat das mit dem Bereich nicht so recht geklappt, habe den Code daraufhin wie folgt geändert:

For i = 2 To 268 Step 19

Nun scheint es zu funktionieren!

nochmals Dank und viele Grüße
Fritz


Beiträge aus den Excel-Beispielen zum Thema "Zellbereiche als Werte in 2. Tabelle einfügen"