Ratkaisua ongelmaan kaivataan rivitietona täytettävään taulukkoon.
Excel taulukko jossa rivillä yksi on sarakkeiden otsikot,rivillä kaksi on soluissa muotoiluja mm. valintalistoja.Riville yksi on (solu C1)sijoitettu painonappi (makro) LISÄÄ UUSI RIVI, jolloin makro kopioi riviltä kaksi soluista muotoilut ja lisää uuden rivin (rivi 3), johon uudet tiedot täytetään.. Näin toimien ylimmäisenä aina uusin rivitieto. Rivi kaksi on piilotettu ettei kukaan sössi muotoiluja. MUTTA siitä huolimatta joku aina kaivaa sen esille ja värkkää omia muotoiluja.
Kysymys: Miten rivin 1 ja 2 solujen muotoilut voi lukita niin, että makro vielä toimii ? Olen yrittänyt suojata rivin 1 ja 2 solut > muotoile solut > suojaus > lukitse ja sitten suojannut salasanalla laskentataulukon, mutta samalla LISÄÄ UUSI RIVI makro lakkaa toimimasta. Heti kun poistaa lukituksen/suojauksen painonappi pelittää taas.
Labor improbus omnia vincit
Excel taulukko jossa rivillä yksi on sarakkeiden otsikot,rivillä kaksi on soluissa muotoiluja mm. valintalistoja.Riville yksi on (solu C1)sijoitettu painonappi (makro) LISÄÄ UUSI RIVI, jolloin makro kopioi riviltä kaksi soluista muotoilut ja lisää uuden rivin (rivi 3), johon uudet tiedot täytetään.. Näin toimien ylimmäisenä aina uusin rivitieto. Rivi kaksi on piilotettu ettei kukaan sössi muotoiluja. MUTTA siitä huolimatta joku aina kaivaa sen esille ja värkkää omia muotoiluja.
Kysymys: Miten rivin 1 ja 2 solujen muotoilut voi lukita niin, että makro vielä toimii ? Olen yrittänyt suojata rivin 1 ja 2 solut > muotoile solut > suojaus > lukitse ja sitten suojannut salasanalla laskentataulukon, mutta samalla LISÄÄ UUSI RIVI makro lakkaa toimimasta. Heti kun poistaa lukituksen/suojauksen painonappi pelittää taas.
Labor improbus omnia vincit
Vastaukset 6
Vanhimmat
Laita makroon ennen rivinlisäyskoodia seuraava koodi joka poistaa suojauksen salasanalla "suojaus":
ActiveSheet.Unprotect Password:="suojaus"
ja vastaavasti rivinlisäyskoodin jälkeen koodi joka suojaa taulukon uudestaan:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="suojaus"
Suuret kiitokset ohjeesta. Toimii muuten ihan OK, mutta suojaa uuden lisätyn (kopioidun)rivin 3 solut niin ettei tietoja pääse lisäämään.
Olisiko hyvä idea koittaa tehdä niin, että lisää rivi -napin painallus avaa rivien 1 ja 2 suojauksen ja kun aktivoit uuden kopioidun rivin 3 solun A3 ja lisäät tiedot, jonka jälkeen poistuttaessa solusta A3, makro suojaa sitten vasta uudelleen rivit 2 ja 3.
Sitten olisi toinen kysymys jos vielä jaksaisit jeesata. Kun julkaisen laaditun excel taulukon htm -muodossa (tallenna Web -sivuna, koko työkirja, lisää vuorovaikutteisuus), niin avattaessa taulukko selaimeen on excelistä ilmeisesti kopioitunut taulukon yläreunaan mm. suodata ja lajittele työkalut. Minulla ne vaan pysyvät harmaana eivätkä toimi, mutta kaverin koneessa ne aktivoituvat ja toimivat moitteetta. En löydä asetuksia mistä niihin pääsisi käsiksi.
Vastaan tuohon web juttuun itse eli aikani tutkittuani ongelma, saattaa johtua xp officen käyttöoikeusrajoituksista firman koneessa ja taulukko tulee Office Web Componentilla vain tarkastelukäyttöön.
Ekalla rivillä siis otsikot ja komentopainike?
Voi olla siis lukittu?
Poista lukitus komentopainikkeesta.
Sub Suojaa()
ActiveSheet.Unprotect Password:="suojaus"
Rows("2:2").Locked = False
Rows("2:2").Copy
With Rows("3:3")
.Insert Shift:=xlDown
.Locked = False
End With
Application.CutCopyMode = False
Rows("4:4").Locked = True
Rows("2:2").Locked = True
ActiveSheet.Protect Password:="suojaus", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub Suojaa()
ActiveSheet.Unprotect Password:="suojaus"
Rows("2:2").Locked = False
Rows("2:2").EntireRow.Hidden = False
Rows("2:2").Copy
With Rows("3:3")
.Insert Shift:=xlDown
.Locked = False
End With
Application.CutCopyMode = False
Rows("4:4").Locked = True
Rows("2:2").Locked = True
Rows("2:2").EntireRow.Hidden = True
ActiveSheet.Protect Password:="suojaus", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Ei ollut aivan sitä mitä haimme, mutta saimme siitä apuja niin, että saatiin ongelmaamme värkätty toimima makro.