Kezdőoldal » Számítástechnika » Programozás » Hogy tudnám megoldani Excelben?

Hogy tudnám megoldani Excelben?

Figyelt kérdés

Minden cella egy-egy hónaphoz tartozik, és azt szeretném, hogy ha az a hónap eltelt, akkor oda már ne lehessen írni. Ezt meg lehet oldani valahogy? Visual Basicben vagy anélkül?

Előre is köszönöm a segítséget!


2012. aug. 13. 14:32
 1/5 coopper ***** válasza:

Szia.


Igen mindkét módon (Visual Basicban is és anélkül is)


1. Zárolás + Lapvédelem


KIjelölöd az összes cellát jobb klick - Cellaformázás - Védelem -> Zárolás - Pipa kivesz - OK


Mosdt kijelölöd azokat a cellákat amiket védetté akarsz tenni - Jobb klick - Cellaformázás - Védelem -> Zárolás - Pipa berak - Ok.


Jobb klick a munkafüzet lap nevén - Lapvédelem - OK. (vagy Korrektura - Lapvedelem).


2. VBA : (L11-es cella védetté tétele, előtte az összes celláról le kell venni a "Zárolást" és nincs megadva jelszó a lapvédelem feloldásához)


ActiveSheet.Unprotect

Range("L11").Select

Selection.Locked = True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True


Sok sikert.

Üdv.

2012. aug. 13. 15:17
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
köszi a választ, de én úgy értettem a kérdést, hogy a cellavédelem automatikusan változzon, attól függően, hogy a felhasználó mikor nyitja meg a fájlt
2012. aug. 13. 16:28
 3/5 coopper ***** válasza:

Szia.


Itt a teljes kód :


Private Sub Workbook_Open()

Rem C2 cella : Rows = 2, Column=3

StarRow = 2

StartColumn = 3

Datum$ = Date

Honap$ = Mid(Datum$, 6, 2)

Honap = Val(Honap$)

Honap = Honap - 1

If Honap >= 1 Then

CellposRow = ActiveCell.Row

CellposColumn = ActiveCell.Column

ActiveSheet.Unprotect

Rem C2 -> Balról Jobbra

Range(Cells(StarRow, StartColumn), Cells(StarRow, StartColumn - 1 + Honap)).Select

Selection.Locked = True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Cells(CellposRow, CellposColumn).Select

End If

End Sub


A C2-es cellától indul (ott van január), ha nem lenne akkor értelemszerűen módositsd a kezdőértékeket a cellának megfelelően :


Rem C2 cella : Rows = 2, Column=3

StarRow = 2

StartColumn = 3


Esetlegesen ha nem balról jobbra lennének a havi cellák, hanem fentről lefelé akkor ehelyett a két sor helyett :


Rem C2 -> Balról Jobbra

Range(Cells(StarRow, StartColumn), Cells(StarRow, StartColumn - 1 + Honap)).Select


Használd ezt a két sort :


Rem C2 -> Fentrõl Lefelé

Rem Range(Cells(StarRow, StartColumn), Cells(StarRow - 1 + Honap, StartColumn)).Select


Továbbra is áll a következő két dolog :


1. Először is a munkafüzet összes cellájáról le kell venni a "Zárolást", és csak azután használható a makró


2. Illetve, ha a lapvédelemhez jelszót adsz meg akkor nem tudja a makró "levenni" a lapvédelmet a munkafűzetről, tehát nem is fog jól működni.


Sok sikert.

Üdv.

2012. aug. 13. 20:10
Hasznos számodra ez a válasz?
 4/5 coopper ***** válasza:

Ja még egy dolog :


A dátumnak magyar formátumnak kell lennie, tehát YYYY.MM.DD, ha nem az lenne akkor ezt a sort kell módositani a dátumformátumnak megfelelően :


Honap$ = Mid(Datum$, 6, 2)

2012. aug. 13. 20:13
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Köszi szépen!
2012. aug. 14. 09:11

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!