Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: datums vergelijken  (gelezen 5644 keer)

0 leden en 1 gast bekijken dit topic.

Offline cow18

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 333
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #15 Gepost op: 07 januari 2021, 10:46:40 »
omdat alles verwijderd is kon die numberformat niet meer uitgevoerd worden.
Nu kan je die voorwaarde onderzoeken of lompweg de fout negeren. Dat laatste is het simpelst.
Dus voeg minstens de rode regel er voor toe, die er na mag ook
Citaat
On Error resume next
 .NumberFormat = "dd/mm/yyyy"
On error goto 0

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: datums vergelijken
« Reactie #16 Gepost op: 07 januari 2021, 12:40:58 »
@ Frans,

"De code doet exact wat gevraagd werd" klinkt voor mij net iets anders dan "Dat blad2 leeg gemaakt wordt is geen probleem, want..."
Die laatste heeft volgens mij meer iets van "het is niet helemaal wat ik wou maar ben bereid het door de vingers te zien".
Mijn vrees blijft bestaan dat eea in je echte bestand nog tot verrassingen kan leiden. Aan jou de keuze of je daar een voorbeeld van post.

@ cow18,
Het is mij nog steeds een raadsel waarom je 2 NumberFormat-instructies gebruikt, daar waar m.i. 0 volstaat  0:-)
Die hebben namelijk geen enkele impact op wat je ertussen doet (waarden <> formats).
En dan moeten beide On Error's niet meer ter sprake komen.
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline cow18

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 333
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #17 Gepost op: 07 januari 2021, 13:42:05 »
@pitufo,
nu je het vraagt, ik ga dat vanavond eens uitproberen, maar het staat ergens in mijn geheugen dat filteren in een bepaalde datumopmaak (soms) niet wil lukken, dus moet je die eerst numeriek zetten, je werk doen en dan het formaat naar de oorspronkelijke opmaak herstellen.
Dus vanavond uitgebreider antwoord met eventueel excuses als het toch zo lukt  ???

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: datums vergelijken
« Reactie #18 Gepost op: 07 januari 2021, 13:54:04 »
Hoezo excuses ?  :D

Citaat
ergens in mijn geheugen dat filteren in een bepaalde datumopmaak (soms) niet wil lukken
'ergens' en 'soms', dat klinkt voor mij vaag genoeg om het ('t zal ook ten vroegste vanavond zijn) ook eens verder te doorsnuffelen  ;)

Trouwens, als je gelijk hebt, dan heb ik meer reden om mij voor mijn boude uitspraak te excuseren...
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: datums vergelijken
« Reactie #19 Gepost op: 07 januari 2021, 17:52:32 »
@ cow18,

Ik denk dat ik eruit ben... als dat klopt hebben we beiden een stukje gelijk en een stukje ongelijk.

Als ik 'gewoon' datum uit Blad1 haal (datum = Sheets("blad1").Range("B1")) en in variabele 'datum' stop (die dan het filtercriterium wordt) dan blijft die bv. 10/12/2020. En dan gaat het fout.

Als ik er een getal van maak zoals jij deed (datum = CLng(Sheets("blad1").Range("B1").Value)) dan werkt het altijd, ongeacht de opmaak op Blad2, wat ons terugbrengt bij waarden<>formaat.
Het kan ook volstaan door met 1 te vermenigvuldigen.
M.a.w. (het wijzigen van) de opmaak heeft geen enkele invloed, maar het filtercriterium moet een getal zijn.

Nu maar hopen dat jij geen andere vaststellingen doet...  0:-)

Ik zag ook dat de 'kop' in B1 niet nodig is, dus als we dan verder veronderstellen dat er geen massa rijen zijn, ofwel dat ze op voorhand gesorteerd zijn, dan kan de macro herleid worden tot
Sub nieuwemacro()
   
With Blad2
    .AutoFilterMode = False
    .Rows(1).Insert
    With .Columns("B")
        .AutoFilter 1, "<>" & Blad1.Range("B1") * 1
        .SpecialCells(xlVisible).EntireRow.Delete
    End With
End With

End Sub
« Laatst bewerkt op: 07 januari 2021, 18:13:57 door pitufo »
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 57
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #20 Gepost op: 08 januari 2021, 00:09:17 »
@Pitufo,

Sorry.

Ik ben inderdaad niet duidelijk genoeg geweest met betreft het leeg maken van blad2.
Na het selecteren van de juiste datum mag blad2 natuurlijk niet leeggemaakt worden.
En wel om de simpele reden, hier staan dan de juiste gegevens die eerste ook naar blad1 overgemaakt moeten worden.
Ik had erbij moeten schrijven dat een vervolg macro die gegevens eerst overzet en daarna wordt pas blad2 leeg gemaakt.
 Hopelijk is het nu wel duidelijk.

Frans

Offline cow18

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 333
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #21 Gepost op: 08 januari 2021, 02:04:20 »
@putifo,
ik heb je laatste vaststellingen gelezen en kan me er in vinden, zonder ze zelf gecheckt te hebben.
Elk de helft van de waarheid, dat is een eerlijke verdeling.
Op die manier moet het lompe "On Error Resume Next" niet gebruikt worden.
 
