Tabelle hinter Quelltabellenblatt einfügen

Bild

Betrifft: Tabelle hinter Quelltabellenblatt einfügen
von: Hermann
Geschrieben am: 01.11.2015 15:29:22

Hallo zusammen,
ich bekomme es nicht hin, daß die neu eingefügten Blätter 01Urlaub, 02Urlaub usw.
hinter der Tabelle "Urlaub" stehen.
Sheets.Add After:= hat auch nicht funktioniert.
Code:
For i = 23 To lngLC Step 3
k = k + 1
Set wksDst = .Sheets.Add(, .Sheets(k))
wksDst.name = wksSrc.Cells(1, 20 + 3 * k) & "Urlaub"
wksSrc.Columns(1).Resize(, 22).Copy wksDst.Cells(1, 1)
wksSrc.Columns(20 + 3 * k).Resize(, 3).Copy wksDst.Cells(1, 23)
next
Vielleicht kann mir jemand helfen.
Gruß, Hermann

Bild

Betrifft: AW: Tabelle hinter Quelltabellenblatt einfügen
von: Daniel
Geschrieben am: 01.11.2015 15:37:00
Hi
probiers mal so

k = Sheets("Urlaub").Index
for i = 23 to lngLC Step 3
    set wksDst = .Sheets.Add(After:=.Sheets(k)
    wksDst.name = wksSrc.Cells(1, i) & "Urlaub" 
    wksSrc.Columns(1).Resize(, 22).Copy wksDst.Cells(1, 1)
    wksSrc.Columns(i).Resize(, 3).Copy wksDst.Cells(1, 23)
    k = k + 1
Next
Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 15:38:13
du findest sicherlich schon raus wo.
Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Hermann
Geschrieben am: 01.11.2015 16:06:26
Hallo Daniel,
ich habe die fehlende Klammer eingefügt. Sheets(k)). Leider funktioniert es so nicht.
"k" ist die Variable wie oft nach Spalte 22 (ab Sp.23) dreiSpaltenzusammen vorkommen.
z.B. Anzahl Gesamtspalten 31. Hinter Sp22: 1. Block (23,24,25); 2. Block(26,27,28);3. Block(29,30,31) also k = 3. Es werden 3 Tabellenblätter mit der Bezeichnung aus (1;23)&Urlaub, (1;26)&Urlaub,
und (1;29)&Urlaub eingefügt. Das funkt. Die drei Tabellen werden aber vor meiner Quelltabelle(Urlaub) eingefügt.
Gruß, Hermann

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 16:21:43
Hi
das funktioniert schon
das k ist in deinem Codebeispiel doch nur die Zählvariabele, wie oft du die Schleife schon durchgelaufen hast.
da diese Variabele aber im Gezeigten Code nicht direkt gebraucht wird, habe ich mir erlaubt sie anderweitig zu verwenden, dh ich lege hier die Position des des Blattes "Urlaub" ab und zähle sie in der Schleife immer +1, damit die Einfügeposition des nächsten Blattes stimmt.
wenn du mit mehreren Datien arbeitest (worauf der Punkt vor dem Sheets() hinweist), dann musst du die Postition des Blattes "Urlaub" auch richtig ermitteln und darfst in der Zeile
k = Sheets("Urlaub").Index den Punkt nicht vergessen, dh auch diese Zeile muss lauten
k = .Sheets("Urlaub").Index
Ich gebe bei .Sheets.Add mit AFTER das Blatt an, nachdem das neue Blatt eingefügt werden soll!
das solltest du auch beachtet haben.
wenn du die Variabele k anderweitig noch verwendest, dann kannst du natürlich auch eine Andere Variable verwenden, um die Position des Blattes "Urlaub" und damit die Einfügeposition des nächsten Blattes zu speichern.

Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Hermann
Geschrieben am: 01.11.2015 16:45:06
Hallo Daniel,
ich verstehe deine Idee als Nicht-VBA-ler und werde eine neue Variable verwenden.
suche bitte mal in meinem Code die Zeile
wksDst.name = wksSrc.Cells(1, 20 + 3 * k) & "Urlaub"
Da muß doch zu Beginn der Schleife k=1 sein sonst wird mir das eingefügte Tabellenblatt falsch beschriftet. Da ich mich in VBA nicht auskenne, frage ich dich dazu um daraus zu lernen.
Gruß, Hermann

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 16:59:18
Hi
ja, aber wenn du meinen Code gelesen hättest (das darfst du auch als Nicht-VBAler), dann hätte dir auffallen müssen, dass ich an dieser Stelle gar nicht die Variable k verwende sondern direkt i, weil i hier den gleichen Wert hat wie 20 + 3 * k (vergleiche einfach mal mit der Schleifendefinition: for i = 23 to xxx Step 3)
Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Hermann
Geschrieben am: 01.11.2015 17:25:58
Hallo Daniel,
du bist ein "Fuchs", ohne deinen Hinweis i und k zu vergleichen, wäre ich im Leben nicht darauf gekommen. Ich versuchte mein Bestes aber es ist mir nicht gelungen.
Ich habe alles rückgebaut und es funktioniert.
Entschuldige nochmal, daß ich dich so lange aufgehalten habe.
Aber ich habe wieder was dazu gelernt.
Kannst Du mir den Code noch so ändern, daß das Blatt mit Namen aus (Zeile 1, Spalte 23) das 1. hinter dem Quellenblatt "Urlaub" ist. Momentan ist es das Letzte.
Gruß Hermann

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 17:38:39
Hi
mein Code ist so geschrieben, dass das Blatt mit dem Namen aus 23 das erste nach Urlaub ist und das mit dem Namen aus 29 das letzte.
dh der Fehler besteht wahrscheinlich in deinem Code in seiner letzten Version und die kenne ich nicht.
hast du berücksichtigt, dass du k (bzw die Variable, die du für die Postition des Blattes Urlaub verwendest) in der Schleife um 1 hochzählen musst?
also das k = k + 1 muss drin bleiben und zwar an der Stelle, wo ich es hingeschrieben habe.
sprich: das erste Blatt muss direkt nach "Urlaub" (Blatt k) eingefügt werden, das zweite dann nach dem ersten Blatt nach Urlaub und das dritte nach dem zweiten Blatt nach Urlaub.
wenn du das Blatt immer direkt nach "Urlaub" einfügen willst, dann kannst du dir das mit der Variable auch sparen, dann muss die Schleife aber rückwärts laufen:

