Registriert seit: 26.01.2015
Version(en): 2003
hallo,
ich habe hier einen VBCode
PHP-Code: Sub Verschachteln() Dim ws1 As Worksheet, ws2 As Worksheet, ws As Worksheet, r1 As Range, r2 As Range Set ws1 = ThisWorkbook.Worksheets("Tabelle1") Set ws2 = ThisWorkbook.Worksheets("Tabelle2") Set ws = ThisWorkbook.Worksheets("Tabelle3") Set r1 = ws1.Range("A1:D100") Set r2 = ws2.Range("E1:H100") For i = 1 To r1.Rows.Count fz = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1 r1.Rows(i).Copy ws.Cells(fz, 1) r2.Rows(i).Copy ws.Cells(fz + 1, 1) Next End Sub
Ich habe aber nicht 3 verschiedene Tabellenblätter als nicht 1,2,3
sondern nur ein Tabellenblatt1
PHP-Code: Set ws1 = ThisWorkbook.Worksheets("Tabelle1") Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
Ist klar Tabelle1 für ws1
und Tabelle1 für ws2
Nun mein Problem:
PHP-Code: Set ws = ThisWorkbook.Worksheets("Tabelle3")
Dies soll auch Tabellenblatt1 sein und zwar die Spalte GE
Wie ändere ich das?
Wie schreibt man/Frau das?
danke für jede Hilfe
LG
Angelina
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
Hallo Angelina,
Zitat:Ich habe aber nicht 3 verschiedene Tabellenblätter als nicht 1,2,3
sondern nur ein Tabellenblatt1
Dann brauchst du auch nur ein Tabellenblatt deklarieren bzw. intitalisieren oder kannst es gleich ganz weg lassen da ohnehin nur in den einem Blatt gearbeitet wird.
Code: Sub Verschachteln()
Dim ws As Worksheet 'deklarieren
Dim r1 As Range
Set ws = ThisWorkbook.Worksheets("Tabelle1") 'initalisieren
Set r1 = ws.Columns("GE:GE") 'Dies soll auch Tabellenblatt1 sein und zwar die Spalte GE
End Sub
War das jetzt die Frage oder soll damit auch noch etwas gemacht werden?
:) aber an Nachfragen bist Du sicherlich schon gewöhnt.
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Registriert seit: 26.01.2015
Version(en): 2003
(24.02.2015, 12:05)chris-ka schrieb: Hallo Angelina,
Zitat:Ich habe aber nicht 3 verschiedene Tabellenblätter als nicht 1,2,3
sondern nur ein Tabellenblatt1
Dann brauchst du auch nur ein Tabellenblatt deklarieren bzw. intitalisieren oder kannst es gleich ganz weg lassen da ohnehin nur in den einem Blatt gearbeitet wird.
Code: Sub Verschachteln()
Dim ws As Worksheet 'deklarieren
Dim r1 As Range
Set ws = ThisWorkbook.Worksheets("Tabelle1") 'initalisieren
Set r1 = ws.Columns("GE:GE") 'Dies soll auch Tabellenblatt1 sein und zwar die Spalte GE
End Sub
War das jetzt die Frage oder soll damit auch noch etwas gemacht werden?
:) aber an Nachfragen bist Du sicherlich schon gewöhnt.
hallo chris-ka,
ja ja ... beschämendes Verhalten ... aber vergessen wir es :15:
hm... dein Vorschlag verstehe ich jetzt nicht ganz
Warum?
woher ist in deinem Vorschlag der Bereich bekannt?
Code: Set r1 = ws1.Range("A1:D100")
Set r2 = ws2.Range("E1:H100")
Tabellenblatt1 hat 3 Spalten
sagen wir mal
Spalte A
Spalte B
und die Spalte GE
A und B wird nach GE verschachtelt - zeilenweise
oder denke ich wieder falsch?
LG
Angelina
Registriert seit: 01.11.2014
Version(en): 2007, 2010
Hallo Angelina,
versuch es mal so
Code: Sub Verschachteln2()
Dim ws1 As Worksheet, r1 As Range, r2 As Range
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
Set r1 = ws1.Range("A1:D100")
Set r2 = ws1.Range("E1:H100")
For i = 1 To r1.Rows.Count
fz = ws1.Cells(Rows.Count, 187).End(xlUp).Row + 1
r1.Rows(i).Copy ws1.Cells(fz, 187)
r2.Rows(i).Copy ws1.Cells(fz + 1, 187)
Next
End Sub
Gruß
Max
Folgende(r) 1 Nutzer sagt Danke an Max für diesen Beitrag:1 Nutzer sagt Danke an Max für diesen Beitrag 28
• Angelina
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
24.02.2015, 12:56
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 12:57 von chris-ka.)
Hi,
Code: Sub Verschachteln()
Dim ws As Worksheet, i As Long, fz as long
Set ws = ThisWorkbook.Worksheets("Tabelle1")
With ws
For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile in Spalte A auf dem Blatt Tabelle1
fz = .Cells(Rows.Count, "GE").End(xlUp).Row + 1 'erste freie Zelle in Spalte GE
.Cells(i, 1).Copy .Cells(fz, "Ge") 'kopiere die Zellen aus A in Spalte GE
.Cells(i, 2).Copy .Cells(fz + 1, "GE") 'kopiere die Zellen aus B in Spalte GE
Next
End With
End Sub
wobei jetzt nicht zeilenweise sondern Zellen in Spalte GE zusammengeführt werden.
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Registriert seit: 01.11.2014
Version(en): 2007, 2010
Hi Chris,
so wie ich das verstehe wurde in dem Ursprungs-Makro doch zeilenweise aus unterschiedlichen Bereichen und Blättern
kopiert und dann jede gerade kopierte Zeile unter die zuvor kopierte Zeile eingefügt.
Soll das jetzt anders sein?
Gruß
Max
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
24.02.2015, 13:51
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 14:14 von chris-ka.)
(24.02.2015, 13:07)Max schrieb: Hi Chris,
so wie ich das verstehe wurde in dem Ursprungs-Makro doch zeilenweise aus unterschiedlichen Bereichen und Blättern
kopiert und dann jede gerade kopierte Zeile unter die zuvor kopierte Zeile eingefügt.
Soll das jetzt anders sein?
Gruß
Max
Hallo Max,
keine Ahnung!
ich habe lt. den Angaben von Angelina den Code jetzt umgebaut. (siehe Zitat)
Aber ich gebe Dir Recht der Ursprungscode und die Beschreibung was erreicht werden sollte weichen von einander ab....
mal schauen was Angelina dazu sagt.
Zitat:sagen wir mal
Spalte A
Spalte B
und die Spalte GE
A und B wird nach GE verschachtelt - zeilenweise
lg
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Registriert seit: 26.01.2015
Version(en): 2003
(24.02.2015, 13:07)Max schrieb: Hi Chris,
so wie ich das verstehe wurde in dem Ursprungs-Makro doch zeilenweise aus unterschiedlichen Bereichen und Blättern
kopiert und dann jede gerade kopierte Zeile unter die zuvor kopierte Zeile eingefügt.
Soll das jetzt anders sein?
Gruß
Max
hallo,
zwei Spalten sollen zeilenweise verschachtelt werden.
Das wäre dann die ZielspalteGE
Erste Zelle aus der SpalteA
Erste Zelle aus der SpalteB
Zweite Zelle aus der SpalteA
Zweite Zelle aus der SpalteB
usw.
habe es nun so:
das geht auch jedoch beginnt das schreiben in der Spalte GE nicht in der ersten Zelle
sondern in der zweiten - es soll aber direkt in der ersten Zeile der Spalte GE anfangen.
PHP-Code: Dim ws1 As Worksheet, ws2 As Worksheet, ws As Worksheet, r1 As Range, r2 As Range Dim i As Long Dim fz As Long
Set ws1 = ThisWorkbook.Worksheets("F") ' Spalte GG Set ws2 = ThisWorkbook.Worksheets("F") ' Spalte GF Set ws = ThisWorkbook.Worksheets("F") 'Spalte GE Set r1 = ws1.Range("GG1:GG100") 'A Set r2 = ws2.Range("GF1:GF100") 'B For i = 1 To r1.Rows.Count fz = ws.Cells(Rows.Count, 187).End(xlUp).Row + 1 r1.Rows(i).Copy ws.Cells(fz, 187) r2.Rows(i).Copy ws.Cells(fz + 1, 187) Next
Angelina
Registriert seit: 01.11.2014
Version(en): 2007, 2010
24.02.2015, 14:26
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 14:27 von Max.)
Damit Du dierekt in die erste Zeile Spalte GE schreibst, musst Du nur die Codezeile
Code: fz = ws.Cells(Rows.Count, 187).End(xlUp).Row + 1
gegen diese ersetzen
Code: fz = ws.Cells(Rows.Count, 187).End(xlUp).Row
Gruß
Max
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
Hallo Angelina,
Code: Sub Verschachteln()
Dim ws As Worksheet, i As Long, fz As Long
Set ws = ThisWorkbook.Worksheets("F")
fz = 1
With ws
For i = 1 To 100 'wenn es 100 sein sollen...
.Cells(i, "gg").Copy .Cells(fz, "Ge")
.Cells(i, "gf").Copy .Cells(fz + 1, "GE")
fz = Cells(Rows.Count, "GE").End(xlUp).Row + 1
Next
End With
End Sub
p.s es würde wesentlich schneller gehen wenn man mit einem Array arbeiten würde, wurdest Du das auch in Betracht ziehen?
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:1 Nutzer sagt Danke an chris-ka für diesen Beitrag 28
• Angelina
|