Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VBA to Hide columns on multiple sheets

[es] :: Office :: Excel :: VBA to Hide columns on multiple sheets

[ Pregleda: 306 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marre23

Član broj: 332598
Poruke: 103
213.147.114.*



+1 Profil

icon VBA to Hide columns on multiple sheets14.05.2024. u 13:36 - pre 5 dana i 20h
Pozdrav ekipa,

htjela sam provjeriti je li moguće postaviti VBA ako imam login formu admin i user (https://www.youtube.com/watch?v=jGhkLeHMEUA) gdje se userima skrivaju neki stupci po određenom sheetu

Dakle imam sheet1(BROD), sheet2(KUĆA), sheet3(AUTO) i htjela bi za usere sakriti stupce (W:AE) na svakom sheetu?

Hvala unaprijed
Mare
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2272
*.dynamic.isp.telekom.rs.

Sajt: www.gowi.rs


+109 Profil

icon Re: VBA to Hide columns on multiple sheets15.05.2024. u 15:04 - pre 4 dana i 19h
Da sakriješ kolone W:AE na listu shName možeš da napišeš jednostavnu proceduru

Code:
Private Sub HideColumns(shName)
    Sheets(shName).Columns("W:AE").Hidden = True
End Sub


Sad tu proceduru prozoveš za sve listove koje hoćeš unutar procedure CommandButton1_Click, u delu Else (for User Role)
Code:
      ...
      ' Skrivanje kolona
        For Each shName In Array("BROD", "KUĆA", "AUTO")
             HideColumns shName
        Next shName


U primeru koji si navela dodao sam kod tako da imaš primer gde kad se uloguješ kao Lucy videćeš da su sakrivene kolone na listovima Cost of Sales i Expenses.

Nisam siguran da li treba da se otrkirvaju kolone za admin role u tom slučaju dodaj pozivanjeprocedure ShowHidden shName u deo za Admin role za navedene listove (For Each...)

Code:
Private Sub  ShowHidden(shName)
    Sheets(shName).Columns("W:AE").Hidden = False
End Sub



[Ovu poruku je menjao Jpeca dana 15.05.2024. u 22:00 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3459

Jabber: djoka_l


+1464 Profil

icon Re: VBA to Hide columns on multiple sheets15.05.2024. u 19:44 - pre 4 dana i 14h
Ne može tako kako si zamislila.
Taj video koji si postavila je plagijat na temu ovog uputstva:



Tu je detaljno objašnjeno kako da napraviš Excel u kojem sakrivaš neke radne listove ili za koje ne dzvoljavaš menjane za neke usere.

Ceo taj mehanizam radi na nivou radnog ista, a ne za kolone.
Ako želiš da koristiš ovak nešto, to što želiš da sakriješ, skloni na druge radne listove, pa ćeš dobiti to što hoćeš.
 
Odgovor na temu

marre23

Član broj: 332598
Poruke: 103
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets16.05.2024. u 13:19 - pre 3 dana i 21h
Pozdrav JPeca, hvala ti na pomoći... kad se ulogiram kao user onda mmi se požuti Sheets(shName).Columns("W:AE").Hidden = True u formuli

Private Sub HideColumns(shName)
Sheets(shName).Columns("W:AE").Hidden = True
End Sub

Run-time error '1004'
Unable to set the Hidden property of the Range class
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2272
*.dynamic.isp.telekom.rs.

Sajt: www.gowi.rs


+109 Profil

icon Re: VBA to Hide columns on multiple sheets16.05.2024. u 16:22 - pre 3 dana i 18h
Da li govoriš o fajlu koji je attachovan u prethodnoj poruci ili nekom tvom fajlu?

U attachovanom primeru ja mogu da se ulogujem bez problema kao user Lucy i Raj . Kao William dobijem poruku da nemam pristup nijedno listu, ali to je tako zamišljeno.

Ako dobijaš grešku u primeru koji sam ja postavio, navedi tačno korak po korak kako da se reprodukuje greška.

Ako je reč o nekom tvom primeru, moraš da ga postaviš ovde - ne mora kompletan primer nego neki demo, pa da vidim o čemu se radi.

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

marre23

Član broj: 332598
Poruke: 103
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 11:56 - pre 2 dana i 22h
Evo otkrila sam zašto mi se to pojavljuje...

Ako postavim da je useru file vidljiv a da ne može uređivati kao read only i tu je ova oznaka Ď
kada stavim da mi je protect onda se pojavljue error 1004 a kada stavit unprotect onda je ok i sakriju se stupci ali to znači da mogu pisati što žele po tablici što naravno ne želim jer to ima pravo samo admin i onaj kome on dozvoli

ElseIf sh.Cells(user_row, i).Value = "Ď" Then
wsh.Visible = xlSheetVisible
wsh.Protect 1234
End If

Kako to postaviti?
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2272
*.dynamic.isp.telekom.rs.

Sajt: www.gowi.rs


+109 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 12:08 - pre 2 dana i 22h
Pa možda da sakriješ kolone pre nego što izvršiš protect?

Npr. u Else bloku za User Role odmah iza
Code:
ThisWorkbook.Unprotect 1234


Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

marre23

Član broj: 332598
Poruke: 103
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 12:57 - pre 2 dana i 21h
Upisano je... kopirala sam sve kako i je kod tebe pa ne znam što je problem da mi se pojavljuje

Else '''''for User Role

ThisWorkbook.Unprotect 1234

For i = 5 To Application.WorksheetFunction.CountA(sh.Range("2:2"))
Set wsh = ThisWorkbook.Sheets(sh.Cells(2, i).Value)

If sh.Cells(user_row, i).Value = "x" Then
wsh.Visible = xlSheetVeryHidden
ElseIf sh.Cells(user_row, i).Value = "Đ" Then
wsh.Visible = xlSheetVisible
wsh.Protect 1234
ElseIf sh.Cells(user_row, i).Value = "Ď" Then
wsh.Visible = xlSheetVisible
wsh.Protect 1234
End If

Next i

sh.Visible = xlSheetVeryHidden
ThisWorkbook.Protect 1234

' Skrivanje kolona
For Each shName In Array("BROD", "KUĆA", "AUTO")
HideColumns shName
Next shName

End If

ActiveWindow.DisplayWorkbookTabs = True

Unload Me

End Sub
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2272
*.dynamic.isp.telekom.rs.

Sajt: www.gowi.rs


+109 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 16:07 - pre 2 dana i 18h
Ja nisam vodio računa o protected - u primeru to nije bio problem. Jednostavno sam taj deo koda ubacio na kraju Else. Znači probaj
Code:

...
Else                                            '''''for User Role
   
        ThisWorkbook.Unprotect 1234
        ' Skrivanje kolona
        For Each shName In Array("BROD", "KUĆA", "AUTO")
            HideColumns shName
        Next shName
        
        For i = 5 To Application.WorksheetFunction.CountA(sh.Range("2:2"))
            Set wsh = ThisWorkbook.Sheets(sh.Cells(2, i).Value)
            
                If sh.Cells(user_row, i).Value = "x" Then
                    wsh.Visible = xlSheetVeryHidden
                ElseIf sh.Cells(user_row, i).Value = "Đ" Then
                    wsh.Visible = xlSheetVisible
                    wsh.Unprotect 1234
                ElseIf sh.Cells(user_row, i).Value = "Ď" Then
                    wsh.Visible = xlSheetVisible
                    wsh.Protect 1234
                End If
            
        Next i
        
        sh.Visible = xlSheetVeryHidden
        ThisWorkbook.Protect 1234
  
End If

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

marre23

Član broj: 332598
Poruke: 103
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets20.05.2024. u 09:34 - pre 50min
Nažalost i dalje mi prikazuje kod usera

Private Sub HideColumns(shName)
Sheets(shName).Columns("W:AE").Hidden = True
End Sub

Run-time error '1004'
Unable to set the Hidden property of the Range class
 
Odgovor na temu

[es] :: Office :: Excel :: VBA to Hide columns on multiple sheets

[ Pregleda: 306 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.