Olen tehnyt erääseen excel-tiedostoon UserFormin, jolla voi tehdä tiedoston kielivalinnan. Homma toimii periaatteessa niin, että esim. suomenkieliset sarakkeet vain piilotetaan, jos valitaan englannin kieli. Tiedostossani on useita eri sheettejä, ja nyt kysyisinkin kuinka saan tuon kielivalinnan toimimaan kerralla kaikille sheeteille? Tällä hetkellä kielivalinta toimii vain sillä sheetinllä, joka on valittuna kun tiedosto avataan. Siin onko joku mahdollisuus tehdä joku simppeli koodi, jolla samat sarakkeet piilotetaan kaikilta sheeteiltä kerralla?
Apua VBA koodiin
6
519
Vastaukset
- Kunde
räätälöi sopivaksi
Sub Koe()
Dim Kieli As String
Kieli = "Englanti"' muuta tekstiä testataksesi koodia
If Kieli = "Englanti" Then
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = True
Next
Else
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = True
Next
End If
End Sub- Kunde
oli vahingossa True kun piti olla False
Sub Koe()
Dim Kieli As String
Kieli = "Englanti"' muuta tekstiä testataksesi koodia
If Kieli = "Englanti" Then
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = True
Next
Else
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = False
Next
End If
End Sub - nils
Kunde kirjoitti:
oli vahingossa True kun piti olla False
Sub Koe()
Dim Kieli As String
Kieli = "Englanti"' muuta tekstiä testataksesi koodia
If Kieli = "Englanti" Then
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = True
Next
Else
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = False
Next
End If
End SubOlen vielä hieman amatööri näissä hommissa, joten voisitko vielä valaista miten muutan tota koodia. Nyt koodini näyttää tältä:
Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Columns("B:B").Select
Selection.EntireColumn.Hidden = True
Columns("D:D").Select
Selection.EntireColumn.Hidden = True
Columns("F:F").Select
Selection.EntireColumn.Hidden = True
Columns("H:H").Select
Selection.EntireColumn.Hidden = True
Columns("J:J").Select
Selection.EntireColumn.Hidden = True
Columns("L:L").Select
Selection.EntireColumn.Hidden = True
Columns("N:N").Select
Selection.EntireColumn.Hidden = True
Columns("P:P").Select
Selection.EntireColumn.Hidden = True
Columns("R:R").Select
Selection.EntireColumn.Hidden = True
Columns("T:T").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll ToRight:=2
Columns("W:W").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll ToRight:=-10
Range("A4").Select
frmLanguage.Hide
End If
If OptionButton2.Value = True Then
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
Columns("C:C").Select
Selection.EntireColumn.Hidden = True
Columns("E:E").Select
Selection.EntireColumn.Hidden = True
Columns("G:G").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll ToRight:=4
Columns("I:I").Select
Selection.EntireColumn.Hidden = True
Columns("K:K").Select
Selection.EntireColumn.Hidden = True
Columns("M:M").Select
Selection.EntireColumn.Hidden = True
Columns("O:O").Select
Selection.EntireColumn.Hidden = True
Columns("Q:Q").Select
Selection.EntireColumn.Hidden = True
Columns("S:S").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll ToRight:=3
Columns("V:V").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll ToRight:=-13
Range("B6").Select
frmLanguage.Hide
End If
End Sub
Tuo siis toimii yhdelle sheetille, mutta miten saan toimimaan kaikille? - nils
Kunde kirjoitti:
oli vahingossa True kun piti olla False
Sub Koe()
Dim Kieli As String
Kieli = "Englanti"' muuta tekstiä testataksesi koodia
If Kieli = "Englanti" Then
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = True
Next
Else
For x = 1 To Sheets.Count
Sheets(x).Columns("C:G").EntireColumn.Hidden = False
Next
End If
End Submitäs tämä "suomennettuna tarkoittaa?
For x = 1 To Sheets.Count - Kunde
nils kirjoitti:
mitäs tämä "suomennettuna tarkoittaa?
For x = 1 To Sheets.CountFor x = 1 To Sheets.Count
...
Next
laskuri x saa arvot 1- työkirjassa olevien laskentataulukkojen määrä. Eli jos sinulla on esim. 3 laskentataulukkoa -laskuri suorittaa silmukan 3 kertaa...
no tässä sulle pyytämäsi koodi "hieman" putsattuna. Oletin, että kun joku kieli valittuna niin ilmeisesti toisen kielen sarakkeet pitää olla piilotettuna?
Private Sub CommandButton1_Click()
For Each sht In ActiveWorkbook.Worksheets
sht.Activate
If OptionButton1.Value = True Then
Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = True
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = False
End If
If OptionButton2.Value = True Then
Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = False
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = True
End If
Next
End Sub - nils
Kunde kirjoitti:
For x = 1 To Sheets.Count
...
Next
laskuri x saa arvot 1- työkirjassa olevien laskentataulukkojen määrä. Eli jos sinulla on esim. 3 laskentataulukkoa -laskuri suorittaa silmukan 3 kertaa...
no tässä sulle pyytämäsi koodi "hieman" putsattuna. Oletin, että kun joku kieli valittuna niin ilmeisesti toisen kielen sarakkeet pitää olla piilotettuna?
Private Sub CommandButton1_Click()
For Each sht In ActiveWorkbook.Worksheets
sht.Activate
If OptionButton1.Value = True Then
Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = True
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = False
End If
If OptionButton2.Value = True Then
Range("B:B,D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,W:W").EntireColumn.Hidden = False
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,V:V").EntireColumn.Hidden = True
End If
Next
End Subpienellä muokkauksella sain ton semmoseks kun halusin. Kiitos asiallisista neuvoista!!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Virkamiehille tarvitaan tuntuvat palkankorotukset
Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi423930Riikka Purran kaudella nousi bensan hinta yli 2 euron
Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal393536- 703138
Olisipa saanut sinuun
Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak912990Mitäs nyt sijoittajat?
Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no861982- 351958
- 241809
- 301744
- 321743
Olisitpa se hellä
Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k231704