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, 13: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, 13:56
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 13: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, 14:51
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 15:14 von chris-ka.)
(24.02.2015, 14: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, 14: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, 15:26
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2015, 15: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
|