Discussion:
kolommen verbergen op basis van waarde
(te oud om op te antwoorden)
Kruisje
2009-02-03 12:31:00 UTC
Permalink
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn

alvast bedankt.
Johan van den Brink
2009-02-03 12:58:02 UTC
Permalink
Ik heb even een voorbeeldje gemaakt om op basis van de waarde in cel A2 en G1
kolom G al dan niet te verbergen.
De code moet je plakken in de VBA Editor in ThisWorkbook.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target = Range("A2") Then
If Range("A2").Value = Range("G1").Value Then
Range("G1").Select
Selection.EntireColumn.Hidden = "True"

Else
Range("G1").Select
Selection.EntireColumn.Hidden = "False"

End If


End If


End Sub
--
Groeten,


Johan van den Brink
http://www.nimda.nl
Nimda maakt bedrijven efficiënter!
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Kruisje
2009-02-03 13:23:01 UTC
Permalink
Johan,

Met deze functie verbergt hij de kolom terwijl ik graag de kolom wil zein op
basis van de waarde in cel a2

Heb je een oplossing voor mij?

Bert
Post by Johan van den Brink
Ik heb even een voorbeeldje gemaakt om op basis van de waarde in cel A2 en G1
kolom G al dan niet te verbergen.
De code moet je plakken in de VBA Editor in ThisWorkbook.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target = Range("A2") Then
If Range("A2").Value = Range("G1").Value Then
Range("G1").Select
Selection.EntireColumn.Hidden = "True"
Else
Range("G1").Select
Selection.EntireColumn.Hidden = "False"
End If
End If
End Sub
--
Groeten,
Johan van den Brink
http://www.nimda.nl
Nimda maakt bedrijven efficiënter!
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Floris
2009-02-03 13:05:01 UTC
Permalink
Kruisje,

plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub

Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Kruisje
2009-02-03 13:21:01 UTC
Permalink
Floris,

Als ik deze code kopieer krijg ik een compile error: syntax error.
Als ik de code kopieer is het volgende gedeelte rood gekleurd in VBA
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Post by Floris
Then
Wat gaat er nog fout?

Bert
Post by Floris
Kruisje,
plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Floris
2009-02-03 13:33:02 UTC
Permalink
Kruisje,

Then moet achter de .value te komen staan, er moet wel een spatie tussen.
Ik vergeet altijd om code af te breken als ik hier post

Floris
Post by Kruisje
Floris,
Als ik deze code kopieer krijg ik een compile error: syntax error.
Als ik de code kopieer is het volgende gedeelte rood gekleurd in VBA
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Post by Floris
Then
Wat gaat er nog fout?
Bert
Post by Floris
Kruisje,
plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Kruisje
2009-02-03 14:03:01 UTC
Permalink
Floris,

Nu werkt het, maar kan je misschien ook nog iets toevoegen dat als er niets
in cel a2 staat dat dan alles zichtbaar is.

alvast bedankt

Bert
Post by Floris
Kruisje,
Then moet achter de .value te komen staan, er moet wel een spatie tussen.
Ik vergeet altijd om code af te breken als ik hier post
Floris
Post by Kruisje
Floris,
Als ik deze code kopieer krijg ik een compile error: syntax error.
Als ik de code kopieer is het volgende gedeelte rood gekleurd in VBA
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Post by Floris
Then
Wat gaat er nog fout?
Bert
Post by Floris
Kruisje,
plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Floris
2009-02-03 14:37:00 UTC
Permalink
Bert,

hier een aangepaste versie, indien A2 leeg is worden alle kolommen getoond,

Private Sub Worksheet_Change(ByVal Target As _
Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If Cells(2, 1).Value = "" Then
Cells.EntireColumn.Hidden = False
Else
If .Column >= 6 And Cells(1, .Column).Value <> _
Cells(2, 1).Value Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub

Floris
Post by Kruisje
Floris,
Nu werkt het, maar kan je misschien ook nog iets toevoegen dat als er niets
in cel a2 staat dat dan alles zichtbaar is.
alvast bedankt
Bert
Post by Floris
Kruisje,
Then moet achter de .value te komen staan, er moet wel een spatie tussen.
Ik vergeet altijd om code af te breken als ik hier post
Floris
Post by Kruisje
Floris,
Als ik deze code kopieer krijg ik een compile error: syntax error.
Als ik de code kopieer is het volgende gedeelte rood gekleurd in VBA
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Post by Floris
Then
Wat gaat er nog fout?
Bert
Post by Floris
Kruisje,
plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Kruisje
2009-02-03 14:40:01 UTC
Permalink
Floris,

Bedankt werkt geweldig

Bert
Post by Floris
Bert,
hier een aangepaste versie, indien A2 leeg is worden alle kolommen getoond,
Private Sub Worksheet_Change(ByVal Target As _
Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If Cells(2, 1).Value = "" Then
Cells.EntireColumn.Hidden = False
Else
If .Column >= 6 And Cells(1, .Column).Value <> _
Cells(2, 1).Value Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Floris,
Nu werkt het, maar kan je misschien ook nog iets toevoegen dat als er niets
in cel a2 staat dat dan alles zichtbaar is.
alvast bedankt
Bert
Post by Floris
Kruisje,
Then moet achter de .value te komen staan, er moet wel een spatie tussen.
Ik vergeet altijd om code af te breken als ik hier post
Floris
Post by Kruisje
Floris,
Als ik deze code kopieer krijg ik een compile error: syntax error.
Als ik de code kopieer is het volgende gedeelte rood gekleurd in VBA
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Post by Floris
Then
Wat gaat er nog fout?
Bert
Post by Floris
Kruisje,
plak de volgende code in de worksheetmodule van het desbetreffende blad en
voer de waarde die je wilt zien in cel a2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolom
Application.ScreenUpdating = False
For Each kolom In ActiveSheet.Columns
With kolom
If .Column >= 6 And Cells(1, .Column).Value <> Cells(2, 1).Value
Then
.EntireColumn.Hidden = True
Else
.EntireColumn.Hidden = False
End If
End With
Next kolom
Application.ScreenUpdating = True
End Sub
Floris
Post by Kruisje
Ik wil vanaf kolom G een horizontaal filter toepassen.
Als in cel G1,H1 , I1 enz. een bepaalde waarde staat dan wil ik die kolom
zien en anders moet deze kolom verborgen worden.
Het liefst wil ik deze bepaalde waarde invullen in cel a2.
Oftewel op basis van de waarde in cel A2 moeten de kolommen die aan deze
voorwaarde voldoet zichtbaar zijn
alvast bedankt.
Loading...