Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formelzusammenstellung

Formelzusammenstellung
28.09.2006 14:28:47
flux
Hallo,
Ich bräuchte dringend Hilfe!
Ich muss eine Formel erstellen die folgende Nummer ergibt:
M06391
M= fester Buchstabe
06= aktueles Jahr
39= aktuelle KW
1= fortlaufende Nummer
Bei jedem speichern und neu öffnen müsste sich die "1" um eine Ziffer erhöhen.
Desweiteren kommt hinzu das bei jeder neuen KW, die forlaufende Zahl wieder auf 1 zurücksetzen soll.
Ist dies überhaupt so möglich?
Schon mal Danke im Voraus!
Sebastian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formelzusammenstellung
28.09.2006 15:33:53
UweD
Hallo
hab mal was gebastelt...
- Rechtsclick auf das kleine Excelsymbol in der Symbolleiste neben Datei
- Code anzeigen
- ins neue Fenster (DieseArbeitsmappe) den code reinkopieren


      
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
Dim Neu$, Konst$, Jahr$, KW As Byte, tmp As Date, Lnr%, Zelle
    
Set Zelle = Sheets("Tabelle1").Range("A1"'Rechnungsnummer steht in A1
    Jahr = Format(Date, "YY")
    Konst = 
"M"
    
'aktuelle KW ermitteln
        tmp = DateSerial(Year(Date + (8 - Weekday(Date)) Mod 7 - 3), 1, 1)
        KW = ((Date - tmp - 3 + (Weekday(tmp) + 1) 
Mod 7)) \ 7 + 1
    
'
    If Zelle.Value = "" Then 'neu anlegen
        Neu = Konst & Jahr & KW & "1"
    
Else
        
If KW > Mid(Zelle, 4, 2) Then 'neue KW
            Lnr = 1
        
Else 'gleiche KW
            Lnr = Mid(Zelle, 6) + 1
        
End If
        
'
        Neu = Konst & Jahr & KW & Lnr
    
End If
    
    
'Nr. in Zelle schreiben
    Sheets("Tabelle1").Range("A1") = Neu
    
End Sub 


Gruß UweD
(Rückmeldung wäre schön)
Anzeige
Update...
28.09.2006 15:45:42
UweD
Hallo nochmal
Es gab noch Probleme beim Jahreswechsel...
so dürfte es auch dann klappen..


      
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
Dim Neu$, Konst$, Jahr$, KW As Byte, tmp As Date, Lnr%, Zelle
    
Set Zelle = Sheets("Tabelle1").Range("A1"'Rechnungsnummer steht in A1
    Jahr = Format(Date, "YY")
    Konst = 
"M"
    
'aktuelle KW ermitteln
        tmp = DateSerial(Year(Date + (8 - Weekday(Date)) Mod 7 - 3), 1, 1)
        KW = ((Date - tmp - 3 + (Weekday(tmp) + 1) 
Mod 7)) \ 7 + 1
    
'
    If Zelle.Value = "" Then 'neu anlegen
        Neu = Konst & Jahr & KW & "1"
    
Else
        
If Jahr & KW <> Mid(Zelle, 2, 4) Then 'neue KW
            Lnr = 1
        
Else 'gleiche KW
            Lnr = Mid(Zelle, 6) + 1
        
End If
        
'
        Neu = Konst & Jahr & KW & Lnr
    
End If
    
    
'Nr. in Zelle schreiben
    Sheets("Tabelle1").Range("A1") = Neu
    
End Sub 


Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Formelzusammenstellung
28.09.2006 15:58:14
flux
Ich bin sprachlos...
Es hat perfekt funktioniert! Respekt!!!
Vielen, vielen Dank!
Gruß Sebastian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige