Olen tehnyt muutaman työtäni helpottavan makron ja tallentanut ne personal.xls -workbookiin, jotta ne olisivat käytössä aina kun teen uuden workbookin.
Ongelma on nyt siinä, että hyvin usein (ei kuitenkaan aina) kun teen uuden workbookin, ja minulla on jo ennestään auki muutama workbook, saan kyseisen ilmoituksen eli "PERSONAL.XLS is locked for editing" ja vaihtoehdot Read Only, Notify ja Cancel. Mitä tahansa valitsen, eivät tekemäni makrot toimi kyseisessä uudessa workbookissa. Tähän ei sitten auta muu kuin ensin sulkea kaikki auki olevat workbookit ja vasta sitten tehdä uusi workbook, sitten toimii.
Kyseinen ilmoitus näyttää tulevan täysin sattumanvaraisesti, riippumatta siitä mitä workbookeja on ennestään auki ja onko niissä käytetty makroja tai ei.
Saako tämän automaattisen lukkiutumisen jotenkin kokonaan pois päältä?
Ongelma on nyt siinä, että hyvin usein (ei kuitenkaan aina) kun teen uuden workbookin, ja minulla on jo ennestään auki muutama workbook, saan kyseisen ilmoituksen eli "PERSONAL.XLS is locked for editing" ja vaihtoehdot Read Only, Notify ja Cancel. Mitä tahansa valitsen, eivät tekemäni makrot toimi kyseisessä uudessa workbookissa. Tähän ei sitten auta muu kuin ensin sulkea kaikki auki olevat workbookit ja vasta sitten tehdä uusi workbook, sitten toimii.
Kyseinen ilmoitus näyttää tulevan täysin sattumanvaraisesti, riippumatta siitä mitä workbookeja on ennestään auki ja onko niissä käytetty makroja tai ei.
Saako tämän automaattisen lukkiutumisen jotenkin kokonaan pois päältä?
Vastaukset 5
Vanhimmat
se, että avaat Exceliin uuden "istunnon", etkä vain uutta työkirjaa samaan "istuntoon". Minkälaisia makroja sulla on siellä Personal.xls?
Mitä eroa on uuden istunnon avaamisella ja uuden työkirjan avaamisella samaan istuntoon? En kyllä oikein usko että tuolla on vaikutusta, koska virheilmoitusta ei tosiaan aina tule vaikka avaisin ihan samalla tavalla. Joskus tulee, joskus ei.
Makroja käytän raporttien käsittelyyn. Joskus tallennan raportin toisesta ohjelmasta Excel Workbookina ja avaan sen sitten resurssienhallinnasta, joskus taas avaan uuden Excel Workbookin ja kopioin siihen raportin leikepöydältä. Kummassakin tapauksessa saattaa tulla kyseinen virheilmoitus, jos auki on ennestään muita työkirjoja.
Varsinainen makro, jonka ajan joka raportille, muokkaa lähinnä sen ulkoasua (turhat tiedot pois, solujen muotoilua) sekä lisää raporttiin painikkeita joilla voin käynnistää uusia makroja (joilla voin käsitellä raportin tietoja, esim. tehdä pivot-taulukoita ym). Nämä on kaikki siis Personal.xls-tiedostoon tallennettuina.
Kiitoksia avusta.
olisi parasta poistaa koko personal.xls sieltä XLStart kansiosta ja tehdä oma työkirja, josta käsin hoitelee noi jutut.
Kyllä toi virheilmoitus viittaa siihen, että sulla jää joku "piiloistunto" päälle jostain syystä.Ehkä tallennus ei onnistu oikein tai joku ikkuna jää päälle jne. syitä voi olla monia.
Tarkistappas seuraavan kerran kun virheilmoitus tulee Windowsin tehtävien hallinnasta /Prosessit onko siellä useampaa Excel.exe istuntoa auki.
> "olisi parasta poistaa koko personal.xls sieltä XLStart kansiosta ja tehdä oma työkirja, josta käsin hoitelee noi jutut. "
Miten tämä onnistuu? Saako sen sitten toimimaan samalla lailla, eli niin että makrot ovat käytettävissä kaikissa työkirjoissa? Meinaatko että ongelma poistuisi tämän myötä?
> "Tarkistappas seuraavan kerran kun virheilmoitus tulee Windowsin tehtävien hallinnasta /Prosessit onko siellä useampaa Excel.exe istuntoa auki."
Joo, kyllä niitä kaksi näyttää olevan.
2 istuntoa...
arvasin siis oikein :-)
no poista se Pesrsonal.xls XLStart kansiosta ja tallenna se johonkin kansioon esim. mun esimerkissä "C:\Makrot"
Tee uusi pohja, jota käytät lisätäksesi uusia työkirjoja. Tee nappi tai liitä valikkoon ja liitä alla oleva koodi nappiin tai valikkoon
nyt pitäisi olla personal.xls makrot käytössä aina uudessa työkirjassa eikä excelin pitäisi herjailla read only juttuja
koodi moduuliin...
Sub Avaa()
Dim nimi As String
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open(Filename:= _
"C:\Makrot\Personal.xls"). _
RunAutoMacros Which:=xlAutoOpen
alku:
nimi = Application.InputBox("Anna työkirjalle nimi", Type:=2)
If nimi = "False" Or nimi = "" Then
MsgBox "Sinun pitää antaa työkirjalle nimi!", vbInformation
GoTo alku
End If
ActiveWorkbook.SaveAs Filename:="C:\Makrot\" & nimi & ".xls"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub