Hallo Vba expert
Na veel zoeken en hulp van dit forum heb ik een macro in elkaar gepuzzeld. Het werkt maar is redelijk langzaam. Mogelijk zit er teveel in of kan iets eenvoudiger.
Kan iemand hier overheen kijken of iets weg of eenvoudiger kan? wat er gebeurt staat erbij:
Sub huubmacro()
'opheffen beveiliging
ActiveSheet.Unprotect
'wijzigen woord bouwgroepelement in tekeningnummer
Sheets("Berekeningsprotocol").Cells.Replace What:="Bouwgroepelement", Replacement:="Omschrijving/tekeningnummer"
'aantal cellen leegmaken wat weg moet
Sheets("Berekeningsprotocol").Range("c1:I1").ClearContents
Sheets("Berekeningsprotocol").Range("c2:I2").ClearContents
'regels verwijderen die weg moeten
Rows("2998:3000").Select
Selection.Delete Shift:=xlUp
Rows("181").Select
Selection.Delete Shift:=xlUp
'kolommen a en h verwijderen
Columns("$A:$A").EntireColumn.Hidden = True
Columns("$H:$H").EntireColumn.Hidden = True
'logo vergroten en regel groter maken
Rows("1:1").RowHeight = 90
Sheets("Berekeningsprotocol").Select
With ActiveSheet.Pictures
.Height = 90
.Top = [A1].Top
.Left = [A1].Left
End With
'verbreden cellen zodat het past
Columns("G:G").ColumnWidth = 7.86
Columns("I:I").ColumnWidth = 12.14
'verwijderen prijsinfo
ActiveSheet.Unprotect ' Alle rijen van het bereik aflopen
For Each c In Range("$B$2:$B$" & Range("B65500").End(xlUp).Row)
' Checken of de woorden 'behandeling" of 'bewerking' aanwezig zijn in kolom B
If InStr(1, c.Text, "Trumpf", 1) Or InStr(1, c.Text, "Lasersnijden", 1) Or InStr(1, c.Text, "afruimen", 1) Then
' Als WAAR dan rij verbergen
Rows(c.Row).Hidden = True
' Einde vraag
End If
' Volgende rij
Next
' Einde macro
End Sub
Sub tonen()
' Alle verborgen rijen terug zichtbaar maken
Range("A:A").Rows.Hidden = False
ActiveWorkbook.Save
Range("C2:I2").Select
ActiveWindow.Close
Application.Run "PERSONAL.XLSB!huubmacro"
ActiveWindow.SmallScroll Down:=-9
Range("A16:I16").Select
ActiveWindow.Close
Application.Run "PERSONAL.XLSB!huubmacro"
Application.Goto Reference:="huubmacro"
ActiveWorkbook.Save
End Sub
alle info is welkom.
Groet
Johan
Na veel zoeken en hulp van dit forum heb ik een macro in elkaar gepuzzeld. Het werkt maar is redelijk langzaam. Mogelijk zit er teveel in of kan iets eenvoudiger.
Kan iemand hier overheen kijken of iets weg of eenvoudiger kan? wat er gebeurt staat erbij:
Sub huubmacro()
'opheffen beveiliging
ActiveSheet.Unprotect
'wijzigen woord bouwgroepelement in tekeningnummer
Sheets("Berekeningsprotocol").Cells.Replace What:="Bouwgroepelement", Replacement:="Omschrijving/tekeningnummer"
'aantal cellen leegmaken wat weg moet
Sheets("Berekeningsprotocol").Range("c1:I1").ClearContents
Sheets("Berekeningsprotocol").Range("c2:I2").ClearContents
'regels verwijderen die weg moeten
Rows("2998:3000").Select
Selection.Delete Shift:=xlUp
Rows("181").Select
Selection.Delete Shift:=xlUp
'kolommen a en h verwijderen
Columns("$A:$A").EntireColumn.Hidden = True
Columns("$H:$H").EntireColumn.Hidden = True
'logo vergroten en regel groter maken
Rows("1:1").RowHeight = 90
Sheets("Berekeningsprotocol").Select
With ActiveSheet.Pictures
.Height = 90
.Top = [A1].Top
.Left = [A1].Left
End With
'verbreden cellen zodat het past
Columns("G:G").ColumnWidth = 7.86
Columns("I:I").ColumnWidth = 12.14
'verwijderen prijsinfo
ActiveSheet.Unprotect ' Alle rijen van het bereik aflopen
For Each c In Range("$B$2:$B$" & Range("B65500").End(xlUp).Row)
' Checken of de woorden 'behandeling" of 'bewerking' aanwezig zijn in kolom B
If InStr(1, c.Text, "Trumpf", 1) Or InStr(1, c.Text, "Lasersnijden", 1) Or InStr(1, c.Text, "afruimen", 1) Then
' Als WAAR dan rij verbergen
Rows(c.Row).Hidden = True
' Einde vraag
End If
' Volgende rij
Next
' Einde macro
End Sub
Sub tonen()
' Alle verborgen rijen terug zichtbaar maken
Range("A:A").Rows.Hidden = False
ActiveWorkbook.Save
Range("C2:I2").Select
ActiveWindow.Close
Application.Run "PERSONAL.XLSB!huubmacro"
ActiveWindow.SmallScroll Down:=-9
Range("A16:I16").Select
ActiveWindow.Close
Application.Run "PERSONAL.XLSB!huubmacro"
Application.Goto Reference:="huubmacro"
ActiveWorkbook.Save
End Sub
alle info is welkom.
Groet
Johan