Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellen rechts einfügen

Tabellen rechts einfügen
31.10.2013 20:54:35
Schmidt
Hallo Leute
Ich möchte mehrere Tabellenblätter erzeugen und in eine Excel-Datei einfügen.
Aber rechts.
Ich habe das gefunden.
Sheets.Add after:=Worksheets(Worksheets.Count)
Und das habe ich.

Sub Blaetter_erzeugen()
Dim wksBlatt As Worksheet
Dim i As Integer
Dim x As Integer
For i = 1 To 31
Set wksBlatt = Sheets.Add
wksBlatt.Name = (i)
Set wksBlatt = Sheets.Add
x = (i) - 1
wksBlatt.Name = (i) & "-" & x
Next i
End Sub

Ich weiss aber nicht wie ich das zusammen füge.
Kann mir jemand helfen.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen rechts einfügen
31.10.2013 21:30:37
Mike
Mir erschliesst sich momentan nicht, ob die Struktur der Blätter so gewollt ist?
31-30, 31, 30-29, 30, 29-28, 29, usw.
Ist das so korrekt? Habe Deinen Code gerade mal probiert.^^

AW: Tabellen rechts einfügen
01.11.2013 13:44:19
Schmidt
Ja das stimmt.
Das sind die Tag (1) und die Nachtschichten (1-2) eines Monats.
Die Blätter sollten nach rechts eingefügt werden.
Gruß

AW: Tabellen rechts einfügen
01.11.2013 16:49:49
Mike
Ich weis nicht, ob das so funktioniert, wie Du es möchtest. Ich dachte mir, die Zahlen steigen der Reihe nach auf.
Sollte was anders aussehen, musst Du Dich noch mal melden.
Sub Blaetter2_erzeugen()
Dim c As Integer
Dim i As Integer
Dim x As Integer
ThisWorkbook.Activate
For i = 1 To 31
c = Worksheets.Count
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i)
Worksheets.Add
x = (i) - 1
ActiveSheet.Name = (i) & "-" & x
Next i
End Sub
Für die Richtigkeit des Codes gebe ich keine Gewähr. Aber es funzt. ;O)
Gruß Mike

Anzeige
AW: Tabellen rechts einfügen
02.11.2013 11:56:08
Schmidt
Hallo Mike
Ich habs noch ein bisschen abgeändert, weil die Schleife über 31 hinauslief.
Sub Blaetter2_erzeugen()
Dim c As Integer
Dim i As Integer
Dim x As Integer
ThisWorkbook.Activate
For i = 1 To 31
c = Worksheets.Count
x = (i) + 1
If x > 31 Then
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i)
Exit Sub
End If
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i) & "-" & x
Worksheets.Add
ActiveSheet.Name = (i)
Next i
End Sub
Natürlich haben einige Monate keine 31 Tage.
Ich müßte in der Schleife die 31 mit einer Variablen besetzen.
Gibt es irgendwas in VBA das mir sagt, wenn ich ein Jahr eingebe,
wieviel Tage die Monate dieses Jahres haben.
Gruß

Anzeige
AW: Tabellen rechts einfügen
02.11.2013 13:54:13
Mike

Sub MonatsendeTesten()
ThisWorkbook.Worksheets("tabelle2").Activate
Range("D3").Value = Monatsende(Range("D1").Value, Range("D2").Value)
End Sub
Function Monatsende(J As Integer, M As Integer) As Integer
If M = 2 Then
If J Mod 4 = 0 And J Mod 100  0 Or J Mod 400 = 0 Then
Monatsende = 29
Else
Monatsende = 28
End If
ElseIf M = 4 Or M = 6 Or M = 9 Or M = 11 Then
Monatsende = 30
Else
Monatsende = 31
End If
End Function
Diese Prozedur habe ich beim Recherchieren im Netz gefunden. Vielleicht auch hier.^^ Ist wirklich hilfreich.
Gruß Mike

