Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Werte aus best. Bereich kopieren

VBA - Werte aus best. Bereich kopieren
28.01.2013 15:51:16
Dominic
Hi zusammen,
aus einem vorherigen Thread hier in diesem Forum habe ich folgendes VBA Script erhalten:
Dim Ze As Long
For Ze = 36 To 1164 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 3 And [B2] = 1 Then
For Ze = 36 To 1014 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 4 And [B2] = 1 Then
For Ze = 36 To 1638 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 5 And [B2] = 1 Then
For Ze = 36 To 1974 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 6 And [B2] = 1 Then
For Ze = 36 To 1122 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 7 And [B2] = 1 Then
For Ze = 36 To 1476 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
End If
und folgendes Script zur "Übergabe" bestimmter Daten in ein anderes Tabellenblatt (Export).
Dim D
D = Sheets("Überblick").Range("I7").Value
Sheets("Export").Range("J8").Value = D 'Jahr
Die beiden funktionieren super, aber ich muss nun beide kombinieren, und das bekomme ich nicht hin.
Ich benötige eine Übergabe meiner Werte aus dem Tabellenblatt "Überblick" ins Tabellenblatt "Export". Der zu kopierende Bereich ist abhängig von folgenden Zellen:
B1
B2
I1
und B6.
1)
Wenn B1=1 und B2=1 und I2=1
Dann sollen die Werte aus B31 - O31 und jede 6. Zeile in das Tabellenblatt Export untereinander ab B13-O13 rein kopiert werden, aber nur die Werte - nicht die Formeln die im Blatt "Überblick" dahinter stehen. Außerdem müssen diese übertragenen Werte dann als "Währung" mit € Symbol formatiert werden, und jede zweite Zeile farbig (z. B. grau) hinterlegt werden - zur besseren Übersichtlichkeit.
Heißt Nach B31-O31 kommt B37-O37, dann B43-O43 usw.
Das ganze bis zum Ende - abhängig von Zelle B6, denn wenn
B6= 2 dann bis zur Zeile 1128
B6= 3 dann bis 978
B6= 4 dann bis 1602
B6= 5 dann bis 1.998
B6= 6 dann bis 1.086
B6= 7 dann bis 1.440
2)
Wenn B1=2 und B2=1 und I2=1 Dann sollen die Werte aus den Zellen B31- bis zum Ende O... abhängig von Zeile B6 übertragen werden. Wichtig hierbei ist, dass jede 6 Zeile also B36, dann B42, B48 usw. wenn sie ins Tabellenblatt Export übertragen wird, die Zeilenhöhe 4.5 Rows(Ze).RowHeight = 4.5 zugewiesen bekommt - und als Zellenhintergrundfarbe die Farbe 477335 (VBA Farbcode).
Außerdem muss hierbei beachtet werden dass die Zellen unterschiedliche Formatierungen Währung oder Prozent aufweisen. Idealerweise sollten diese ebenfalls mit übernommen werden.
In Spalte B sind immer nur Überschriften ( Texte ) für die rechts daneben liegenden Werte aufgeführt. Ab Spalte C-O jeweils folgen dann folgende Formatierungen
C31:O31 - Währung
C32:O32 - Währung
C33:033 - Währung
C34:O34 - Prozent (2 Nachkommastellen)
C35:O35 - Währung
Zeile 36 vollständig leer mit oben genannter "Füllfarbe".
Ab C37:O37 läuft es nach diesem Muster so weiter.
und Zeile 42 ist dann wieder leer - "als optische Abtrennung" zwischen den Zeilen, zur Steigerung der Übersichtlichkeit.
3)
Wenn B1=1 und B2=2 und I2=1
Dann sollen die Werte aus dem Tabellenblatt B2006:O2336 in das Tabellenblatt Export übernommen werden. Idealerweise mit den gleichen Zellformatierungen wie die Ursprungsdaten aus B2006 bis =2336 im Tabellenblatt Überblick. Heißt selbe Rahmenlinien, selbe Formatierung (Prozent oder Zahl, Schriftgröße usw).
Vielen Dank im Voraus! :)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Werte aus best. Bereich kopieren
29.01.2013 09:38:15
Dominic
Hi,
kann mir hier bitte jemand weiterhelfen? :)
Ich weiß es ist ein wenig komplex mein Konstrukt - aber ich hoffe es geht dennoch.
Möchte nicht für jede Zeile einen separaten Kopierbefehl einfügen - das würde zwar dann ebenfalls funktionieren, aber mit der Variante "jede 6 Zeile" wäre es deutlich flexibler und sicher schneller. :)

AW: VBA - Werte aus best. Bereich kopieren
03.02.2013 09:49:52
Hajo_Zi
In deinem Code fehl ein If.
für den zweiten Teil schreibe
Sheets("Export").Range("J8").Value = Sheets("Überblick").Range("I7").Value
Was ist eine Kombination Teil1 und 2

Anzeige

343 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige