• 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.

Rijhoogte verschilt op basis van if-else statement (EXCEL 2010-VBA)

Status
Niet open voor verdere reacties.

tijmen_4real

Gebruiker
Lid geworden
20 apr 2005
Berichten
338
Hoi,

Voor een document wil ik de vergelijking maken met de waarde in een cel.
Aan de hand van de waarde is de rijhoogte 20 of 60 pixels.

Code:
Sub setHeights()
If Range("B22").Value = "Geen" Then
    ActiveSheet.Rows("22").EntireRow.RowHeight = 20
Else
    ActiveSheet.Rows("22").EntireRow.RowHeight = 60
End If
End Sub

Wanneer er dus in B22 alleen de tekst "Geen" staat, moet de rijhoogte 20 zijn, anders 60.
Maar dit werkt niet.... :-(

Wil iemand zo vriendelijk zijn om te zeggen wat er verkeerd is? En hoe los ik dat op??
Bij voorbaat dank en met vriendelijke groet, (zie bijlage onder)

Tijmen

Bekijk bijlage intake-formulier_vb.xlsm
 
Laatst bewerkt:
En wat staat er in B22?
Geen?
GEEN?
geen?

Probeer deze eens:
Code:
Sub setHeights()
    ActiveSheet.Rows("22").RowHeight = IIf(UCase(Range("B22").Value) = "GEEN", 20, 60)
End Sub

Of in het juiste event, zoals Haije en Cobbe aangeven, achter het werkblad dus:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Rows("22").RowHeight = IIf(UCase(Range("B22").Value) = "GEEN", 20, 60)
End Sub
 
Laatst bewerkt:
je hebt de code niet gekoppeld aan een Event. Probeer het zo eens:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B22").Value = "Geen" Then
    ActiveSheet.Rows("22").EntireRow.RowHeight = 20
Else
    ActiveSheet.Rows("22").EntireRow.RowHeight = 60
End If
End Sub
 

Bijlagen

Laatst bewerkt:
Je zet deze code beter in een event:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 rh = 20
  If [b22] <> "geen" Or [b22] <> "GEEN" Or [b22] <> "Geen" Then rh = rh * 3
  ActiveSheet.Rows("22").EntireRow.RowHeight = rh
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan