macro pentru show/hide detail

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

macro pentru show/hide detail

Mesaj de surferboy79 » Mar Iul 07, 2009 1:00 pm

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... :cry:


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.

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Mar Iul 07, 2009 1:10 pm

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

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Mar Iul 07, 2009 1:21 pm

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.

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: macro pentru show/hide detail

Mesaj de Dr.Windows » Vin Iul 24, 2009 5:39 pm

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:

Cod: Selectaţi tot

ActiveSheet.Unprotect Password:=lcPassword
Iar dupa ce ai terminat "treaba" re-protejaz-o:

Cod: Selectaţi tot

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, Password:=lcPassword
Iar parola o poti defini la inceputul modulului si cred ca este suficient...

Cod: Selectaţi tot

Const lcPassword = "mypass"

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Mie Feb 10, 2010 8:43 pm

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?

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Mie Feb 10, 2010 8:45 pm

Iar cu asta nu inteleg ce vrei sa fac:
Const lcPassword = "mypass"

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: macro pentru show/hide detail

Mesaj de Dr. Cloud » Mie Feb 10, 2010 8:54 pm

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

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Vin Feb 12, 2010 10:48 am

Aveti rabdare cu mine ca nu am lucrat niciodata in visual basic... :roll:
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.

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: macro pentru show/hide detail

Mesaj de Dr. Cloud » Vin Feb 12, 2010 11:11 am

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.

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.

surferboy79
Mesaje: 104
Membru din: Lun Mai 25, 2009 8:29 pm

Re: macro pentru show/hide detail

Mesaj de surferboy79 » Vin Feb 12, 2010 11:26 am

Asta era...gata functioneaza.Multumesc ptr ajutor.Consider subiectul incheiat. :D

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”