Anzeige
AW: Tabellen rechts einfügen
02.11.2013 19:38:09
Schmidt
Hallo Mike
Ich möchte aber 12 Excel-mappen, soviel wie Monate im Jahr, erzeugen die jeweils soviel Sheets haben wie der Monat Tage hat.
Public Sub Create_File_and_Sheets(Month As String)' Month wird beim Aufruf der Sub geliefert    Dim test As Object
Dim i As Double
Dim xls As Object
Dim c As Integer
Dim x As Integer
Set test = CreateObject("Excel.Application")
test.Visible = False
Set xls = test.Workbooks.Add
xls.SaveAs App.Path & "\tt.xls" ' Hier müßte z.B. April.xls stehen
For i = 1 To 31 'Hier werden die Anzahl Sheets nach Anzahl der Tage des Monats
c = Worksheets.Count
x = (i) + 1
If x > 31 Then
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i)
Exit Sub
End If
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i) & "-" & x
Worksheets.Add
ActiveSheet.Name = (i)
Next i
xls.Save
test.Quit
Set xls = Nothing
End Sub
Soweit bin ich schon. Ich weiss nur nicht wie ich die Datei mit dem Monatsnamen speichern soll und
wie ich der For Schleife im Sub Blaetter2_erzeugen(), sage welcher Monat es ist.
Gruß

Anzeige
AW: Tabellen rechts einfügen
02.11.2013 20:20:47
Mike
erzeugen des Monatsnamen gelingt Dir sicher mit Hilfe von:
MonthName(Month(Datum))
Wo genau das jetzt hinkommt, müsste ich erst selber testen.

AW: Tabellen rechts einfügen
03.11.2013 12:56:46
Schmidt
Hallo Mike
Ich habs jetzt so gemacht.
Public Sub Create_File_and_Sheets(Monat As String, Days As Integer)
Dim test As Object
Dim i As Double
Dim xls As Object
Dim c As Integer
Dim x As Integer
Set test = CreateObject("Excel.Application")
test.Visible = False
Set xls = test.Workbooks.Add
xls.SaveAs App.Path & Monat & ".xls"   'Hier ist mein Problem1.In der Var. Monat steht der  _
Name
For i = 1 To Days
c = Worksheets.Count
x = (i) + 1
If x > 31 Then
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i)
Exit Sub
End If
Worksheets.Add After:=Worksheets(c)
ActiveSheet.Name = (i) & "-" & x
Worksheets.Add
ActiveSheet.Name = (i)
'xls.Save                             'Problem 2
Set xls = Nothing
Next i
test.Quit
End Sub
Ich habe aber leider noch 2 Probleme.
1.) Die Excel-Dateien werden auf dem Desktop und nicht in den Ordner Excel, auf dem Desktop, angelegt.
Aber die Datei heißt dann "ExcelJanuar"
2.) Es werden zuviele Instanzen von Excel geöffnet. Nach erzeugen von der Januar-Datei, motz er und sagt er kann kein Blatt mit gleichem Namen erzeugen. aber er sieht nicht das er schon im Feb. ist.
Wann und wo muß ich die erste Instanz, also Januar, schliessen.
Wenn du es brauchst schicke ich Dir das ganze Programm.
Gruß

Anzeige
AW: Tabellen rechts einfügen
03.11.2013 18:19:30
Schmidt
Hallo Mike
Das Programm funktioniert. Ich habe aber noch das Problem mit dem Abspeichern.
Als nächstes kommt noch ein Hammer.
Die erzeugten Tabellenblätter in den Mappen müssen nach einer Vorlage erstellt werden die im gleichen Ordner liegt.
Ich hoffe ich überstrapazier dich nicht.
Gruß

Tabellen von links nach rechts einfügen
02.11.2013 18:44:18
links
Hallo
Kann es sein das Du es andersrum willst?
Option Explicit
Sub Blaetter_erzeugen()
Dim wksBlatt As Worksheet
Dim i As Integer
Dim x As Integer
For i = 31 To 2 Step -1
Set wksBlatt = Sheets.Add
wksBlatt.Name = i
Set wksBlatt = Sheets.Add
x = i - 1
wksBlatt.Name = x & "-" & i
Next i
End Sub
Warum setzt Du i immer in Klammern?
Gruß Matthias

Anzeige
AW: Tabellen von links nach rechts einfügen
02.11.2013 19:24:22
links
Hallo Matthias
So wie ich das zuletzt gepostet habe funktioniert das auch.
Das mit dem i in Klammern ist eine blöde angewohnheit.
Danke für die Antwort.
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige