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.
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
Wow olipa nopeaa, täytyy heti kokeilla!! kiitos jo etukäteen!
No niin, palasinpas kiittelemään vielä kerran!
Nyt tuo toimii juurikin hyvin.
Kiitokset todellakin suuresti!
sama ilman purkkaa
Private Sub CommandButton1_Click() If Len(CurDir) > 4 Then ChDir ("..") MsgBox CurDir 'testi End Sub
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”.
Aihe on jo aika vanha, joten et voi enää vastata siihen.