Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1592to1596
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
VBA: prüfen on TabName & akt. Jahr vorhanden
04.12.2017 15:25:25
Bernd
Hallo zusammen,
bräuchte mal Hilfe. Und zwar möchte ich beim Öffnen der Mappe prüfen ob TabName "abc" & aktuelles Jahr vorhanden ist, wenn nein dann anlegen.
Danke im Voraus!
Lieben Gruß aus Bremen
Bernd
Office 2016 Pro 32bit

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: prüfen on TabName & akt. Jahr vorhanden
04.12.2017 15:37:03
Matthias
Hallo Bernd
Option Explicit
Sub tt()
Dim x&
For x = 1 To Sheets.Count
If Sheets(x).Name = "abc" & Year(Now) Then
MsgBox "Das Blatt [abc" & Year(Now) & "] exsitiert schon"
Exit Sub
End If
Next
Worksheets.Add.Name = "abc" & Year(Now)
End Sub
Gruß Matthias
AW: VBA: prüfen on TabName & akt. Jahr vorhanden
04.12.2017 15:43:12
Bernd
Hallo Matthias,
Herzlichen Dank für deine Bemühungen. Es passt wieder immer bei dir!!!
Lieben Gruß aus Bremen
Bernd
Matthias, noch etwas vergessen
04.12.2017 16:18:47
Bernd
Hallo Matthias,
etwas hatte ich nicht bedacht und zwar ist der restliche Code ausgelegt auf Tabelle "abc2017". Im neuen Jahr 2018 würde den restliche Code auf die falsche Tabelle zugreifen.
Hier ein Beispiel:

Private Sub UserForm_Initialize()
Dim tbl As Worksheet
Dim strName As String
Set tbl = Worksheets("abc2017") ' im Jahr 2018 müsste es ("abc2018") heißen
Gibt es eine Möglichkeit, dass beim ersten Öffnen der Mappe im neuen Jahr, 1. die Abfrage, ob Tabelle vorhanden ist, durchläuft und sobald die neue Tabelle erstellt ist, der gesamte Code ebenfalls auf den neuen Tabellennamen umgestellt wird?
Lieben Gruß aus Bremen
Bernd
Anzeige
AW: Matthias, noch etwas vergessen
04.12.2017 16:46:45
Daniel
Hi
naja, wie du das aktuelle Jahr bekommst, kannst du dir doch aus dem Code von Matthias ableiten und dann diese Funktion (Year(Now)) immer dort einsetzen, wo du das aktuelle Jahr verwendest.
ich würde das mit dem Anlegen des Blattes etwas einfacher gestalten:
dim tbl as Worksheet
On Error Resume Next
set tbl = Worksheets("abc" & year(now))
On Error goto 0
if tbl is Nothing then
set tbl = Worksheets.Add
tbl.Name = "abc" & Year(Now)
end if
Gruß Daniel
AW: Matthias, noch etwas vergessen
04.12.2017 17:05:03
Bernd
Hallo Daniel,
Danke für deine Hilfe!!!
Habe ich dich richtig verstanden, dein Code ist von der Funktion exakt der Gleiche wie der von Matthias?
Und meinen restlichen Code soll ich so abändern:

Set tbl = Worksheets("abc") & Year(Now)

Analog meines vorherigen Beitrags.
Lieben Gruß aus Bremen
BErnd
Anzeige
AW: Matthias, noch etwas vergessen
04.12.2017 17:20:58
Daniel
naja, fast.
Matthias prüft nur, ob das Blatt vorhanden ist und fügt es gegebenenfalls hinzu.
Wenn man aber das Blatt auch noch einer Variablen zuweisen will, kann man beides kombiniert machen.
Man weist Excel einfach an, bei einem Fehler mit dem nächsten Programmschritt weiter zu machen und weist dann das Blatt einer Variable zu.
Dann prüft man, ob die Zuweisung funktioniert hat und erstellt das Blatt, falls nicht.
Ist zwar nach reiner Lehre keine saubere Programmierung, funktioniert aber ganz gut und man spart die Schleife.
Und Schleifen sind lästig, wenn man den Code im Einzelstep testen muss, daher versuche ich, Schleifen soweit wie möglich zu vermeiden.
Gruß Daniel
Anzeige
AW: Matthias, noch etwas vergessen
04.12.2017 17:50:05
Bernd
Hallo Daniel,
Danke für die tolle Erklärung :-)
Das hat mir sehr geholfen!!!
Lieben Gruß aus Bremen
Bernd
Alles Klar !!! owT
04.12.2017 17:20:13
Bernd

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige