kreiranje novega zvezka v VB, skrivanje celice,

Pomoč pri delu z MS Excelom
Odgovori
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

kreiranje novega zvezka v VB, skrivanje celice,

Odgovor Napisal/-a dragopre »

Za PGD (prostovoljno gasilsko društvo) sem pripravil obrazec za poročilo o intervenciji in postopek za sestavo zbirnega poročila. Seveda bi rad vse tako zaščitil, da uporabnik ne bi mogel »pokvariti« povezav, formul itd.
Nekatere rešitve so po mojem preveč nerodne. Zato imam nekaj vprašanj:
1. Kako pisati v zaščiteno celico v kodi VB ?
Problem: Uporabniku želim preprečiti vnos v celico, kateri določam vrednost v kodi.
Če celico zaščitim se lahko vsebino spreminja s formulo ( npr.: =AS35 ).
Če pa v to celico nekaj zapišem v VB oziroma makru, pa javi napako.
Moja rešitev: V kodi določam vrednost neki skriti celici ( daleč desno, npr.: AS35), na željeno (vidno) mesto pa jo prenašam s formulo ( =AS35).
2. Zakaj vsebina celice ni skrita?
Problem: Celico AS35 iz prejšnje točke sem želel skriti.
- Celici sem dal lastnost »Skrita« ( ne pa tudi »Zaklenjena« ).
- List sem zaščitil
Pričakoval sem, da vsebina celice ne bo vidna, pa je vsebina vseeno vidna.
Moja rešitev: Barvo pisave sem dal enako barvi podlage.
3. Ustvarjanje in shranjevanje novega zvezka.
Problem: z VB preberem več istovrstnih zvezkov (poročil) in sestavim nov zvezek »Zbirno«
- Zvezek sem kreiral z naslednjo kodo:

Koda: Izberi vse

  Sub TestSave()
  Set NovZvezek = Workbooks.Add
  NovZvezek.Worksheets(1).Range("B2").Value = "TestXX"
  NovZvezek.SaveAs ("D:\TEST\TestNowZvezekA.xlsx")
End Sub
Koda se izvede, odpre zvezek »Zvezek1«, datoteke pa ne ustvari.
- Prekopiral sem primer iz Help-a, pa tudi ne dela.

Koda: Izberi vse

  Sub AddNew()
Set NewBook = Workbooks.Add
    With NewBook
        .Title = "All Sales"
        .Subject = "Sales"
        .SaveAs Filename:="Allsales.xls"
    End With
End Sub

Moja rešitev: Z Excel-om sem odprl nov zvezek in ga shranil kot »InitZvezek«. Potem sem v kodi odprl ta zvezek in ga shranil z novim imenom. To pa dela.

Koda: Izberi vse

Sub TestSaveDela()
  Set NovZvezek = Workbooks.Open("D:\TEST\InitZvezek.xlsx")     ' Odprem "prazno" poročilo
  NovZvezek.SaveAs ("D:\TEST\TestNowZvezekB.xlsx")              ' Shranim zvezek z novim imenom
End Sub
Vnaprej hvala za nasvet
Drago
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: kreiranje novega zvezka v VB, skrivanje celice,

Odgovor Napisal/-a admin »

Pozdravljeni,
dragopre napisal/-a:1. Kako pisati v zaščiteno celico v kodi VB ?
V makru zvezek odščitite, popravite vsebino, zaščitite nazaj.
dragopre napisal/-a:2. Zakaj vsebina celice ni skrita?
Pomen tega atributa razumete narobe. To ne pomeni, da vsebina celice ni vidna v sami tabeli, temveč, da njena vsebina ni vidna v vrstici za vnos (to je vrstica zgoraj). Ideja tega je v tem, da skrijete formule. Včasih namreč ne želite, da bi uporabniki videli formule, rezultate pa seveda želite da vidijo. zato takšne celice označite kot skrite in njena vsebina (izračunana) se vidi, originalna formula pa ni vidna nikjer.

Če pa želite skriti tudi vsebino same celice torej vsebino v tabeli pa pojdite na lastnosti celice in njen format označite kot ';;;'.
dragopre napisal/-a:3. Ustvarjanje in shranjevanje novega zvezka. .... Koda se izvede, odpre zvezek »Zvezek1«, datoteke pa ne ustvari.
Namesto SaveAs uporabite SaveCopyAs in bi moralo delovati.
lp,
Matjaž Prtenjak
Administrator
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Re: kreiranje novega zvezka v VB, skrivanje celice,

Odgovor Napisal/-a dragopre »

Najlepša hvala za ekspresni odgovor.
Drago
Odgovori