for i = lngLC - 2 to 23 Step - 3
    Set ... = Sheets.Add (after:=Sheets("Urlaub"))

Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 17:38:40
Hi
mein Code ist so geschrieben, dass das Blatt mit dem Namen aus 23 das erste nach Urlaub ist und das mit dem Namen aus 29 das letzte.
dh der Fehler besteht wahrscheinlich in deinem Code in seiner letzten Version und die kenne ich nicht.
hast du berücksichtigt, dass du k (bzw die Variable, die du für die Postition des Blattes Urlaub verwendest) in der Schleife um 1 hochzählen musst?
also das k = k + 1 muss drin bleiben und zwar an der Stelle, wo ich es hingeschrieben habe.
sprich: das erste Blatt muss direkt nach "Urlaub" (Blatt k) eingefügt werden, das zweite dann nach dem ersten Blatt nach Urlaub und das dritte nach dem zweiten Blatt nach Urlaub.
wenn du das Blatt immer direkt nach "Urlaub" einfügen willst, dann kannst du dir das mit der Variable auch sparen, dann muss die Schleife aber rückwärts laufen:

for i = lngLC - 2 to 23 Step - 3
    Set ... = Sheets.Add (after:=Sheets("Urlaub"))

Gruss Daniel

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Hermann
Geschrieben am: 01.11.2015 17:58:06
Hallo Daniel,
das k = Sheets("Urlaub").Index war in meiner For Schleife.
Jetzt ist alles perfekt.
Und ich verstehe auch den Code.
Nochmals vielen Dank,
Gruß, Hermann

Bild

Betrifft: AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 01.11.2015 18:02:27
"Und ich verstehe auch den Code."
das ist das wichtigste.
Gruss Daniel

Bild

Betrifft: 10 mal AW: ups noch ein ")" vergessen
von: WF
Geschrieben am: 01.11.2015 21:54:45
.

Bild

Betrifft: 11 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:11:17
.

Bild

Betrifft: 12 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:11:33
.

Bild

Betrifft: 13 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:11:47
.

Bild

Betrifft: 14 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:12:06
.

Bild

Betrifft: 14 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:12:20
.

Bild

Betrifft: 16 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:12:42
.

Bild

Betrifft: 17 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:12:56
.

Bild

Betrifft: 18 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:13:10
.

Bild

Betrifft: 19 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:13:32
.

Bild

Betrifft: 20 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:13:47
.

Bild

Betrifft: 21 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:14:08
.

Bild

Betrifft: 22 mal AW: ups noch ein ")" vergessen
von: Daniel
Geschrieben am: 02.11.2015 01:14:24
.

Bild

Betrifft: Fehler: hier war's 15 mal
von: WF
Geschrieben am: 02.11.2015 12:20:32
.

Bild

Betrifft: Jetzt dreht er vollends durch und vermüllt das ...
von: Luc:-?
Geschrieben am: 02.11.2015 03:07:52
…Forum! Auf WP (Wikipedia) wäre jetzt eine (berechtigte) VM (Vandalismus-Meldung) fällig! :-[
Luc :-?

Bild

Betrifft: Viell war's aber auch sein 'Troll-Alterego', ...
von: Luc:-?
Geschrieben am: 02.11.2015 03:13:49
…quasi die dunkle Seite dieses pseudonym-schizophrenen „Forumsers“… :-]

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabelle hinter Quelltabellenblatt einfügen"