Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Excel polku, 1 alaspäin

PekkaJari [07.05.2021 12:29:09]

#

Hei! (VBA-koodia kyselen)
Ongelmani saattaa kuulostaa typerältä, mutta syystä tai toisesta en ole sitä osannut ratkaista, osaisiko joku muu?

Eli minulla on tiedosto: "luettelo.xls" hakemistossa C:\pekka\listat\ jossa tiedostoa on tarkoitus säilyttää ja käsitellä, kunnes siitä tehdään pdf hakemistoon: c:\pekka\valmiit\

Homman saa toki toimimaan kirjoittamalla nuo osoitteet sellaisenaan, mutta jos kävisi niin, ettei tiedosto ole aina hakemistossa "listat", vaan jossain muualla, ei enää toimi kiinteä polku. Polun saan selville kyllä, siis sen missä tiedosto on: ["thisworkbook.path" & Tiedostonimi.xls].. mutta kuinka tuosta pääsisi alaspäin yhden kansion verran? Ylöspäin on helppo, lisää vain tiedostonimen eteen ["\kansion nimen\"]
(pdf:lle talletuspaikalle pitäisi pystyä määrittelemään polku paikasta riippumatta jotenkin)

jostain syystä [..\] ei laske tasoa

(valitettavasti mulla on aika vanha 2003 excel)

Olisin äärimmäisen kiitollinen jos joku osaa näyttää makron, jolla tuon talletuksen saisi toimimaan.

neosofta [07.05.2021 13:11:15]

#

Private Sub CommandButton1_Click()

    If ThisWorkbook.FullName <> ThisWorkbook.Name Then

        Dim peruspolku As String
        peruspolku = Replace(ThisWorkBook.FullName, ThisWorkBook.Name, "")
        Dim apu As String, paikka As Integer, yksi_alas As String
        apu = Left(peruspolku, Len(peruspolku) - 1) 'poistetaan viimeinen (\)
        paikka = InStrRev(apu, "\")
        If paikka < 4 Then
            MsgBox "Olet " & Left(apu, 2) & " aseman juuressa"
            Exit Sub
        End If
        yksi_alas = Left(apu, paikka)
        MsgBox yksi_alas 'testi

    End If

End Sub

PekkaJari [07.05.2021 13:34:38]

#

Wow olipa nopeaa, täytyy heti kokeilla!! kiitos jo etukäteen!

PekkaJari [07.05.2021 14:42:44]

#

No niin, palasinpas kiittelemään vielä kerran!
Nyt tuo toimii juurikin hyvin.

Kiitokset todellakin suuresti!

neosofta [07.05.2021 18:13:55]

#

sama ilman purkkaa

Private Sub CommandButton1_Click()

    If Len(CurDir) > 4 Then ChDir ("..")
    MsgBox CurDir 'testi

End Sub

Metabolix [07.05.2021 19:07:03]

#

Yleensä poluissa ”..” siirtyy ylempään hakemistoon, eli voi kirjoittaa esimerkiksi C:\Pekka\Listat\..\Valmiit, joka on sitten sama kuin C:\Pekka\Valmiit, tai voi kirjoittaa ..\Valmiit, joka viittaa haluamallasi tavalla viereiseen Valmiit-hakemistoon. Joissain ympäristöissä tämä on kuitenkin estetty tietoturvasyistä, nimenomaan Excelistä en osaa sanoa, kokeile itse.

Hakemistojen suunnat menivät kysymyksessä väärin, nimittäin lyhyempi polku on ylempi hakemisto (parent directory) ja pidempi polku on alihakemisto (subdirectory). Tässä on siis perinteinen hierarkia, että hakemiston sisältö on hakemiston ”alla”.

Vastaus

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

Tietoa sivustosta