macro pentru show/hide detail
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
macro pentru show/hide detail
La mai multe tabele de-ale mele cu foarte multe coloane mi-am organizat coloanele in grupuri (data - group/ungroup) apasand + sau - (hide/show detail) pot inchide si deschide portiuni ptr vizualizare usoara.Totul e ok pana ajung iarasi la sheetul protejat.In momentul in care protejez cu parola sheetul nu mai poti folosi functionalitatile de la grup/ungroup inclusiv si hide/show details.Ramane asa in pozitia cum a fost in momenul protejarii si e nevoie de deprotejarea sheetului ptr a folosi ceea ce nu pot sa acord userilor simplii.Avand in vedere utilitatea acestor grupuri am incercat sa fac sa functioneze cu un macro dar nu mi-a reusit.
Am incercat asa:
1.Un macro creat ptr show detail unui grup si un altul ptr hide detail la aceeasi grup (am apasat pe tabela direct pe + si - mai sus de capul de tabel) am vrut sa fac cate doua macrouri ptr fiecare grup de coloane in parte.Nu functioneaza macro se inregistreaza dar nu se executa cum trebuie probabil nu vede ca o actiune apasarea respectivelor + si - (deasupra capului de tabel).Asta nu funtioneaza nici pe un sheet protejat si nici pe normal.
2.In a doua varianta am creat la fel doua macro-uri una ptr hide una ptr show selectand coloanele din grup si dand hide respectiv unhide.Bineinteles tot in cadrul macro-ului executand si operatiile de deprotejare si protejare.Totul e ok funtioneaza macrourile pe un sheet normal dar cand protejez sheetul cere parola ori de cate ori rulez macro-urile astea iar asta nu pot acorda userilor simplii
Deci...
CONCLUZIE:
Ce vreau sa fac e ca userii simplii care nu au parola de deprotejare a sheetului sa poata expanda (show details) si collapsa (hide details) grupurile de coloane din sheetul protejat cu parola.
Am incercat asa:
1.Un macro creat ptr show detail unui grup si un altul ptr hide detail la aceeasi grup (am apasat pe tabela direct pe + si - mai sus de capul de tabel) am vrut sa fac cate doua macrouri ptr fiecare grup de coloane in parte.Nu functioneaza macro se inregistreaza dar nu se executa cum trebuie probabil nu vede ca o actiune apasarea respectivelor + si - (deasupra capului de tabel).Asta nu funtioneaza nici pe un sheet protejat si nici pe normal.
2.In a doua varianta am creat la fel doua macro-uri una ptr hide una ptr show selectand coloanele din grup si dand hide respectiv unhide.Bineinteles tot in cadrul macro-ului executand si operatiile de deprotejare si protejare.Totul e ok funtioneaza macrourile pe un sheet normal dar cand protejez sheetul cere parola ori de cate ori rulez macro-urile astea iar asta nu pot acorda userilor simplii
Deci...
CONCLUZIE:
Ce vreau sa fac e ca userii simplii care nu au parola de deprotejare a sheetului sa poata expanda (show details) si collapsa (hide details) grupurile de coloane din sheetul protejat cu parola.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
Daca ajuta cu ceva de in aceasta problema pot spune ca am creat un macro la buton care sorteaza si care functioneaza si cand am protejat sheetul cu optiunea de sortare scoasa!Asa ceva mi-ar trebui si la show hide details..dar nu reusesc
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
In varianta 1 mai sus mentionata am incercat si in varianta sa inregistrez macro-ul executand operatia de show hide details folosind meniul si nici asa nu functioneaza, executa orice inregistrezi in cadrul macro-ului.. mai putin operatia de show hide details.
-
- Moderator
- Mesaje: 4570
- Membru din: Vin Iul 31, 2009 7:32 am
Re: macro pentru show/hide detail
Pai daca iti functioneaza fara protectie si doar iti cere parola cand ai foaia protejata mai ai doar un mic pas de facut: tot din acel macro, inainte de a te apuca de ce ai tu de facut deprotejaza foaia:
Iar dupa ce ai terminat "treaba" re-protejaz-o:
Iar parola o poti defini la inceputul modulului si cred ca este suficient...
Cod: Selectaţi tot
ActiveSheet.Unprotect Password:=lcPassword
Cod: Selectaţi tot
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, Password:=lcPassword
Cod: Selectaţi tot
Const lcPassword = "mypass"
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
revin la aceasta problema, este iarasi de actualitate, Lucian daca poti sa imi explici un pic mai detaliat cum sa incerc..
Cand inregistrez macro-ul in timpul inregistrarii sa bag acel cod care ai dat?La inceput primul iar dupa ce inregistrez show sau hide group atunci celalalt cod inainte sa termin de inregistrat macro-ul?
Cand inregistrez macro-ul in timpul inregistrarii sa bag acel cod care ai dat?La inceput primul iar dupa ce inregistrez show sau hide group atunci celalalt cod inainte sa termin de inregistrat macro-ul?
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
Iar cu asta nu inteleg ce vrei sa fac:
Const lcPassword = "mypass"
Const lcPassword = "mypass"
Re: macro pentru show/hide detail
Asa ar trebui sa arate codul:
Cod: Selectaţi tot
'constanta generala
'mypass trebuie inlocuita cu parola ta
Const lcPassword = "mypass"
Sub NumeMacro()
On Error GoTo err
'deprotejam foaia
ActiveSheet.Unprotect Password:=lcPassword
'aici vine codul tau
'protejam foaia
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, Password:=lcPassword
Exit Sub
err:
MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
Aveti rabdare cu mine ca nu am lucrat niciodata in visual basic...
Deci am facut urmatoarele:
1.Am copiat codul dat de alexx cu totul pe sheet-ul unu a unui fisier
2.Am creat un macro numit x, care ascunde cu hide coloanele a,b,c,d
3.in visual basic - tools - macros - alegand x - i-am dat edit, de acolo am copiat codul macroului x si l-am pus in codul dat de alexx in locul la "aici codul tau"
Totusi imi da eroare la rularea macroului dat de alexx banuiesc ca din cauza la codul meu copiat aici.Nu stiu unde e problema.Am si atasat ce am facut.
Parola care am folosit e "abc", iar in momentul executarii macro-ului lui alexx sheetul e in stadiu protejat.O parte dintre coloane care se doresc a fi ascunse sunt locked iar o parte unlocked.
Deci am facut urmatoarele:
1.Am copiat codul dat de alexx cu totul pe sheet-ul unu a unui fisier
2.Am creat un macro numit x, care ascunde cu hide coloanele a,b,c,d
3.in visual basic - tools - macros - alegand x - i-am dat edit, de acolo am copiat codul macroului x si l-am pus in codul dat de alexx in locul la "aici codul tau"
Totusi imi da eroare la rularea macroului dat de alexx banuiesc ca din cauza la codul meu copiat aici.Nu stiu unde e problema.Am si atasat ce am facut.
Parola care am folosit e "abc", iar in momentul executarii macro-ului lui alexx sheetul e in stadiu protejat.O parte dintre coloane care se doresc a fi ascunse sunt locked iar o parte unlocked.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: macro pentru show/hide detail
Nici nu ar fi mers.
Trebuia sa bagi doar continutul codului nu si:
Sub X si End Sub
Ti-am facut doua butoane:
1. deparoleaza foaia si ascunde coloanele
si
2. deparoleaza foaia si afiseaza colonele.
Trebuia sa bagi doar continutul codului nu si:
Sub X si End Sub
Ti-am facut doua butoane:
1. deparoleaza foaia si ascunde coloanele
si
2. deparoleaza foaia si afiseaza colonele.
Cod: Selectaţi tot
'constanta generala
'mypass trebuie inlocuita cu parola ta
Const lcPassword = "abc"
Sub DeprotejareSiAscundereColoane_sheet()
On Error GoTo err
'deprotejam foaia
ActiveSheet.Unprotect Password:=lcPassword
'codul tau
Columns("A:D").Select
Selection.EntireColumn.Hidden = True
'protejam foaia
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, Password:=lcPassword
Exit Sub
err:
MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub
Sub DeprotejareSiAfisareColoane_sheet()
On Error GoTo err
'deprotejam foaia
ActiveSheet.Unprotect Password:=lcPassword
'codul tau
Columns("A:D").Select
Selection.EntireColumn.Hidden = False
'protejam foaia
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, Password:=lcPassword
Exit Sub
err:
MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: macro pentru show/hide detail
Asta era...gata functioneaza.Multumesc ptr ajutor.Consider subiectul incheiat.