Citaat
Nu maar hopen dat jij geen andere vaststellingen doet...  0:-)
Ik ga dat als een uitnodiging beschouwen maar eerder 2 details, dus
- ik weet niet waarom velen zo graag de codename van een werkblad gebruikt, ik behoor daar zeker niet toe. Maar ja over kleuren en smaken mag je niet discussieren.
- een autofilter op de ganse kolom B, +1.000.000 rijen, overkill ? Anders de laatste rij bepalen bv. via SpecialCells(xlCellTypeLastCell).Row of aanverwanten ? Ik zou niet weten of het in "tijd" (millisecondes) iets zou uitmaken.
 
@Frans,
ik weet niet wat er in het "vervolg" zit, maar als ik het goed begrijp zou je "onze" macro eigenlijk omgekeerd moeten gebruiken, dus filteren op de datum zelf en die gefilterde zaken (met een Offset van 1) dan door kopiëren naar je andere blad alvorens de boel op te ruimen. Dat werkt sneller en eenvoudiger.
« Laatst bewerkt op: 08 januari 2021, 02:25:13 door cow18 »

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: datums vergelijken
« Reactie #22 Gepost op: 08 januari 2021, 16:02:09 »
@ Frans,

Meer dan 3 keer (dit is dus de 3°) ga ik het niet vragen, maar als je de moeite had/zou willen doen om een waarheidsgetrouw voorbeeldbestandje te bezorgen, dan was/is de kans significant groter dat je binnen de kortste keren over een perfect werkende oplossing beschikt…

En nu we het toch over waarheid hebben:
@ cow18,
Hein (jawel, ik verstá een enkel woordje westvlaams)?, daar ben ik ook steeds voor te vinden…
Bijgevolg:
Citaat
Elk de helft van de waarheid, dat is een eerlijke verdeling
Ik heb er geen moeite mee om in officiële persmededelingen de waarheid fifty-fifty te verdelen, maar mijn originele stelling (“NumberFormat is overbodig”) heeft de proeven toch prima overleefd?

Over Clng had ik nog geen uitspraken gedaan; dat is inderdaad één van de mogelijkheden om naar een juiste filtering te gaan, en het is dáár dat een addertje kan schuilen.

Echt hoor, het doet er voor mij niet toe wie de laatste kennis blootlegt. Veel belangrijker is dat we die beiden vanaf nu (en hopelijk met ons vele lezers) zonder verder nadenken met ons meedragen en meteen je vermoeden uit #17 vergeten.

Voor de volledigheid:
Autofilter op ganse kolom: in héél antieke Excel-versies maakte dat allicht een verschil, maar ik zit hier ook met een allesbehalve nieuwe (2007), en geen meetbaar verschil te bespeuren (vroeger nog getest met bv. een serie countif's, dat geeft een beter beeld, en sedertdien gebruik ik meestal de ganse kolom - Excel is m.a.w. 'slimmer' geworden).
Codename: ik zou, zelfs als ik de groep beperk tot mijn collega’s waarvoor ik code heb geschreven, degenen die achteraf hun werkblad(en) hadden hernoemd, en dus op het matje moesten komen, niet te eten willen geven.

Groeten,
Pitufo
(nog één 'graptje': putifo’s bestaan niet, ook niet in het Spaans, pitufo's zijn blauwhuiden en dragen meestal een witte muts)
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 57
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #23 Gepost op: 08 januari 2021, 23:38:56 »
@Pitufo, ik heb een goed werkende macro.
Ik was alleen niet duidelijk met het leeg maken van blad2
De macro hoeft niets meer of minder te doen dan de rijen in blad2 die niet voldoen aan de datum in blad1 te verwijderen.

@Pitufo en @Cow18,
Beide macro,s van jullie, in het voorbeeld bestand, doen wat ik wilde.

@Cow18

Dat vervolg zal ik proberen in het kort uit te leggen.
Nadat alle overbodige rijen verwijderd zijn, worden NT nummers op blad 1 vergeleken met dezelfde NT nummers op blad2.
NT nummers op blad1 horen bij een vaste locatie, die zowel in de ochtend, middag of avond bezet kunnen zijn
Bij een NT nummer op blad2 kunnen in kolom A, 1,2 of 3 op een volgende nummers staan, bv 688467, 688466 en 688465
Waarbij het hoogste getal op blad1 altijd bij de ochtend behoort te komen, ook al zijn er maar 1 of 2 nummers.
Als 688467 bv. 10x in kolom A staat wil dat zeggen dat er 10 personen aanwezig zijn.
NT nummers en dagdeel hebben altijd een vaste plaats op blad1

Zo komt het dan bv. in de kolommen J en K te staan.
                                J          K
Ochtend/ 99NT11/  688467/  10
Middag /  99NT11/  688466/  8
Avond/    99NT11/  688465/  12

Zie ook mijn topic: Zoeken in Excel
Deze "vervolg" macro werkt ook goed en behoeft voor mij geen verbetering.

Frans

Offline Frans1949

  • Lid
  • *
  • Berichten: 57
  • Geslacht: Man
  • Oplossing.be
Re: datums vergelijken
« Reactie #24 Gepost op: 12 januari 2021, 22:17:51 »


@Pitufo en @Cow18, ondanks de onduidelijkheden van mijn kant,
toch bedankt voor jullie aandacht en de aangedragen mogelijkheden.
Ik zet er een slotje op.
Frans

 


www.combell.com