Potřebuji pomoci se vzorečkem Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 12 říj 2010 09:37

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 ...
Přílohy
vzor.xlsx
(10.39 KiB) Staženo 26 x

Reklama
Uživatelský avatar
vonv
Level 1
Level 1
Příspěvky: 93
Registrován: leden 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod vonv » 12 říj 2010 10:24

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?
diky všem za rady

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 12 říj 2010 10:56

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 ...

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod navstevnik » 12 říj 2010 11:11

V editoru VBA (Alt+F11) vloz do:
- 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.

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 12 říj 2010 12:39

Zkoušel jsem to, ale nefunguje ... Správně je pouze vždy první pořadové číslo a další vyhodnotí jako chybu ...

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod navstevnik » 12 říj 2010 12:55

???
Přílohy
PorCis.xlsm
(18.71 KiB) Staženo 24 x

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 12 říj 2010 13:50

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 ...

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod navstevnik » 12 říj 2010 17:59

V odpovedi vyse jsem uvedl, ze mas vlozit udalostni proceduru do listu 0km a do standardniho modulu funkcni proceduru (funkci).
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.

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 13 říj 2010 06:58

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

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod navstevnik » 13 říj 2010 09:38

Prilisna pece MS o bezpecnost osobnich udaju:
...Ty mohou obsahovat osobní údaje, které...

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem

Příspěvekod Branscombe » 13 říj 2010 09:48

To jo, ale co s tím aby se mi to nezobrazovalo ??

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Potřebuji pomoci se vzorečkem  Vyřešeno

Příspěvekod navstevnik » 13 říj 2010 14:58

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

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 36 hostů