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

Macro vanuit cel op ander werkblad starten

Status
Niet open voor verdere reacties.

KeBr

Gebruiker
Lid geworden
25 apr 2016
Berichten
161
Ik wil graag dat bij wijziging van een cel op "blad1" en macro wordt uitgevoerd om rijen te verbergen op "blad2"
Ik heb de onderstaande macro in "Blad2 staan. als in A1 op "blad1" een 1 wordt ingevoerd moet de macro de rijen op "blad2" verbergen.
als ik hetop hetzeldfde blad uitvoer werkt het wel. ik heb al diverse dingen geprobeerd en ook hier op het forum gezocht.
bv. If Range("blad1, A1").Value = 1 Then Rows("7:21").Hidden = True dit werkt echter niet

wie kan mij helpen

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value = 1 Then Rows("7:21").Hidden = True
If Range("A1").Value = 0 Then Rows("7:21").Hidden = False
End Sub
 
verwijzen naar het blad in kwestie:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Range("A1").Value = 1 Then Sheets("Blad2").Rows("7:21").Hidden = True
 If Range("A1").Value = 0 Then Sheets("Blad2").Rows("7:21").Hidden = False
 End Sub
 
Probeer het zo eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
sheets("blad2").Rows("7:21").Hidden = Range("A1").Value = 1
End Sub
 
kan volgens mij ook wel.

Code:
=target = 1

ik zou er een:
Code:
if target.address(0,0) = "A1" then
inbouwen
 
Laatst bewerkt:
Is voor twee schermen!
 
Harry,

bedankt voor je snelle reactie. ik krijg het echter niet werkend. ik het het bestand bijgesloten.
op blad 1 staan alle hoofditems. blad 2 alle onderliggende regels.
Indien een hoofditem niet nodig is moet er op blad 1 voor die regel een '1' komen te staan. op blad 2 dienen dan zowel de hoofdregel als de onderliggende regels verborgen te worden.

Misschien doe ik iets fout, ik heb al geprobeerd om het in blad1, blad2, workbook en module te plakken. het werkt nergens.
 

Bijlagen

  • Checklist.xlsm
    50 KB · Weergaven: 25
Laatst bewerkt:
:d:d Vraag lezen, niet zelf iets verzinnen. :d:d
 
Als ik in Blad1 A1 een 1 invul worden op Blad2 de rijen 7 t/m 21 verborgen

Dat is ook wat er in de macro staat, blijkbaar verwacht jij iets anders, wat?
 
@KeBr,

Je moet dan wel de 1 intikken in cel A1.
Dan op het ander blad kijken.

Doe het anders zoals @VenA aangaf.

Die code zet je dan in de module van het ander blad.
 
Beste Harry,

De 2e code die jevgeplaatst hebt werk. bedankt.

groet, Kees
 
Mogen wij eens zien hoe het is geworden Kees?

Anders loopt straks je code bij elke verandering in het blad.

Wat is de verwachting?
Bij het intikken van een 1, of gewoon als er een 1 staat als je naar het ander blad gaat?
 
Voor de volledigheid maar even. In de module van Blad2

Code:
Private Sub Worksheet_Activate()
  Rows("7:21").Hidden = Sheets("Blad1").Cells(1) = 1
End Sub
 
Beste Harry,

zoals gezegd werkt de code goed. ik vraag mij af of deze ook zo aangepast kan worden dat ik niet voor elk bereik dit apart moet ingeven. zie hieronder. ik ben nu bij regel 87 van de meer dan 400.
als het niet mogelijk is even goed bedankt, dan ga ik zo verder.
Wat ik ook zag, er kan geen overlap plaats vinden. als ik b.v. tussen de regel 7 en 21 subregels heb die ik ook in onderstaande opneem, dan werkt de regel "7:21" niet meer.

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Blad2").Rows("7:21").Hidden = Range("A7").Value = "x"
Sheets("Blad2").Rows("22:27").Hidden = Range("A11").Value = "x"
Sheets("Blad2").Rows("28:33").Hidden = Range("A12").Value = "x"
Sheets("Blad2").Rows("34:37").Hidden = Range("A13").Value = "x"
Sheets("Blad2").Rows("38:41").Hidden = Range("A14").Value = "x"
Sheets("Blad2").Rows("42:46").Hidden = Range("A15").Value = "x"
Sheets("Blad2").Rows("47:50").Hidden = Range("A16").Value = "x"
Sheets("Blad2").Rows("51:53").Hidden = Range("A17").Value = "x"
Sheets("Blad2").Rows("54:58").Hidden = Range("A18").Value = "x"
Sheets("Blad2").Rows("59:68").Hidden = Range("A19").Value = "x"
Sheets("Blad2").Rows("69:78").Hidden = Range("A20").Value = "x"
Sheets("Blad2").Rows("79:87").Hidden = Range("A21").Value = "x"
End Sub
 
Als er enig regelmaat van 6 rijen verbergen is, kon het zo.

Vanaf A11 t/m A200.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("a11:a200")) Is Nothing Then _
  Sheets("blad1").Rows(Target.Row * 6 - 44).Resize(6).Hidden = lcase(Target) = "x"
End Sub
 
Beste Harry,
Bedankt voor je reactie. De regelmaat is alleen in het eerste deel aanwezig. Verder is het dan 3, dan 12, dan5, enz.
Ik zal het verder afwerken waar ik al mee bezig ben.

Dacht dat het mss mogelijk is om te laten kijken naar gegevens in kolom B. Daar staan alleen de hoofdgegevens. De onderliggende rijen beginnen in kolom C

Nogmaals dank voor de moeite.
 
Ik kan er nog wel wat van maken met 'select case', maar dan moet ik precies de juiste rijen en aantallen weten.
Dat wordt dan even puzzelen.
 
Beste Harry,

Ik ga het zo oplossen. Het aantal rijen kan tussendoor wijzigen namelijk. Dan kan ik beter in huidige structuur aanpassen.
Nogmaals dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan