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: 444 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marre23

Član broj: 332598
Poruke: 105
213.147.114.*



+1 Profil

icon VBA to Hide columns on multiple sheets14.05.2024. u 13:36 - pre 14 dana i 10h
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 13 dana i 9h
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: 3464

Jabber: djoka_l


+1465 Profil

icon Re: VBA to Hide columns on multiple sheets15.05.2024. u 19:44 - pre 13 dana i 4h
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: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets16.05.2024. u 13:19 - pre 12 dana i 11h
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 12 dana i 8h
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: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 11:56 - pre 11 dana i 12h
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 11 dana i 12h
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: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets17.05.2024. u 12:57 - pre 11 dana i 11h
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 11 dana i 8h
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: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets20.05.2024. u 09:34 - pre 8 dana i 14h
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

marre23

Član broj: 332598
Poruke: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets21.05.2024. u 10:54 - pre 7 dana i 13h
Mislim da je negdje kod zaključavanja... samo ne znam kako postaviti da se ne pojavljuje greška...

Isto tako gdje maknuti da adminu bude otključano za unos podataka? Svaki put moram otključavati sheet po sheet

If sh.Range("B" & user_row).Value = "Admin" Then '''' Admin role
sh.Unprotect 1234
sh.Cells.EntireColumn.Hidden = False
sh.Cells.EntireRow.Hidden = False

ThisWorkbook.Unprotect 1234
For Each wsh In ThisWorkbook.Worksheets
wsh.Visible = xlSheetVisible
wsh.Protect 1234
Next wsh

[Ovu poruku je menjao marre23 dana 21.05.2024. u 13:54 GMT+1]
 
Odgovor na temu

marre23

Član broj: 332598
Poruke: 105
213.147.114.*



+1 Profil

icon Re: VBA to Hide columns on multiple sheets28.05.2024. u 13:05 - pre 11h 18min
Još nisam uspjela rješiti problem kad se user ulogira pojavljuje se debug a ne znam zašto :(

Private Sub HideColumns(shName)

Sheets(shName).Columns("W:AE").Hidden = True NA OVOM DJELU

End Sub

gdje se treba nalaziti ovaj šifra? Unutar Login forme ili ThisWorkbook?
 
Odgovor na temu

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

[ Pregleda: 444 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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