Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Excel VBA-ongelma

anssi [07.07.2004 23:25:19]

#

Hei,

Mulla on commandbutton, jota painamalla pitäisi saada soluun luettua tekstitiedostosta aina viimeisin rivi (yksi rivi = yksi numerosarja).

Sitten kun seuraavalla kerralla kun painan, niin siihen +1 ja niin edelleen... Siis eräänlainen laskuri...

Katselin tuota VB-oppaan tiedosto-juttua, mutta mutta toi et miten saan aina viimeisen rivin luettua niin ei auennut... Tallennus (append) ja +1 osaan...

Ja sit sellanen vielä et miten saan estettyä buttonien ilmestymisen kun printtaan paperille sen worksheetin... Toki saa sillain et valitsee vaan et tulosta sivu 1, koska buttonit ilmestyy vasta seuraavalle arkille...


Kiitos.

BadSource [08.07.2004 07:30:12]

#

1. Kysymys: Lue tiedot textitiedostosta taulukkoon.

Ubound(taulukko) kertoo taulukon viimeisen solun. Lue tuo johonkin muuttujaan, jota vähentämällä yhdellä luet aina seuraavan(edeltävän) tiedon.

Sub Teksti()
    Dim i As Integer, ViimeinenRivi As Integer
    Dim rivit() As String

    i = FreeFile
    ReDim rivit(0)
    Open "c:\Test.txt" For Input As #i
        Do While Not EOF(i)
            'Jos taulukossa ei ole tietoja, niin riviä ei tarvitse lisätä,
            'vaan tiedot saa lukea olemassa olevaan soluun.
            'Muuten lisätään taulukkoon rivi ReDim Preserve:llä, että aikaisemmat
            'tiedot säilyvät.
            If rivit(0) <> "" Then ReDim Preserve rivit(UBound(rivit) + 1)
            Line Input #i, rivit(UBound(rivit))
        Loop
    Close #i
    ViimeinenRivi = UBound(rivit)
    MsgBox rivit(ViimeinenRivi) & " on viimeinen rivi" & vbCrLf _
      & rivit(ViimeinenRivi - 1) & " on toiseksi viimeinen"
End Sub

2. kysymys: Aseta buttonien PrintObject falseen.

Jos haluat, että buttonit printataan jossain tietyssä tilanteessa, niin laita ThisWorkbook:iin seuraava koodi itsellesi sovitettuna.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If PrintataanButtonitkin = True Then
        Sheet1.CommandButton1.PrintObject = True
    Else
        Sheet1.CommandButton1.PrintObject = False
    End If
End Sub

Edit: Vastaus ekaan kysymykseen...

anssi [08.07.2004 17:20:46]

#

Kiitän vastauksesta. Sain toimimaan...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta