Hallo,
Ik ben bezig een macro te ontwikkelen voor het afhankelijk verbergen van rijen en kolommen binnen 1 tabblad(sheet).
Het bereik bestaat uit 4816 rijen en kolommen C t/m HD.
Afhankelijk van de waarden in meerdere Textboxen(Active X-besturingselement) op een ander tabblad(sheet) zou ik de rijen en kolommen willen laten verbergen.
De macro is nu als volgt:
Voor het verbergen van Rijen
Kort samengevat:
Er zijn dus 30 textboxen op sheet 1 die een waarde van 1 t/m 15 kunnen vertegenwoordigen waarna afhankelijk van de ingegeven waarde door de
gebruiker de rijen worden verborgen op sheet 2. Dit tot aan rij 4816.
De volgende problemen onstaan bij deze macro:
- Lange doorlooptijd voordat de macro is uitgevoerd
- Bij het verbergen van eengroot aantal rijen bijv. 4000 loopt excel soms vast (not responding) en is de sheet moeilijk (of niet) te activeren.
Iemand een idee om een efficiëntere macro te schrijven en bovengenoemde problemen op te lossen (het aantal textboxen moet behouden blijven).
Hetzelfde probleem geldt voor de kolommen in deze sheet zie onderstaande macro:
Voor het verbergen van kolommen is er 1 textbox die de waarde 1 t/m 30 kan aannemen:
Beide macro's werken wel, maar bij het gemeenschappelijk verbergen van grote hoeveelheden rijen en kolommen onstaan problemen,.
Kan iemand mij verder helpen voor bovenstaand?
Alvast dank.
Gr,
Robert
Ik ben bezig een macro te ontwikkelen voor het afhankelijk verbergen van rijen en kolommen binnen 1 tabblad(sheet).
Het bereik bestaat uit 4816 rijen en kolommen C t/m HD.
Afhankelijk van de waarden in meerdere Textboxen(Active X-besturingselement) op een ander tabblad(sheet) zou ik de rijen en kolommen willen laten verbergen.
De macro is nu als volgt:
Voor het verbergen van Rijen
Code:
Private Sub CommandButton2_Click()
If Textbox1.Value >= 1 Then
Sheet2.Range("27:36").EntireRow.Hidden = False
Else
Sheet2.Range("27:36").EntireRow.Hidden = True
End If
If Textbox1.Value >= 2 Then
Sheet2.Range("37:46").EntireRow.Hidden = False
Else
Sheet2.Range("37:46").EntireRow.Hidden = True
End If
If Textbox1.Value >= 3 Then
Sheet2.Range("47:56").EntireRow.Hidden = False
Else
Sheet2.Range("47:56").EntireRow.Hidden = True
End If
Etc. Etc. dit gaat voor textbox1 door tot:
If Textbox1.Value >= 15 Then
Sheet2.Range("167:176").EntireRow.Hidden = False
Else
Sheet2.Range("167:176").EntireRow.Hidden = True
End If
End Sub
Er zijn dus 30 textboxen op sheet 1 die een waarde van 1 t/m 15 kunnen vertegenwoordigen waarna afhankelijk van de ingegeven waarde door de
gebruiker de rijen worden verborgen op sheet 2. Dit tot aan rij 4816.
De volgende problemen onstaan bij deze macro:
- Lange doorlooptijd voordat de macro is uitgevoerd
- Bij het verbergen van eengroot aantal rijen bijv. 4000 loopt excel soms vast (not responding) en is de sheet moeilijk (of niet) te activeren.
Iemand een idee om een efficiëntere macro te schrijven en bovengenoemde problemen op te lossen (het aantal textboxen moet behouden blijven).
Hetzelfde probleem geldt voor de kolommen in deze sheet zie onderstaande macro:
Voor het verbergen van kolommen is er 1 textbox die de waarde 1 t/m 30 kan aannemen:
Code:
Private Sub CommandButton2_Click()
If TextboxAantalPartners.Value >= 1 Then
Sheet2.Columns("C:I").EntireColumn.Hidden = False
Else
Sheet2.Columns("C:I").EntireColumn.Hidden = True
End If
If TextboxAantalPartners.Value >= 2 Then
Sheet2.Columns("J:P").EntireColumn.Hidden = False
Else
Sheet2.Columns("J:P").EntireColumn.Hidden = True
End If
If TextboxAantalPartners.Value >= 3 Then
Sheet2.Columns("Q:W").EntireColumn.Hidden = False
Else
Sheet2.Columns("Q:W").EntireColumn.Hidden = True
End If
Etc. Etc. t/m kolom HD
End Sub
Kan iemand mij verder helpen voor bovenstaand?
Alvast dank.
Gr,
Robert
Laatst bewerkt door een moderator: