Ověření dat

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

Moderátor: Mods_senior

EDAmrk
nováček
Příspěvky: 4
Registrován: únor 10
Pohlaví: Muž
Stav:
Offline

Ověření dat

Příspěvekod EDAmrk » 10 úno 2010 09:15

Pěkný den, už delší dobu se trápím s tím jak provést povolení zápisu do buňky s předem stanoveným formátem hh:mm . Pokoušel jsem se přes ověření dat, ale nedaří se nastavit formát. Můžu poprosit o radu? Díky

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

Re: Ověření dat

Příspěvekod navstevnik » 10 úno 2010 09:55

Je nutno rozlisovat format bunky a zaznamenana hodnota.
Cas je v excelu vnitrne zaznamenavan vzdy jako cast 24 hodinoveho useku, zatimco format pouze vizualizuje tento vnitrni zaznam.
Takze pokud jde o formatovani bunky se zaznamenanym casem, koukni se zde: http://lorenc.info/3MA381/vlastni-forma ... -znaky.htm
Pro praci s casem pak napriklad zde: http://www.dataspectrum.cz/pages/glossary/glossary.htm - Cas
Overeni zadavane hodnoty: do bunky vloz format cas nebo vlastni format (napr.: [h]:mm:ss) a pak pridej overeni: nabidka Data>Overeni>Nastaveni>Povolit>desetinne cislo zadej min a max hodnotu, cas lze vkladat jako desetinne cislo: 0,5 - zobrazeni podle formatu treba: 12:00

EDAmrk
nováček
Příspěvky: 4
Registrován: únor 10
Pohlaví: Muž
Stav:
Offline

Re: Ověření dat

Příspěvekod EDAmrk » 10 úno 2010 10:17

Díky, tomuto celkem rozumím. Potřebuji ale povolit do předem stanovených buněk pouze zadání hodnot v časovém formátu hh:mm, v případě zadávání jiných hodnot nepovolit zápis.

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

Re: Ověření dat

Příspěvekod navstevnik » 10 úno 2010 14:09

Zrejme je pozadovano zadavani ve tvaru napr.: 23:59 (00:11,...).
Pokud je format bunky obecny nebo cas, pak po Enteru je rozpoznan typ a hodnota je prevedna do vnitrniho tvaru a formatovana dle nastaveneho formatu, takze neni co overit.
Pozadavek na uvedeny zpusob zadavani lze resit formatovanim prislusne bunky na text a overovat jednotlive znaky, pro dalsi pouziti pak ve vzorcich prevest text na hodnotu funkci =HODNOTA(D5).
Pro overeni bud vyuzit regularni vyrazy RegExp (nekdy se do toho pustim) nebo pouzit udalostni proceduru (v editoru VBA - Alt+F11 - vlozit do modulu prislusneho listu, upravit rozsah overovanych bunek), ktera overi udaje v rozsahu 00:00 - 23:59

Kód: Vybrat vše

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
' overeni textovych retezcu  00:00 - 23:59
  Dim Tmp As String, i As Byte
  ' zde je nastaven rozsah overovanych bunek: Me.Range("d5:d6,a1")
  If Not Intersect(Target, Me.Range("d5:d6,a1")) Is Nothing Then
    Tmp = Target.Value
    If Len(Tmp) = 5 Then
      For i = 1 To 5
        Select Case i
          Case 1
            Select Case Mid(Tmp, i, 1)
              Case "0" To "2"
              Case Else
                GoTo Err1
            End Select
          Case 2
            Select Case Mid(Tmp, i, 1)
              Case "0" To IIf(Mid(Tmp, 1, 1) = "2", "3", "9")
              Case Else
                GoTo Err1
            End Select
          Case 3
            If Mid(Tmp, 3, 1) <> ":" Then GoTo Err1
          Case 4
            Select Case Mid(Tmp, i, 1)
              Case "0" To "5"
              Case Else
                GoTo Err1
            End Select
          Case 5
            Select Case Mid(Tmp, i, 1)
              Case "0" To "9"
              Case Else
                GoTo Err1
            End Select
        End Select
      Next i
    Else
      MsgBox "Hodnota musi byt zadana ve formatu hh:mm"
      Target.Select
    End If
  End If
  Exit Sub
Err1:
  MsgBox "Chybny " & i & ". znak."
  Target.Select
End Sub

EDAmrk
nováček
Příspěvky: 4
Registrován: únor 10
Pohlaví: Muž
Stav:
Offline

Re: Ověření dat

Příspěvekod EDAmrk » 10 úno 2010 21:58

Díky, připojuji sešit na ukázku.
Přílohy
Cas.xls
(42 KiB) Staženo 10 x

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

Re: Ověření dat

Příspěvekod navstevnik » 10 úno 2010 23:04

Nakonec jsi prece jenom pouzil vlastni format bunky, takze overovaci procedura nema smysl a muzes ji klidne odstranit, nic neoveruje.

EDAmrk
nováček
Příspěvky: 4
Registrován: únor 10
Pohlaví: Muž
Stav:
Offline

Re: Ověření dat

Příspěvekod EDAmrk » 11 úno 2010 05:46

To je sice pravda, ale je až ve výsledku, výsledek může být i záporná hodnota. Jde ale o to, že špatným zadáním vstupních dat (překlep, nepozornost ) dojde k zapsání jiné hodnoty než je požadováno. (už se stalo a po delší době se hledá špatně chyba). Z toho důvodu chci nějak ošetřit zadání správného formátu vstupních dat. Sešit obsahuje 18 listů které jsou navzájem provázané.

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

Re: Ověření dat

Příspěvekod navstevnik » 11 úno 2010 08:17

Tak jak je overovaci procedura napsana, tak vyzaduje jak bylo drive uvedeno, aby format overovanych bunek byl text, takze v uvedene priloze je naprosto nefunkcni, nic neoveri. Navic, protoze jsem neznal zpusob uziti, je navrzena pro overovani casu v rozsahu 00:00 - 23:59.
PS: Mozna pouzijes: pro rozdil dvou casu (konec-zacatek), kdy konec presahuje pres pulnoc, lze pouzit: =MOD(E66-D66;1) , dava spravny vysledek.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Dvoufázové ověření u PS4-PSN.
    od dosty. » 03 bře 2024 19:14 » v Vše ostatní (hw)
    1
    759
    od xCloudGirl Zobrazit poslední příspěvek
    05 bře 2024 15:33
  • Redmi 9C - zrušení ověření Google účtu
    od Karrex » 16 kvě 2023 16:21 » v Mobily, tablety a jiná přenosná zařízení
    2
    1889
    od pcmaker Zobrazit poslední příspěvek
    16 kvě 2023 18:08

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

Kdo je online

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