PDA

Vollständige Version anzeigen : Formatierung


ulli2
05.01.2014, 18:51
Guten Abend,

benötige Hilfe bei der Lösung folgenden Problems.
In der Spalte E8:E38 ist die Formatierung 000 "/ 14" wobei die 14 das Jahr ist.
Diese Formatierung ändere ich jedes Jahr mit Hand. Das möchte ich ändern weiß aber nicht wie. Die Jahreszahl steht in Zelle B3 diese möchte ich dazu nutzen, soll heißen wenn in B3 - 2015 steht soll der genannte Bereich dann halt 000 "/ 15 formatiert werden.
Bitte um Hilfe wenn das überhaupt möglich ist.

GMG-CC
05.01.2014, 19:24
Moin,

das geht IMHO nur per VBA.
Ich helfe ja gerne, aber wenn ein einziges Mal im Jahr dieser "Riesen"-Aufwand fällig ist, da schreibe ich keine Zeile Code für. Dafür bin nämlich ICH zu faul ...

ulli2
05.01.2014, 19:37
Danke
habe überlegt ob ich einen Komentar dazu abgebe - ich lass es.
schönen Sonntag noch.

aloys78
05.01.2014, 20:44
Hallo Ulli,

eine Möglichkeit mit VBA; Code unter "DieseArbeitsmappe" ablegen. Bei jedem Open der Datei wird mit der aktuellen Jahreseintragung in B3 der Bereich formatiert.
Option Explicit
Private Sub Workbook_Open()
Dim y As Integer
With Worksheets("Tabelle1")
y = Right(Range("B3"), 2)
.Range("E8:E38").NumberFormat = "000" & """ / """ & y
End With
End Sub

Gruß
Aloys

ulli2
05.01.2014, 21:25
Danke Dir
ausgezeichnet - so habe ich mir das vorgestellt.

ulli2
06.01.2014, 20:18
Hallo aloys78

noch eine Frage dazu - wie sieht der Code aus wenn es nicht nur eine Tabelle sondern 12 sind.

aloys78
06.01.2014, 23:14
Hallo Ulli,
wie sieht der Code aus wenn es nicht nur eine Tabelle sondern 12 sind.
Wie heißen diese Tabellen ?
steht das Jahr in jeder dieser Tabellen ?

Gruß
Aloys

ulli2
07.01.2014, 09:12
Die Tabellennamen sind die Monate - Januar bis Dezember auch so geschrieben (ausgeschrieben).

aloys78
07.01.2014, 09:52
Hallo Ulli,

mein Vorschlag:
Option Explicit

'Version 2 vom 7.1.2014
Private Sub Workbook_Open()
Dim y As Integer 'die letzten beiden Stellen des Jahres
Dim t As Integer 'Nummer Tabellenblatt
For t = 1 To ThisWorkbook.Sheets.Count
With Worksheets(t)
Select Case .Name
Case Is = "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
y = Right(.Range("B3"), 2)
.Range("E8:E38").NumberFormat = "000" & """ / """ & y
Case Else
'no action
End Select
End With
Next t
End Sub


Gruß
Aloys

ulli2
07.01.2014, 19:43
Danke wunderbare Arbeit, haut bestens hin, ich bin begeistert.

ulli2
07.01.2014, 20:24
Hallo aloys78,
y = Right(.Range("B3", 2) hier bekomme ich eine Fehlermeldung -"Fehler beim kompilieren, erwarte Listentrennzeichen oder)"
habe mir eine Hilfszelle angelegt und spreche sie direkt an.
y = [D3] das haut hin.
Hast Du eine Erklärung für mich dafür.

aloys78
07.01.2014, 21:16
Hallo Ulli,
Hast Du eine Erklärung für mich dafür.
Nein - ich kann den Fehler hier nicht nachstellen; dafür habe ich aber Fragen.

Du hast doch die Datei getestet ?
Was hat sich danach verändert ?
Ist das Jahr in Zelle B3 jeder Monats-Tabelle ? Das habe ich nämlich unterstellt ?

Gruß
Aloys

ulli2
07.01.2014, 21:26
Ich hatte die Tabellen noch nich fertig als ich getestet habe. Das Jahr steht immer in Zelle B3 - dein Gedankengang ist richtig.

Werde mir die ganze Sache nochmals in Ruhe betrachten und dann melde ich mich noch einmal beii Dir.