< návrat zpět
MS Excel
Téma: VBA - automatické přiřazování hodnot
Zaslal/a spoko33 26.11.2024 13:44
Ahoj,
potřebovala bych pomoci s makrem, jestli existuje možnost, když chci přiřadit hodnoty na základě vybraných kritérií. Představuji si to tak, že bych měla záložku, kde budu přidávat různá kritéria. Někde budou všechny podmínky a někde jen jedna. Potřebuji, aby se to na základě těchto podmínek doplnilo skrz všechny záložky alokací, které ty podmínky splňují. To vše ale až na základě stisknutí tlačítka (umístěného v záložce Alokace).
Dále jsem napsala makro, které mi skryje pri zavreni souboru všechny záložky, nechá pouze záložku Departments a vzdy soubor ulozi. Soubor je sdileny, kdyz si ho nekdo otevre, vyzve ho to k vlozeni hesla a otevrou se mu pak jen prislusne zalozky. Kdyz tam ale veslo vice lidi najednu, vubec to nefungovalo a promitalo to zmeny vsech dohromady - nefungovalo to.
Posílám ukázku:
Private Sub Workbook_Open()
Dim List As Worksheet, Sesit As Workbook
Dim Heslo As String
For Each List In ActiveWorkbook.Worksheets
If List.Name <> "Departments" Then List.Visible = xlSheetVeryHidden
Next List
Heslo = Application.InputBox("Password", "xxx a.s.", , , , , , 2)
Application.ScreenUpdating = False
Select Case Heslo
Case "1111"
List1.Visible = True
List2.Visible = True
List3.Visible = True
List4.Visible = True
List5.Visible = True
List6.Visible = True
List7.Visible = True
List8.Visible = True
List9.Visible = True
List10.Visible = True
List11.Visible = True
List12.Visible = True
List13.Visible = True
List14.Visible = True
Case "2222"
List5.Visible = True
List8.Visible = True
Case "3333"
List9.Visible = True
List12.Visible = True
Case "4444"
List6.Visible = True
List10.Visible = True
Case "5555"
List6.Visible = True
List11.Visible = True
Case "6666"
List4.Visible = True
Case "7777"
List7.Visible = True
Case "8888"
List6.Visible = True
Case Else
Application.ScreenUpdating = True
MsgBox "Wrong password."
End Select
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim List As Worksheet, Sesit As Workbook
' Set Sesit = ActiveWorkbook
For Each List In ActiveWorkbook.Worksheets
If List.Name <> "Departments" Then List.Visible = xlSheetVeryHidden
Next List
' ulozit
ActiveWorkbook.Save
End Sub
Jestě jsem se chtěla zeptat, jestli by šlo, že když zadají spatne heslo, tak jim to tu tabulku vyvola znovu na zadani a ne ze se to musi cele zavrit a zase znovu otevrit.
A taky jestli jde nejak nastavit, ze kdyz jim nasdilim soubor, tak ze se vzdy bude otevirat v Office a ne v prohlizeci, protoze to pak taky dela neplechu.
Diky moc
P.
Příloha: 57050_alok-vzor.zip (239kB, staženo 2x)
Ahoj,
1. V příloze zasílám možnost jak by mohla fungovat Alokace, jelikož ale nevím jak by vypadala kritéria a kam by se měli zapisovat hodnoty, tak to není úplně ono. Chtělo by to vice specifikovat.
2. Problém se sdílením souboru, tady bohužel nemám zkušenosti, možná poradí někdo jiný
3. Doladil jsem "Workbook_Open" co se týče hesel.
4. Vynucení otevření souboru v Office, stejný jako u bodu 2 nemám zkušenosti.
Příloha: 57052_alok-vzor_uprava.zip (247kB, staženo 3x) citovat
spoko33(28.11.2024 13:54)#057053 Kritéria jsou v záložce Alokace ve sloupcích A-D. Hodnoty ze sloupců E-J by se měli podle kritérií v daném řádku doplňovat do všech záložek Alokace MS do sloupců T-Y, pokud danou kombinaci řádky obsahují.
Díky za pomoc
citovat
třeba takto?
Příloha: 57067_alok-vzor_oprava.zip (253kB, staženo 1x) citovat