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

Opgelost Automatisch rijen weergeven wanneer specifieke Cel is ingevuld

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Quinnie

Gebruiker
Lid geworden
9 jan 2024
Berichten
9
Goedemiddag allen,

Ik ben bezig met het maken van een Excel bestand welke ik in mijn Software systeem kan inlezen zodat gegevens automatisch in mijn systeem worden ingevuld.
Mijn Excel bestand bevat meerdere tabellen die bestaan uit meerdere rijen/kolommen.

Nu zou ik graag willen wanneer het eerste tabel is ingevuld (of in ieder geval de eerste cel van de laatste rij van die tabel), automatisch de volgende tabel wordt weergegeven. en zo dan weer het zelfde met de volgende tabel etc. etc.
voorbeeld:

tabel 1 heeft als range A1 - D10
tabel 2 heeft als range A11 - D20
Tabel 3 heeft als Range A21 - D30

wanneer tabel 1 (in iedergeval kolom A van deze tabel) is ingevuld, wordt automatisch Tabel 2 weergegeven en blijf tabel 3 nog verborgen.
wanneer tabel 2 (in iedergeval kolom A van deze tabel) is ingevuld, wordt automatisch Tabel 3 weergegeven en blijf tabel 4 nog verborgen.
etc. etc.

Wie kan mij hierbij helpen?
ik ben zelf niet zo thuis in VBA en Macro's maar ben wel geïnteresseerd.
 
Zo ?, toets Alt+F11 en zet de code in het desbetreffende blad.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("11:30").EntireRow.Hidden = True
If Application.WorksheetFunction.CountA([a1:a10]) = 10 Then Rows("11:20").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a11:a20]) = 10 Then Rows("21:30").EntireRow.Hidden = False
End Sub
 
Hi Albert,

Onwijs bedankt! ik heb de code inderdaad even aangepast naar de cellen/rijen die voor mijn lijst van toepassing zijn en het werkt prima zo!
nu heb ik op een tweede werkblad in het zelfde bestand ook een soortgelijke functie nodig.
hiervoor heb ik de onderstaande code gebruikt.

de bedoeling hiermee is dat wanneer de cellen A14 - A23 leeg zijn, dat de opvolgende rijen worden verborgen.
wanneer de cellen A14-A23 wel zijn ingevuld wil ik dat de opvolgende 10 rijen (24-33) worden weergeven.
helaas lijkt de code niet te werken. zou dit kunnen komen omdat de waarde van de cellen in kolom A worden ingevuld d.m.v. een formule?
de cellen van kollom A worden namelijk automatisch ingevuld indien de cel in kolom B (van dezelfde Rij) is ingevuld. en de cellen van kolom B staan weer gelijk aan de cellen van een andere werkblad.

ik hoor graag jouw mening hierover :)

Private Sub Worksheet_Change(ByVal Target As Range)
Rows("24:113").EntireRow.Hidden = True
If Application.WorksheetFunction.CountA([a14:a23]) = 10 Then Rows("24:33").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a24:a33]) = 10 Then Rows("34:43").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a34:a43]) = 10 Then Rows("44:53").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a44:a53]) = 10 Then Rows("54:63").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a54:a63]) = 10 Then Rows("64:73").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a64:a73]) = 10 Then Rows("74:83").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a74:a83]) = 10 Then Rows("84:93").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a84:a93]) = 10 Then Rows("94:103").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([a94:a103]) = 10 Then Rows("104:113").EntireRow.Hidden = False
End Sub
 
Een formule triggert het change_event niet.
Lijkt me dat je de gevulde cellen op het 'andere blad' moet tellen.
p.s. Plaats een voorbeeldbestand.
 
Waarom zou je verschillende tabellen gebruiken ?

Als je met VBA wil werken kun je alle ingevoerde gegevens met VBA exportklaar maken.
Dus vertel wat meer over die export.
 
hi snb,

het eerste werkblad is exportklaar voor het systeem waarmee wij werken. wij werken echter zelf met een ander Excel bestand en daar heb ik nu een koppeling voor gemaakt tussen de twee bestanden.
handmatig vullen wij het tweede werkblad in, deze gegevens worden overgenomen op het eerste werkblad en dan kunnen wij via ons software systeem de gegevens inlezen.

alleen wil ik de werkbladen comprimeren zodat de gegevens die wij niet gebruiken verborgen zijn.
het is dus niet noodzakelijk voor het exporteren maar wel voor de uitstraling.

hopend je hiermee een duidelijk beeld te hebben gegeven?
 
Probeer dit eens op blad Splitslijst.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Specificatie").Rows("24:113").EntireRow.Hidden = True
Rows("59:530").EntireRow.Hidden = True

If Application.WorksheetFunction.CountA([b46:b55]) = 10 Then
    Rows("59:111").EntireRow.Hidden = False
    Sheets("Specificatie").Rows("24:33").EntireRow.Hidden = False
End If


If Application.WorksheetFunction.CountA([b98:b107]) = 10 Then
    Rows("112:163").EntireRow.Hidden = False
    Sheets("Specificatie").Rows("34:43").EntireRow.Hidden = False
End If

'*****************onderstaande regels zelf maar aanpassen***********************
If Application.WorksheetFunction.CountA([b150:b159]) = 10 Then Rows("164:215").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b202:b211]) = 10 Then Rows("216:268").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b254:b263]) = 10 Then Rows("269:320").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b307:b316]) = 10 Then Rows("321:372").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b359:b368]) = 10 Then Rows("373:424").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b411:b420]) = 10 Then Rows("425:476").EntireRow.Hidden = False
If Application.WorksheetFunction.CountA([b463:b472]) = 10 Then Rows("477:530").EntireRow.Hidden = False
End Sub
 
werkt echt prima zo Albert!
onwijs bedankt voor je hulp.

ik zou graag meer willen leren in dergelijke codes in VBA zelf schrijven. heb je een idee waar ik hier meer over kan vinden/leren?
 
Je kunt beginnen met een boek/cursus VBA voor beginners.
Of continu rondstruinen op Helpmij.nl. Ook heel leerzaam.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan