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

Rijen verbergen op bepaalde voorwaarden

Status
Niet open voor verdere reacties.

robbinjerusalem

Gebruiker
Lid geworden
7 aug 2012
Berichten
7
Hallo allemaal,

Ik wil graag het volgende voor elkaar krijgen in het bijgevoegde bestand.

[Czech] moet worden [Czech Republik], maar ik moet wel de zelfde opties in B15 houden als nu
Wanneer [B6] [Non-EU] is moet ik in [B7] zelf wat in kunnen vullen, dus geen meerkeuze
Wanneer ik bij [B6] heb ingevuld [Non-EU] moet rij 15 verborgen worden
Wanneer ik bij B7 geen [Czech Republic] of [Netherlands] heb ingevuld moet rij 15 verborgen worden

Ben nog niet heel erg bekend met macro's dus zou iemand dat voor mij kunnen zien/uitleggen hoe het moet.

Heb al op internet gekeken, maar kom daar ook niet verder mee.

Bij voorbaat hardstikke veel dank:).

Robbin
 

Bijlagen

Het eerste punt bestaat eigenlijk uit twee delen. Ik heb deze voor het gemak A en B genoemd:
A. Wijzig naam Czech naar Czech_Republik op tab "Data validation". N.B. Let op. Hier mogen geen spaties in staan i.v.m. met B
B. Wijzig de naam (Formules → Namen beheren; wijzigen Czech naar Czech_Republic)

Voor de punten 2-4 kun je de volgende code in "ThisWorkbook" te plakken (VBA openen via Alt-F11)
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If (ActiveSheet.Name = "Business information" _
    And Target.Column = 2 And Target.Row = 6) Then
    Application.ScreenUpdating = False
    If Cells(6, 2).Value = "Non-EU" Then
        Cells(7, 2).Validation.Delete
        Rows("15:15").EntireRow.Hidden = True
    Else
        Cells(7, 2).Validation.Add Type:=xlValidateList, _
            AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:="=INDIRECT(B6)"
        Rows("15:15").EntireRow.Hidden = False
    End If
    Cells(7, 2).ClearContents
    Application.ScreenUpdating = True
End If

If (ActiveSheet.Name = "Business information" _
    And Target.Column = 2 And Target.Row = 7) Then
    Application.ScreenUpdating = False
    If Cells(7, 2).Value = "Czech_Republik" _
        Or Cells(7, 2).Value = "Netherlands" Then
        Rows("15:15").EntireRow.Hidden = False
    Else
        Rows("15:15").EntireRow.Hidden = True
    End If
    Application.ScreenUpdating = True
End If

End Sub
 
Screenupdating?/_ veranderen in spatie

Het eerste punt bestaat eigenlijk uit twee delen. Ik heb deze voor het gemak A en B genoemd:
A. Wijzig naam Czech naar Czech_Republik op tab "Data validation". N.B. Let op. Hier mogen geen spaties in staan i.v.m. met B
B. Wijzig de naam (Formules → Namen beheren; wijzigen Czech naar Czech_Republic)

Voor de punten 2-4 kun je de volgende code in "ThisWorkbook" te plakken (VBA openen via Alt-F11)
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If (ActiveSheet.Name = "Business information" _
    And Target.Column = 2 And Target.Row = 6) Then
    Application.ScreenUpdating = False
    If Cells(6, 2).Value = "Non-EU" Then
        Cells(7, 2).Validation.Delete
        Rows("15:15").EntireRow.Hidden = True
    Else
        Cells(7, 2).Validation.Add Type:=xlValidateList, _
            AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:="=INDIRECT(B6)"
        Rows("15:15").EntireRow.Hidden = False
    End If
    Cells(7, 2).ClearContents
    Application.ScreenUpdating = True
End If

If (ActiveSheet.Name = "Business information" _
    And Target.Column = 2 And Target.Row = 7) Then
    Application.ScreenUpdating = False
    If Cells(7, 2).Value = "Czech_Republik" _
        Or Cells(7, 2).Value = "Netherlands" Then
        Rows("15:15").EntireRow.Hidden = False
    Else
        Rows("15:15").EntireRow.Hidden = True
    End If
    Application.ScreenUpdating = True
End If

End Sub

Je bent echt geweldig.
Nu heb ik nog 1 kleine dingetjes wat ik graag zou willen aangepast als dat mogelijk is.

Ik wil dat [Czech_Republic] wordt weergegeven als [Czech Republic] (Wordt gebruikt in VBA en Data validation).

BVD

Robbin
 

Bijlagen

Laatst bewerkt:
Het enige wat ik kan bedenken is een, naar mijn mening, hele lelijke oplossing met vertikaal zoeken. Waardoor als je in de dropdown een land kiest er op een andere nader te bepalen plek de verwijzing wordt geplaatst. Ik kan op dit moment geen Excel bijvoegen, dus een stappenplan:

1. Kopieer op tab Data Validation de eerste kolom en voeg deze tussen
2. Wijzig de naam Czech_Republic in kolom A naar Czech Republic
3. Haal op een nader te bepalen locatie (bv. direct achter cel B7) de naam met underscore op; formule: =VERT.ZOEKEN(B7;'Data validation'!A1:B28;2;ONWAAR)
4. Pas de data validatie aan in cel B15; =INDIRECT(B7) moet worden =INDIRECT(C7)
5. Pas de macro aan; If Cells(7, 2).Value = "Czech_Republik" moet worden If Cells(7, 2).Value = "Czech Republik"

Succes!
 
Het enige wat ik kan bedenken is een, naar mijn mening, hele lelijke oplossing met vertikaal zoeken. Waardoor als je in de dropdown een land kiest er op een andere nader te bepalen plek de verwijzing wordt geplaatst. Ik kan op dit moment geen Excel bijvoegen, dus een stappenplan:

1. Kopieer op tab Data Validation de eerste kolom en voeg deze tussen
2. Wijzig de naam Czech_Republic in kolom A naar Czech Republic
3. Haal op een nader te bepalen locatie (bv. direct achter cel B7) de naam met underscore op; formule: =VERT.ZOEKEN(B7;'Data validation'!A1:B28;2;ONWAAR)
4. Pas de data validatie aan in cel B15; =INDIRECT(B7) moet worden =INDIRECT(C7)
5. Pas de macro aan; If Cells(7, 2).Value = "Czech_Republik" moet worden If Cells(7, 2).Value = "Czech Republik"

Succes!

Dit laatste heb ik niet gedaan, maar heb een volgende vraag (ja ik ben lastig:)).:

Wanneer [B7] NIET de inhoud heeft van één cel van [E1 t/m E66] dan moet rij 13 verborgen worden
Dus wanneer [B7] wel de inhoud heeft van één cel van [E1 t/m E66] dan moet rij 13 gewoon zichtbaar blijven

BVD!
 

Bijlagen

Hiervoor kun je de volgende code opnemen. Overigens kijkt deze code naar heel kolom E, dus als er later landen toegevoegd worden blijft dit goed gaan
Code:
If (ActiveSheet.Name = "Business information" _
    And Target.Column = 2 And Target.Row = 7 _
    And Sheets("Data validation").Columns(5).Find(Target.Value, , xlValues, xlWhole) Is Nothing) Then
        Rows("13:13").EntireRow.Hidden = True
    Else
        Rows("13:13").EntireRow.Hidden = False
    End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan