• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA ALS kolom zichtbaar dan...

  • Onderwerp starter Onderwerp starter TJ86
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

TJ86

Gebruiker
Lid geworden
28 sep 2014
Berichten
127
Goedemorgen collega's,

ik gebruik volgende code om een afbeelding als header image in een andere sheet te krijgen en die werkt.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address
 Case "$AA$24"
 Case "$AA$28"
  Sheets("Calculatieblad").PageSetup.CenterHeader = "&G"
  Sheets("Calculatieblad").PageSetup.CenterHeaderPicture.Filename = "NETWERKPAD" & Range("AA24").Value & "_" & Target.Value & ".jpg"
  Sheets("Calculatieblad").PageSetup.CenterHeaderPicture.Height = 148
End Select
Application.EnableEvents = True

If Sheets("Klantgegevens").Range("AA28") = "Nederlands" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Pagina " & P & "van " & N
If Sheets("Klantgegevens").Range("AA28") = "Duits" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Seite " & P & "von " & N
If Sheets("Klantgegevens").Range("AA28") = "Engels" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Page " & P & "of " & N
If Sheets("Klantgegevens").Range("AA28") = "Frans" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "SeiteFR " & P & "pour " & N
End Sub


Nu is mijn vraag als volgt.. er staat een line
Code:
Sheets("Calculatieblad").PageSetup.CenterHeaderPicture.Height = 148

Eigenlijk zou het zo moeten zijn dat als kolom E van sheet calculatieblad zichtbaar is dat de CenterHeaderPicture.Height = 148 moet zijn.
Als Kolom E NIET zichtbaar is dan zou de height 100 moeten zijn.
Als kolom O zichtbaar is dat height 161 moet zijn.
En als zowel kolom E als kolom O zichtbaar zijn dat de height 170 moet zijn.

Is hier een simpel trucje voor? Met mijn VBA 'kunsten' lukt het helaas niet.. Ik denk een IF of ELSE IF maar ik zou niet weten hoe
 
Zou deze de klus klaren?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address
 Case "$AA$24"
 Case "$AA$28"
   With Sheets("Calculatieblad")
    If .Columns("E").ColumnWidth > 0 Then hoogte = 100
    If .Columns("O").ColumnWidth > 0 Then hoogte = 161
    If .Columns("E").ColumnWidth > 0 And .Columns("O").ColumnWidth > 0 Then hoogte = 170
  
        .PageSetup.CenterHeader = "&G"
        .PageSetup.CenterHeaderPicture.Filename = "NETWERKPAD" & Range("AA24").Value & "_" & Target.Value & ".jpg"
        .PageSetup.CenterHeaderPicture.Height = hoogte
   End With
End Select
Application.EnableEvents = True

If Sheets("Klantgegevens").Range("AA28") = "Nederlands" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Pagina " & P & "van " & N
If Sheets("Klantgegevens").Range("AA28") = "Duits" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Seite " & P & "von " & N
If Sheets("Klantgegevens").Range("AA28") = "Engels" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "Page " & P & "of " & N
If Sheets("Klantgegevens").Range("AA28") = "Frans" Then Sheets("Calculatieblad").PageSetup.CenterFooter = "SeiteFR " & P & "pour " & N
End Sub
 
Of deze:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim Pagina As String
    Dim Van As String
    Dim Hoogte As Integer
    
    Select Case Target.Address
        Case "$AA$24"
        Case "$AA$28"
            With Sheets("Calculatieblad").PageSetup
                .CenterHeader = "&G"
                .CenterHeaderPicture.Filename = "NETWERKPAD" & Range("AA24").Value & "_" & Target.Value & ".jpg"
                If Columns("E").Hidden Then Hoogte = 148
                If Not Columns("O").Hidden Then Hoogte = 161
                If Not Columns("E").Hidden And Not Columns("O").Hidden Then Hoogte = 170
                .CenterHeaderPicture.Height = Hoogte
            End With
    End Select
    
    Select Case Sheets("Klantgegevens").Range("AA28")
        Case "Nederlands":  Pagina = "Pagina ": Van = "van "
        Case "Duits":       Pagina = "Seite ":  Van = "von "
        Case "Engels":      Pagina = "Page ":   Van = "from "
        Case "Frans":       Pagina = "Page ":   Van = "de "
    End Select
    Sheets("Calculatieblad").PageSetup.CenterFooter = Pagina & P & Van & N
    
    Application.EnableEvents = True
End Sub

PS:
Het woord Pagina is in het Frans hetzelfde als in het Engels.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan