Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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

sheet an richtiger stelle einfügen VBA

sheet an richtiger stelle einfügen VBA
04.11.2018 11:09:55
David
Hallo,
ich möchte über VBA ein neues Sheet anlegen.
In dem Workbook gibt es bereits einige Sheets, die nach Datum sortiert sind.
DAs VBA soll nun in allen sheets das datum nachlesen, mit dem Datum des neu anzulegenden vergleichen und wenn bereits ein sheet mit einem höheren datum existiert das neue davor anlegen (ansonsten an das ende des workbooks)
mir gelingt es leider nicht das richtige sheet auszuwählen.
Hier mein Versuch:
Vielleicht kann mich mal jemand auf die Sprünge helfen.
Danke Euch!
David
' neues blatt anlegen und mit daten bef?llen
Sub create_worksheet(Veranstaltung As String, Datum As Date, Zeit_shop As String, Zeit_vorort As String, v_name As String, Verantwortlich As String)
Dim insert_location As String
Dim wochentag As String
' neues blatt an richtiger Stelle einf?gen
For Each ws In ActiveWorkbook.Sheets
ws.Cells(8, 4).NumberFormat = "dd.mm.yyyy"
If ws.Cells(8, 4).Value > Datum Then
insert_location = ActiveSheet.Name:
End If
Next ws
If insert_location = "" Then
Worksheets("Master").Copy After:=Sheets(Sheets.Count)
Else
Worksheets("Master").Copy Before:=Sheets(insert_location)
End If

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 11:13:01
Hajo_Zi
Füge es doch ein und dann sortieren.
http://hajo-excel.de/gepackt/vba/register_sortieren.zip

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 11:27:52
Herbert
Hallo David,
so wie Hajo es schon sagte: Füge das neue Sheet einfach ein und sortiere dann die gesamte Arbeitsmappe. Und damit geht es auch:
Sub TabellenSortierenAufsteigend()
Dim x, y, Anzahl
Dim ws As Worksheet
Set ws = ActiveSheet
Anzahl = ActiveWorkbook.Worksheets.Count
For x = 1 To Anzahl
For y = x To Anzahl
If Worksheets(y).Name  Worksheets(x).Name Then
Worksheets(y).Move Before:=Worksheets(x)
End If
Next y
Next x
Set ws = Nothing
End Sub
Servus
Anzeige
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 12:09:11
David
Hallo,
Danke für eure Antworten
im Nachhinein zu Sortieren ist natürlich auch eine Möglichkeit.
In meinem Falle sortiere ich nicht nach WS name sonder nach einen Datum in den sheets.
Ich habe daher folgende Anpassung gemacht:
Set ws = ActiveSheet
Anzahl = ActiveWorkbook.Worksheets.Count
For x = 1 To Anzahl
For y = x To Anzahl
If Worksheets(y).Cells(8, 4) > Worksheets(x).Cells(8, 4) Then
Worksheets(y).Move Before:=Worksheets(x)
End If
Next y
Next x
Set ws = Nothing
Aber irgendwie tut das gar nichts :(
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 12:40:12
Herbert
Schau mal deinen und meinen Code genau an! Und, fällt dir was auf? Genau! Du schreibst
If Worksheets(y).Cells(8, 4) > Worksheets(x).Cells(8, 4) Then

und ich
If Worksheets(y).Name > Worksheets(x).Name Then

Servus
Anzeige
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 14:10:29
David
Hallo Herbert,
da habe ich mich vermutlich unklar ausgedrückt.
Das ich einen veränderten Code verwendet habe ist mir schon klar.
Ich will aber auch nicht die Namen der sheets vergleichen sondern den jeweiligen Inhalt der Zellen.
Die Sortierung erfolgt nicht nach dem Namen der Sheets.
Daher meine Anpassung.
Grüße,
David
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 14:22:39
Daniel
Hi
im Prinzip ist dein Code schon gut und richtig, du hast nur nicht beachtest, dass du die Schleife mit Exit For abbrechen solltest, sobald du das erste größere Datum gefunden hast.
wenn die Schleife bis zum Ende weiter läuft, wird dein neues Blatt immer an der vorletzten Stelle eingefügt, wenn mehrere Sheets mit größerem Datum vorhanden sind.
If ws.Cells(8, 4).Value > Datum Then
insert_location = ActiveSheet.Name
Exit for
End If
Gruß Daniel
Anzeige
AW: sheet an richtiger stelle einfügen VBA
04.11.2018 18:00:18
David
Hallo Daniel,
perfekt! Daran lag es. Vielen Dank.
Jetzt tut mein Sheet, so wie ich es will.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige