Hoi allen,
ik ben bezig met het schrijven van een macro om een workbook te printen, maar voordat de macro print moet hij eerst kijken of er uberhaubt op de pagina iets staat om pagina's waar niks op staat niet uit te printen.
Dat is me gelukt, maar nu wilde ik eigenlijk nog een extra stukje invoegen, namelijk om een statement of content op te nemen in de print macro waarbij de macro regels verbergt waar geen data op staat.
Daarvoor heb ik dezelfde cel genomen als waar de print macro al eerder naar toe verwees, daar staat een =IF(ABS(SUM)) formule die terugkomt met een 1 of een 0.
Nu moet elke regel waar een 0 op terugkomt worden gehide en de regels waar een 1 op staat niet.
De code die ik tot nu toe heb geschreven is als volgt:
Kan het zijn dat deze code fout loopt omdat de code in eerste instantie is geschreven in VBA 6.5, maar ik op deze pc momenteel VBA 6.3 ben genoodzaakt te hanteren?
Mocht er iemand een oplossing weten dan hoor ik dat graag in ieder geval
ik ben bezig met het schrijven van een macro om een workbook te printen, maar voordat de macro print moet hij eerst kijken of er uberhaubt op de pagina iets staat om pagina's waar niks op staat niet uit te printen.
Dat is me gelukt, maar nu wilde ik eigenlijk nog een extra stukje invoegen, namelijk om een statement of content op te nemen in de print macro waarbij de macro regels verbergt waar geen data op staat.
Daarvoor heb ik dezelfde cel genomen als waar de print macro al eerder naar toe verwees, daar staat een =IF(ABS(SUM)) formule die terugkomt met een 1 of een 0.
Nu moet elke regel waar een 0 op terugkomt worden gehide en de regels waar een 1 op staat niet.
De code die ik tot nu toe heb geschreven is als volgt:
Code:
Sub print_workbook()
WorkSheets("Content").Select
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
x = Range("ContentRow").Value
y = Range("ContentCol").Value
Dim currentSheet As String
Cells(x, y).Select
Do While Cells(x, y).Value <> ""
If Cells(x, y).Value < 1 Then
Row.Hide
End If
Worksheets("Content").Select
x = x + 1
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Dim Sh As Worksheet
Dim Arr() As String
Dim N As Integer
N = 0
For Each Sh In ActiveWorkbook.Worksheets
If Worksheet.Visible = xlSheetVisible And Sh.Range("B1").Value = 1 Then
N = N + 1
ReDim Preserve Arr(1 To N)
Arr(N) = Sh.Name
End If
Next
With ActiveWorkbook
.Worksheets(Arr).PrintOut
End With
End Sub
Kan het zijn dat deze code fout loopt omdat de code in eerste instantie is geschreven in VBA 6.5, maar ik op deze pc momenteel VBA 6.3 ben genoodzaakt te hanteren?
Mocht er iemand een oplossing weten dan hoor ik dat graag in ieder geval