PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBALåsa alla fält utom de tomma för inmatningLåsa alla fält utom de tomma för inmatning
Föregående Föregående
 
Nästa
 Avaktiverad
Nytt inlägg
 2019-04-26 20:53
 

Hej.

Har ett excelblad som skapas slumpvis med hjälp av vba kod.

När det är klart exporteras det som ett nytt excelblad.

Innan det skulle jag vilja att alla ifyllda celler (en del är fyllda med text, andra med färg), blev låsta, så att ingen inmatning kan göras på dessa.

Däremot skulle jag vilja att man i alla tomma fält kan mata in värden/text och sedan spara igen.

Hur gör man detta? :) 

Nytt inlägg
 2019-04-28 16:03
 

 Det gör du med VBA. Koden söker igenom bladet och skrivskyddar alla ifyllda fält.

Nytt inlägg
 2019-04-29 09:17
 
 Ändrad av Christian  på 2019-04-29 09:25:02
Hej

Detta kan vara lite trixigt då default inställningen för varje cell är just låst. Alltså måste vi öppna upp alla celler som inte har färger eller värden i sig och därefter låsa de celler som ska vara låsta.

Enklast är att låsa upp ett angivet område, och därefter modifiera din färdiga kod. Öppnar vi upp hela bladet ner till rad 1048576 ock kolumn: XFD så kommer din arbetsbok bli onödigt stor, samt att det kommer ta ganska lång tid att köra programmet.
Då är det bättre att begränsa sig... Nedan kod öppnar upp alla celler från cell(1,1) till cell(1000, 30), (rad, kolumn).

Sub Macro1()

Dim rng As Range: Set rng = ActiveSheet.Range(Cells(1, 1), Cells(1000, 30))

rng.locked = false

End Sub

För att kunna hjälpa dig att modifiera din färdiga kod så behöver du dela med dig av den. Annars är det .locked = true som du är ute efter om du kan göra det själv.
Det sista du behöver göra i den färdiga koden är att låsa bladet: Activesheet.protect = true Samt att se till att koden även öppnar upp bladet innan den körs. Det går även att låsa bladet med lösenord om detta skulle önskas: Activesheet.protect = true "password"

PS. se till att först öppna upp cellerna, därefter köra dina andra kod. Det går även utmärkt att slå ihop min kod med din..

Mvh
Christian
Föregående Föregående
 
Nästa
 Avaktiverad
ForumForumDiskussionerDiskussionerVBAVBALåsa alla fält utom de tomma för inmatningLåsa alla fält utom de tomma för inmatning

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter