Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6, VBA: vb6 excel avausongelma

Apuvaaaa [29.09.2010 21:32:06]

#

Moi!
Tein ohjelman, mihin liittyy hakemistossa oleva excel-taulukko. En kuitenkaan saa taulukkoa auki vb6:sta. Olen yrittänyt mm. shell (excel.exe c:\ohjelma\tilasto.xls) bugaa vain ko. riviä! Esim. notepadin tuolla saa auki, mutta ei exceliä. Excel myös avautuu Windowsin komentokehoitteesta, mutta ei vb6:ssa.

No, yritin sitten linkittää ko. excel-taulukkoa ohjelmaani ja se onnistui siihen asti, kun tein ohjelmasta exe:n ja asennus tiedoston. Ennen toimenpiteitä excel-taulukko (ohjelmassa) päivittyi myös sen mukaan miten taulukkoa oli excelissä päivitetty.

Kyseessä on siis urheilujoukkueen osallistumis-seurantalista joka päivitetään jossain ja lähetetään muille ohjelman omaaville esim. s-postilla. Nyt siis postin saanut henkilö heittää päivitetyn listan hakemistoon c:\ohjelma ja taulukon pitäisi päivittyä varsinaiseen ohjelmaan. Näin ei vain käy.

Googlessa neuvottiin ainakin 5-6 eri versioo kuinka taulukon saa päivittymään, mutta en saanut näistä mitään toimimaan.

Kiitokset vastauksista jo etukäteen!

neau33 [30.09.2010 16:37:19]

#

Moi Apuvaaaa!

Siinä tapauksessa, että ko. seurantalistan käyttäjillä on Excel asennettuna ei ole mitään järkeä rukata moista viritelmää VB6:ssa tai muussakaan erillisessä ohjelmointiympäristössä (unohdetaan ohjelmoinnin harjoittelu). Sensijaan toimiva viritelmä on helposti toteutettvissa Excel/VBA:lla.

Se taho, joka hoitaa seurantalistan päivitykset tarvitsee VBA-viritelmän, joka pukkaa päivitetyn datan esim. csv-muodossa web-palvelimelle.

Seurantalistan käyttäjät tarvitsevat kopion VBA-viritelmästä, joka lataa päivitetyn tiedoston em. palvelimelta työkirjan avaamisen yhteydessä ja/tai ajoitetusti ja siirtää ladatun .csv -tiedoston datan työkirjansa johonkin tauluun.

Kun tieto on noudettavissa yhdestä ja samasta paikasta vältytään turhilta s-postin lähettely/seuranta viritelmiltä (hieman osviittaa).

mutta tässä kuitenkin viritelmä .xls -tiedoston avaamiseksi VB:n kautta Exceliin...

Private ExelPath As String

Private Sub Form_Load()

   Set WshShell = CreateObject("WScript.Shell")

   Dim i As Integer: For i = 8 To 20

      Dim strValue As String: strValue = ""

      On Error Resume Next

      strValue = WshShell.RegRead( _
      "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\" & _
      CStr(i) & ".0\Excel\InstallRoot\Path")

      If strValue <> "" Then
         ExelPath = strValue: Exit For
      End If

      If Err <> 0 Then
         Err.Clear
         On Error GoTo 0
      End If

   Next i

   Set WshShell = Nothing

End Sub

Private Sub Command1_Click()

   Dim xlsPath As String: xlsPath = "C:\Testi.xls" 'esim.

   If ExelPath <> "" Then

      If Dir(xlsPath) <> "" Then

         Dim MyLng As Long, cmdStr As String
         cmdStr = ExelPath & "Excel.exe " & xlsPath
         MyLng = Shell(cmdStr, vbNormalFocus)

         If MyLng = 0 Then
            MsgBox ("Tapahtui virhe avattaessa tiedostoa " & xlsPath)
         End If

      Else

         MsgBox ("Tiedostoa " & xlsPath & " ei löydy!"

      End If

   Else

      MsgBox "Microsoft Excel ei ole asennettuna tähän järjestelmään!"

   End If

End Sub

Apuvaaaa [30.09.2010 23:49:36]

#

Suur kiitokset Nea! Kokeilen tuota hetimiten.

Vielä vähän ohjelmasta. Tuntui siis luontevammalta ja hepommalta luoda ohjelmaan exceliin avautuvat yleisesti päivittyvät tiedot, kuten juuri tämä harjoitusseuranta, rangaistusseuranta (kun 3*10= toimenpide), pistepörssi ja rangaistustilastot. Jos käytettävissä olisi web-palvelin ohjelmaa ei edes tarvitsisi. Tuolloin tilastot ja pelaajatietokannat voisi toteuttaa severille.

Nyt tarkoituksena on siis se, että tämä ohjelma on käytössä jojo:lla, rahastonhoitajalla, huoltajalla ja valmentajilla. Pääsääntöisesti jokainen taho päivittää omia tehtävätietojaan excel-taulukoihin ja viestityksen jälkeen ne tiedot ovat myös muiden ohjelmaa käyttävien tiedossa.

Ohjelma sinällään on vain pelkkä tietokanta pelaajista jossa on mm. lisenssit (numerot) puh, yh ym.ym. Tuntui luontevalta, että ohjelmasta olisi myös pääsy tilastoihin, jolloin ei tarvitsisi aina erikseen (kesken ajatuksen) lähteä etsimään ja availemaan jotakin excel-tiedostoa, kun se olisi ohjelmassa yhden napin takana. Nythän siis näitä erillisiä excel-taulukoita päivitellään ja heitellään puolin sun toisin s-postilla. Lyhyesti sanottuna on tarkoitus helpottaa ohjelmallisesti joukkueen tiedonhallintaa.

Vastaus

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

Tietoa sivustosta