Numeroiden määrän laskeminen solussa

Tervehdys,

Olen tehnyt pienen makron jossa käyttäjä syöttää erillaisia arvoja ohjelmaan, yksi näistä arvoista on sarjanumero jonka pitäisi aina olla kuusi numeroa pitkä (123456). Kysymykseni olisikin että miten saan tarkastettua/ huomautettua käyttäjälle jos hän syöttää vahingossa viisi numeroisen tai seitsemännumeroisen luvun... kiitos tuhannesti
5796
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Jos käyttäjä kirjoittaa luvun suoraan soluun, voit tehdä kelpoisuustarkistuksella ehdon että kelpaa vain kuusi merkkiä pitkä teksti.
Jos arvo syötetään makron kautta vaikka Inputboxilla kelpoisuustarkistus ei toimi.

Äänestä

keksin vastauksen joka ei sinällänsä laske numeroiden määrää vaan antaa ehdot ääripäistä eli:


If s > 999999 Then
MsgBox "Valitettavasti syöttämäsi numero oli virheellinen," & vbCrLf & "Ohjelman suoritus loppuu tähän." & vbCrLf & "Ole hyvä ja suorita ohjelma uudelleen"
If s > 999999 Then End
End If

If s < 100000 Then
MsgBox "Valitettavasti syöttämäsi numero oli virheellinen," & vbCrLf & "Ohjelman suoritus loppuu tähän." & vbCrLf & "Ole hyvä ja suorita ohjelma uudelleen"
If s < 100000 Then End
End If

elikkä noin ... ei ehkä kirjan mukaan mut toimii

Äänestä
  • taulukon moduuliin jos esim A1 syotetaan arvo

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Len(Range("A1")) = 0 Then Exit Sub
    If Not Len(Range("A1")) = 6 Then
    MsgBox "Arvon on oltava 6 merkkiä pitkä"
    Range("A1") = ""
    Range("A1").Select
    End If
    End Sub

    Äänestä

  • Kunde kirjoitti:

    taulukon moduuliin jos esim A1 syotetaan arvo

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Len(Range("A1")) = 0 Then Exit Sub
    If Not Len(Range("A1")) = 6 Then
    MsgBox "Arvon on oltava 6 merkkiä pitkä"
    Range("A1") = ""
    Range("A1").Select
    End If
    End Sub

    kun vähän muuttaa... haluaisin sen toimivan noin, kuten alla, mutta tuolla koodillahan se ei tietenkään toimi

    sub blaa()

    dim syote as integer

    syöte = inputbox("blaa blaa blaa")


    If Len(syote) = 0 Then Exit Sub
    If Not Len(syote) = 6 Then
    MsgBox "Arvon on oltava 6 merkkiä pitkä"

    End If
    end sub

    Äänestä

  • jamppa tuominen kirjoitti:

    kun vähän muuttaa... haluaisin sen toimivan noin, kuten alla, mutta tuolla koodillahan se ei tietenkään toimi

    sub blaa()

    dim syote as integer

    syöte = inputbox("blaa blaa blaa")


    If Len(syote) = 0 Then Exit Sub
    If Not Len(syote) = 6 Then
    MsgBox "Arvon on oltava 6 merkkiä pitkä"

    End If
    end sub

    Sub Numero()
    Dim numero As Double
    alku:
    numero = Application.InputBox(("Enter a number"), Type:=1)
    If numero = 0 Then
    MsgBox "Peruutit toiminnon!"
    Exit Sub
    Else
    If Not Len(CStr(numero)) = 6 Then
    MsgBox "Sinun on annettava 6 numeroinen luku"
    GoTo alku
    End If
    End If
    End Sub

    Äänestä

Kommentoi aloitusta


Jamppa Tuominen kirjoitti:

Tervehdys,

Olen tehnyt pienen makron jossa käyttäjä syöttää erillaisia arvoja ohjelmaan, yksi näistä arvoista on sarjanumero jonka pitäisi aina olla kuusi numeroa pitkä (123456). Kysymykseni olisikin että miten saan tarkastettua/ huomautettua käyttäjälle jos hän syöttää vahingossa viisi numeroisen tai seitsemännumeroisen luvun... kiitos tuhannesti

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu