Ahoj všem,
potřeboval bych pomoci s jedním vzorečkem. Ve sešitu v příloze mám ve sloupci "B" datum a potřebuji do sloupce "A" dopsat vzoreček pro vypsání pořadového čísla ve formě jak je uvdeno ve vzorovém příkladu.
Barevné rozlišení slouží pouze pro snazší orientaci v datech.
Pomůžete mi někdo ?? Předem díky za všechny tipy jak daný problém vyřešit ...
Potřebuji pomoci se vzorečkem Vyřešeno
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Potřebuji pomoci se vzorečkem
- Přílohy
-
- vzor.xlsx
- (10.39 KiB) Staženo 26 x
Re: Potřebuji pomoci se vzorečkem
Jak jsou ty čísla jednotlivým datumům přidělovány?
Pouze na základě předchozího data a pak nové číslování od 0001 při změně roku? jak se čísluje přechod na další měsíc?
Pouze na základě předchozího data a pak nové číslování od 0001 při změně roku? jak se čísluje přechod na další měsíc?
diky všem za rady
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
Je to vždy "rok" ze sloupce "B" a pořadové číslo pro onen rok od 1 do nekonečna
Měsíce neřeším, ale při přechodu na další rok začíná vše od jedničky ... Datumy jsou napřeskáčku ...
Měsíce neřeším, ale při přechodu na další rok začíná vše od jedničky ... Datumy jsou napřeskáčku ...
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
V editoru VBA (Alt+F11) vloz do:
- modulu listu 0km udalostni proceduru:
- standardniho modulu funkci:
Vlozenim data do sloupce B:B bude do sloupce A:A vlozeno poradove cislo, vystup upraven pro maximalni poradove cislo yyyy-9999, odvozeno z ukazky.
- modulu listu 0km udalostni proceduru:
Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Column <> 2 Or Not IsDate(Target.Value) Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, -1).Value = PoradoveCislo(Target.Value)
Application.EnableEvents = True
End Sub
- standardniho modulu funkci:
Kód: Vybrat vše
Option Explicit
Function PoradoveCislo(Datum As Date) As String
If Datum < #1/1/2010# Then PoradoveCislo = vbNullString: Exit Function
Dim Blk As Range, Cll As Range
Dim frstAddr As String
Dim PoslPorCis As String
With Worksheets("0km")
Set Blk = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp))
End With
PoslPorCis = vbNullString
With Blk ' najit nejvyssi por cislo odpovidajici roku
Set Cll = .Find(Year(Datum) & "-", LookIn:=xlValues, LookAt:=xlPart)
If Not Cll Is Nothing Then
frstAddr = Cll.Address
Do
If Cll.Value > PoslPorCis Then PoslPorCis = Cll.Value
Set Cll = .FindNext(Cll)
Loop While Not Cll Is Nothing And Cll.Address <> frstAddr
End If
End With
If PoslPorCis <> vbNullString Then
PoradoveCislo = Year(Datum) & "-" & Right("000" & Val(Right(PoslPorCis, 4)) + 1, 4)
Else
PoradoveCislo = Year(Datum) & "-0001"
End If
End Function
' pro otestovani funkce
Private Sub test()
Debug.Print PoradoveCislo(#10/3/2012#)
End Sub
Vlozenim data do sloupce B:B bude do sloupce A:A vlozeno poradove cislo, vystup upraven pro maximalni poradove cislo yyyy-9999, odvozeno z ukazky.
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
Zkoušel jsem to, ale nefunguje ... Správně je pouze vždy první pořadové číslo a další vyhodnotí jako chybu ...
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
Asi bude chyba u mě, ale asi to moc nechápu... Jak tam vložím to pořadové číslo ??
Myslel jsem že vytvořená funkce ve VBA se vloží jako vzorec do excelu. Ale když zadám do buňky A2 "=poradovecislo(B2)" tak mi to nefunguje ...
Myslel jsem že vytvořená funkce ve VBA se vloží jako vzorec do excelu. Ale když zadám do buňky A2 "=poradovecislo(B2)" tak mi to nefunguje ...
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
V odpovedi vyse jsem uvedl, ze mas vlozit udalostni proceduru do listu 0km a do standardniho modulu funkcni proceduru (funkci).
a dale jsem uvedl:
Takze jeste jednou:
Po vlozeni uvedenych procedur v editoru VBA pak uz jen vkladas do bunek sloupce B2:Bxx datum a do sloupce A2:Axx je vygenerovano poradove cislo pozadovaneho tvaru.
Vzorcem (uzivatelskou funkci) ve sloupci A2:Axx nelze pozadavek vyresit, nebot je nutno ve funkci vzhledem k neusporadani poradovych cisel prohledavat cely sloupec (nalezt nejvyssi poradove cislo odpovidajici roku), coz v ramci uzivatelske funkce pri rekurentnim volani skonci chybou 91 - Object variable not set. Navic zde pristupuje problem cyklickeho odkazu, takze i jiny zpusob vyhledani bez rekurentniho volani funkce neprinese ocekavany vysledek.
a dale jsem uvedl:
Vlozenim data do sloupce B:B bude do sloupce A:A vlozeno poradove cislo, vystup upraven pro maximalni poradove cislo yyyy-9999, odvozeno z ukazky.
Takze jeste jednou:
Po vlozeni uvedenych procedur v editoru VBA pak uz jen vkladas do bunek sloupce B2:Bxx datum a do sloupce A2:Axx je vygenerovano poradove cislo pozadovaneho tvaru.
Vzorcem (uzivatelskou funkci) ve sloupci A2:Axx nelze pozadavek vyresit, nebot je nutno ve funkci vzhledem k neusporadani poradovych cisel prohledavat cely sloupec (nalezt nejvyssi poradove cislo odpovidajici roku), coz v ramci uzivatelske funkce pri rekurentnim volani skonci chybou 91 - Object variable not set. Navic zde pristupuje problem cyklickeho odkazu, takze i jiny zpusob vyhledani bez rekurentniho volani funkce neprinese ocekavany vysledek.
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
Jo takhle... No jo, jsem blbej ... Díky moc ...
Jen ještě jeden dotázek, když jsem toto vložil do souboru, tak mi to při ukládání vyhazuje hlášku "Upozornění týkající se osobních údajů: Tento dokument obsahuje makra, ovládací prvky ActiveX, informace rozšiřujícího balíku XML nebo webové komponenty. Ty mohou obsahovat osobní údaje, které nelze Kontrolou metadat odebrat." Kde je chyba ?? Díky moc
Jen ještě jeden dotázek, když jsem toto vložil do souboru, tak mi to při ukládání vyhazuje hlášku "Upozornění týkající se osobních údajů: Tento dokument obsahuje makra, ovládací prvky ActiveX, informace rozšiřujícího balíku XML nebo webové komponenty. Ty mohou obsahovat osobní údaje, které nelze Kontrolou metadat odebrat." Kde je chyba ?? Díky moc
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
Prilisna pece MS o bezpecnost osobnich udaju:
...Ty mohou obsahovat osobní údaje, které...
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem
To jo, ale co s tím aby se mi to nezobrazovalo ??
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Potřebuji pomoci se vzorečkem Vyřešeno
Takto chovajici se soubor jsi prilozil, nejspi otevrit novy oubor a do nej prekopirovat procedury a zalozit novy list 0km, pokud neodstranis priciny.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Potřebuji sestavit na czc herní pc do 25.000,-
od DannyXXGr » 17 bře 2024 17:10 » v Rady s výběrem hw a sestavením PC - 4
- 718
-
od meda2016
Zobrazit poslední příspěvek
18 bře 2024 08:07
-
-
- 8
- 1616
-
od Minapark
Zobrazit poslední příspěvek
17 dub 2024 07:52
-
-
Potřebuji poradit s výběrem notebooku Lenovo
od PetrPav » 31 kvě 2023 17:41 » v Rady s výběrem hw a sestavením PC - 4
- 864
-
od mmmartin
Zobrazit poslední příspěvek
31 kvě 2023 23:39
-
-
-
Potřebuji poradit se zvukem HDMI z PC do AV receiveru
od jkmaxfli » 20 led 2024 20:27 » v Rady s výběrem hw a sestavením PC - 18
- 1968
-
od jkmaxfli
Zobrazit poslední příspěvek
24 led 2024 14:55
-
-
-
Problémy s novým PC zakoupeným přes Alza - potřebuji radu Příloha(y)
od Rhadley » 09 bře 2024 19:15 » v Windows 11, 10, 8... - 9
- 1067
-
od BL!zZard
Zobrazit poslední příspěvek
10 bře 2024 18:56
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 36 hostů