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

Waardes controleren en kopiëren

Status
Niet open voor verdere reacties.

Dwight21

Gebruiker
Lid geworden
24 nov 2010
Berichten
18
Ik ben bezig om een automatisch overzicht te krijgen van het onderhoud van een wagenpark. Ik loop vast bij het volgende.

Ik heb op werkblad 1 informatie staan zoals: Hoeveel dagen is het geleden dat een auto apk gekeurd is? Waarde die in een cel staat is dan bijvoorbeeld -234.

Nu wil ik op werkblad2 een automatische lijst te zien krijgen van autos die in die week APK gekeurd zouden moeten worden.

A1 het kenteken B1 APK ja/nee C1 en verder andere onderhoudsdingen etc

Wat ik dus als ideale uitkomst wil hebben is dat als in werkblad1 auto1 bij aantal dagen geleden -360 heeft staan, dat dan in werkblad 2 komt te staan
Kenteken APK
XX-XX-XX JA

Ik ben nu aan het klooien met VERT.ZOEKEN geen idee of dit de juiste is, het lukt me iig niet.
Werkblad 2 is in principe dus helemaal leeg en staat alleen vol met codes. Als het aantal dagen op werkblad 1 onder een bepaald minimum komt dan wordt werkblad 2 vanzelf gevuld met het kenteken dat de auto heeft en komt er JA te staan bij de keuringen die aan het verlopen zijn in die week.(mogelijk kost dit meerdere soorten code)

Ik heb nu bij werkblad 2 B1 dit staan: =VERT.ZOEKEN(-360; 'werkblad1'!G; ; )

Kan iemand me verder helpen? Bij voorbaat dank.
 
Als je het wil doen met interne mogelijkheden van excel kun je mogelijk ook naar een filter of pivottable kijken. Je kunt dan filteren op <-364 bijvoorbeeld.
 
voorbeeldbestandje doet wonderen

Dwight,

als je een voorbeeldbestandje kunt plaatsen krijg vast sneller een antwoord.....
 
Dwight,

excuus voor de late reactie, maar bedoel je zoiets?
 

Bijlagen

Haije,

Bedankt voor je reactie! Maar dit is nog niet helemaal wat ik zoek. In werkblad 2 staat nu aangegeven op welke datum de APK moet maar dat hoeft niet. Werkblad 2 moet zeg maar als er geen APK in die week gedaan hoeft te worden gewoon leeg blijven. Maar zodra op werkblad 1 ergens -358 staat (nog 1 week voor verlopen) dan moet het bijpassende kenteken op werkblad 2 komen te staan en dan JA onder apk (er zijn veel meer soorten onderhoud vandaar dat ik onder ieder onderhoud JA wil hebben staan per kenteken.

Een planner moet zeg maar iedere maandag werkblad 2 openen in 1 keer kunnen uitprinten en dan gelijk een overzicht hebben van wat er die week gedaan moet worden qua onderhoud.
 
Zet onderstaande in de bladmodule van Blad2
Code:
Private Sub Worksheet_Activate()
    With Sheets("Blad1")
    For Each cl In .Range("C6:C" & .Cells(Rows.Count, 1).End(xlUp).Row)
        If cl.Value >= -365 And cl.Value <= -358 Then
            With [Blad2!A65536].End(xlUp)
                .Offset(1) = Sheets("Blad1").Cells(cl.Row, 1).Value
                .Offset(1, 1) = "JA"
            End With
        End If
    Next
    End With
End Sub
 
Neem aan dat je met module bedoelt de plek waar je programmacode kunt invullen. Dat heb ik gedaan. Verder weet ik niet wat ik moet doen, ben niet bekend ermee :rolleyes: Het is iig nog niet werkend.
 
Dwight,

probeer dit eens...

elke keer als je blad2 selecteert wordt de lijst met te keuren kentekens opgebouwd

@ warme bakkertje: ik heb 1 regeltje toegevoegd aan je macro:
Code:
[a3:b65000].ClearContents
 

Bijlagen

Yes!

Dat is precies wat ik bedoelde inderdaad. Ik zal met deze code proberen het voor alle soorten keuringen te laten werken. Mocht ik weer vastlopen post ik weer hier.

Bedankt! :D
 
Het lukt me niet om deze code uit te breiden zodat het ook werkt voor A9 en hoger (blad1) ook als ik het kenteken aanpas veranderd deze niet automatisch in blad2

weet iemand hoe de code correct uitgebreid kan worden?

Zodat je dus alle kentekens die tussen 365 en 358 dagen zitten automatisch in blad 2 te zien krijgt. En dat ze ook automatisch weer weggaan als je de laatste apk datum veranderd.

vrgr
 
De macro loopt elke keer als je naar blad 2 switched en ververst dan de inhoud. Ik heb het voorbeeldbestandje ook even getest en het werkt bij mij prima met 4-30 regels en veranderen van kenteken wordt ook goed meegenomen bij mij.

Ik begrijp niet helemaal goed wat er niet werkt. Het enige wat je moet doen om blad2 te updaten is even blad1 aanklikken en vervolgens weer blad2 en dan is blad2 weer up to date
 
Heb het voorbeeldbestandje nogmaals gedownload. Toch werkt het niet. Als ik een kenteken verander in blad1 blijft blad2 hetzelfde. Ook de datum veranderen heeft geen effect. Zelfs als ik zeg dat er vandaag apk gekeurd is (tellertje op 0) dan blijft dat kenteken staan op blad2. Dat is nadat k blad2 heb ververst... heel raar dat het bij jou wel werkt :shocked:
 
Weet je zeker dat je niet bijvoorbeeld in "design mode" draait? In design mode triggered de macro namelijk niet. Mogelijk heb je misschien ook "macro disabled" gebruikt ergens? Beide kunnen verklaren waarom het niet goed lijkt te werken.
 
Idd! Dat was het probleem. sorry voor noobheid. Kga verder puzzelen
 
Ik loop nu vast met het gebruiken van de code in het officiele bestand.

Code:
Private Sub Worksheet_Activate()
[a3:b65000].ClearContents
    With Sheets("Overzicht Onderhoud")
    For Each cl In .Range("G6:G" & .Cells(Rows.Count, 1).End(xlUp).Row)
        [B]If cl.Value >= -365 And cl.Value <= -358 Then[/B]
            With [Onderhoudslijst!A65536].End(xlUp)
                .Offset(1) = Sheets("Overzicht Onderhoud").Cells(cl.Row, 1).Value
                .Offset(1, 1) = "JA"
            End With
        End If
    Next
    End With
End Sub


Bij de dikgedrukte regel krijg ik de foutmelding

Fout 13 Typen komen niet met elkaar overeen.

Enig idee wat er mis gaat?
 
Laatst bewerkt door een moderator:
2 mogelijkheden:

je defineert CL ergens als een type waar geen variable in past (afhankelijk hoe je de code hebt aangepast; mogelijk niet van toepassing)

OF

Er is een aantal cellen in de kolom G op blad "overzicht onderhoud", waar geen getal, maar tekst in staat. (of de inhoud van de cel gedefinieerd als tekst). De code verwacht geen tekst te vinden op G6 en lager. Mocht je eventueel wat regels boven hebben toegevoegd moet je de code aanpassen aan de eerste cell waar alleen data in staat.
 
Laatst bewerkt:
Het was het laatste. Sommige auto'sw waren nieuw die kregen dus #waarde in de cel. is opgelost.

Nu komt het allerlaatste obstakel.

Nu heb ik

KENTEKEN APK
A JA
dit is goed.

Maar er zijn meerdere onderhoudsdingen zoals CFK of wellicht een verlopen eurovignet.

als ik deze code gebruik

Code:
Private Sub Worksheet_Activate()
[a3:b65000].ClearContents
    With Sheets("Overzicht Onderhoud")
    For Each cl In .Range("G6:G" & .Cells(Rows.Count, 1).End(xlUp).Row)
        If cl.Value >= -365 And cl.Value <= -358 Then
            With [Onderhoudslijst!A65536].End(xlUp)
                .Offset(1) = Sheets("Overzicht Onderhoud").Cells(cl.Row, 1).Value
                .Offset(1, 1) = "JA"
            End With
        End If
    Next
    End With
    With Sheets("Overzicht Onderhoud")
    For Each cl In .Range("H6:H" & .Cells(Rows.Count, 1).End(xlUp).Row)
        If cl.Value >= -365 Then
            With [Onderhoudslijst!A65536].End(xlUp)
                .Offset(1) = Sheets("Overzicht Onderhoud").Cells(cl.Row, 1).Value
                .Offset(1, 2) = "JA"
            End With
        End If
    Next
    End With
End Sub

Krijg ik logischerwijs:

KENTEKEN APK CFK
A JA
B JA
A JA
ik zie dat mn opmaak niet werkt hij haalt de spaces weg. De eerste 2 JA's staan onder apk de 3e JA onder cfk
Dit is onhandig. Het moet worden

KENTEKEN APK CFK
A JA JA
B JA

Hoe doe ik dit? Moet ik dan voor iedere situatie een aparte check maken? als in als apk waarde dit en cfk waarde dit en eurovignet dit dan is het JA JA JA zo niet dan JA NEE JA

of kan ik gewoon een check maken die controleert of dezelfde waarde (kenteken) al bestaat?

halp!

bvd :)
 
Laatst bewerkt door een moderator:
Post eens een voorbeeldbestandje waarin deze situatie zich voordoet, want op deze manier wordt het toch maar raden.
 
Wat je volgens mij wil doen is de testen parallel uitvoeren en niet sequentieel. Een voorbeeldje is inderdaad handig
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan