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

Wederom tekst2datum

Status
Niet open voor verdere reacties.
Vraag is eigenlijk gericht aan HSV en VenA die vaak gereageerd.
Jammer... ik had je best willen vertellen om 'ns alléén het aanmaken van de codes in kolom A (uit de procedure van V&A) te draaien. Dan had ik je verteld - als ik zou mogen helpen - dat de partnercode in kolom B wordt aangemaakt dmv een celverwijzing ipv een harde waarde. En wellicht zou ik je dan vertellen dat die celverwijzing na het sorteren uiteraard naar een foute cel verwijst en dat je er beter voor kan zorgen dat je harde waardes aanmaakt ipv celverwijzingen....

Maar ja, toch maar ff wachten op een reactie van HSV of V&A dan maar... ;)
 
Zet in het voorbeeldje eens de verwachte uitkomst.

Dit verzoek staat er natuurlijk niet voor niets. Om elke keer code te laten lopen die toch niet werkt heeft natuurlijk weinig nut. Zoals te zien in de verschillende codes is er van alles mogelijke maar wat je nu wilt bereiken??

En dat je Ginger en natuurlijk andere helpers uitsluit is niet zo'n handige keuze.
 
Laatst bewerkt:
heb h'm. In kolom stonden verwijzingen naar andere cellen (bijv. =B13)
 
Als je die verwijzingen eruit wilt, doe je
Code:
usedrange = usedrange.value
of id.

Ik heb het bestandje niet bekeken omdat ik moest wachten met reageren.
 
heren, over uitsluiten van Ginger! Dat is absoluut niet mijn bedoeling. Ik weet dat ik er een rommeltje van heb gemaakt en ik wil het Ginger niet aandoen om alles weer terug te moeten lezen. Met de wetenschap dat jullie online waren. Geen sprake van uitsluiten. En ik zit natuurlijk te wachten op een reactie van jullie (na mij reactie van 20:45 of zo) maar zie dat het draadje op pag 2 verder gaat. Weer een miskleun van mijn kant. En daar staat ook de reactie van Ginger met de oplossing. Had ik dus niet gezien.
En dit heb ik er nu van gebrouwen; lach me aub niet uit. Knop volgorde: links naar rechts
Alleen moet wil ik nog de yyyymmdd van [A] kopieren naar D in dd-mm-yyyy.
Sorry voor de chaos (vooral aan Ginger)
Bekijk bijlage Sorteer_8.xlsm
 
Heren,
Code op #9 werkt niet goed voor sommige datums.
In voorbeeld zijn de namen aan het eind genummerd van 1 t/m 16. In deze volgorde moeten ze verschijnen na sortering op geb. datum.
Draai in voorbeeld de knoppen van links naar rechts: sorteer, sorteer Geb datum en Juiste Datumformat. Dan zie je dat de datum van naam 15 en 16 in [A ]het verkeerde format krijgt. Ik wil ookgraag de sortering de "andere kant" op.

Met de knop Oorspronkelijke data wordt de tabel hersteld door van het Bck_Blad1 te kopieren.
Herhaal je dan de procedure dan loopt de zaak al in de soep bij de eerste code. Dan is de enige remedie om excel af te sluiten en opnieuw te openen.

Bekijk bijlage Sorteer_10.xlsm
 
Jansm, nou vooruit.... Als ik dan mee mag spelen, heb ik hier de procedures voor de knoppen "Sorteer NR" en "Sorteer Geb Datum"... (dus in de plaats van alle procedures die je nu hebt staan...)
Code:
Sub SorteerLidNummer_Leo()
' geef elk record in een groep het juiste lidnummer, creëer sorteerdatum en sorteer op lidnummer
Dim Bereik As Range

    Set Bereik = Sheets(1).Cells(3, 2).CurrentRegion.Resize(Cells(Rows.Count, 2).End(xlUp).Row - 1)
    
    With Bereik.Offset(2).Resize(Bereik.Rows.Count - 2)
        With .Columns(1)
            With .SpecialCells(4)
                .FormulaR1C1 = "=R[-1]C"
            End With
            .Value = .Value
        End With
        .RemoveDuplicates Array(1, 2, 3, 4, 5)
        .Sort Bereik.Cells(1)
        .Columns(2).SpecialCells(4).Offset(, -1).ClearContents
        For Each c In .Offset(, -1).Columns(4).SpecialCells(2)
            With c
                .Offset(, -3) = CLng(Year(.Value) & Format(Month(.Value), "00") & Format(Day(.Value), "00"))
            End With
        Next c
    End With
    
End Sub

Sub SorteerGebDatum_Leo()
' sorteer bovenstaande tabel op sorteerdatum
Dim Bereik As Range

    Set Bereik = Sheets(1).Cells(3, 1).CurrentRegion.Resize(Cells(Rows.Count, 2).End(xlUp).Row - 2)
    
    With Bereik.Offset(2).Resize(Bereik.Rows.Count - 2)
        .Sort .Cells(1)
    End With

End Sub
Nadeel van je opzet is dat je altijd éérst de procedure "SorteerLidNummer" moet runnen voordat je op de geboortedatum kan sorteren. Maar goed... Ook dat is uiteraard nog wel te ondervangen. ;)
 
hij doet het Ginger! Goed dat je je niet uit het veld laat slaan door mijn zo onbedoelde opmerking.
Als je zin/tijd hebt laat maar zien welke opties je nog hebt. Ik probeer zo veel mogelijk van jullie op te steken, al gaat dat niet erg voortvarend voor een leek als ik.
 
fascinerend om te zien dat er vele oplossingen mogelijk zijn om (bijna) hetzelfde resultaat te bereiken. Ik probeer dat een beetje te volgen door de code in stappen (F5) te laten lopen. Maar dan de stap om het zelf te doen......!!!?
 
Hartstikke mooi dat Leo ook mee mag doen. :thumb:

Maar zoals ik al schreef op 24 oktober 2016, 20:52 uur gaan de getrouwde koppels door elkaar staan door het sorteren op geboortejaar.
Neem als voorbeeld koppels 10, 5 en 15, die komen op die plek na sortering.

Volgens mij moet je het geboortejaar van iedere hoofd van de familie in kolom A verkrijgen, dan pas kun je goed sorteren en blijven de koppels bij elkaar.

Ik heb me daar niet in verdiept (misschien ben jij zo ook wel tevreden en is dan alle werk voor niets).
 
Hallo Harry,
ben zeer geinteresseerd in jouw voorstel: sorteren op eerst geborene van een koppel.
Daarnaast ook nog in de conversie van sorteer-gebdatum-kolom [A] (jjjjmmdd) van Ginger naar dd-mm-jjjj. Zie #28
 
Deze sorteert op geboortedatum en de 'paartjes' worden bij elkaar gehouden.

Code:
Sub VenA()
Application.ScreenUpdating = False
Dim ar, j As Long
With Sheets("Blad1").Cells(5, 1).Resize(Cells(Rows.Count, 3).End(xlUp).Row - 3, 6)
 ar = .Value
 For j = 1 To UBound(ar) - 1
  If ar(j, 2) <> "" And ar(j, 4) <> "" Then
      ar(j, 1) = Left(Split(ar(j, 4), "-")(2), 4) & Split(ar(j, 4), "-")(1) & Split(ar(j, 4), "-")(0) & "_" & Left(Split(ar(j, 4), "-")(2), 4) & Split(ar(j, 4), "-")(1) & Split(ar(j, 4), "-")(0)
    Else
      If ar(j, 4) = "" Then
          ar(j, 1) = Split(ar(j - 1, 1), "_")(0) & "_"
        Else
          If ar(j, 2) = "" Then ar(j, 1) = Split(ar(j - 1, 1), "_")(0) & "_" & Left(Split(ar(j, 4), "-")(2), 4) & Split(ar(j, 4), "-")(1) & Split(ar(j, 4), "-")(0)
      End If
      If ar(j, 2) = "" Then ar(j, 2) = ar(j - 1, 2)
  End If
 Next j
 .Value = ar
 .RemoveDuplicates
 .Sort .Cells(1), 2
 .Columns(1).ClearContents
 .Columns(3).SpecialCells(4).Offset(, -1).ClearContents
End With
End Sub
 
Ik heb in je andere vraag begrepen dat de code van @VenA niet goed sorteert.
Misschien klopt het zo voor je.
Het wordt op hoofdpersoon gesorteerd.
 

Bijlagen

O jee, o jee, o jee.... De oorzaak van de problemen is het ontbreken van structuur in de velden. In 1 van de Posts gaf HSV het al aan dat het verstandig is om de witregel óók het ID mee te geven. Dat lijkt met alvast een heel goed idee. Zo kan je in elk geval een veld ID hebben waarin je de hele groep bij elkaar houdt. Hetzelfde geldt dus voor die leeftijd. Maak een veld aan waarin je bij elk record van die groep die leeftijd registreert. In dat geval kan je alle kanten uit sorteren en heb je ook géén herstel meer nodig na al je sorteerstapjes.
 
@ HSV: nu vanaf dit draadje HSV. Deze code werkt perfect!!
@ Ginger: een antwoord van dezelfde strekking als op het andere draadje. Ik heb te maken met de data die mij wordt aangeleverd. Nu is de oorspronkelijke informatie afkomstig van een website en daar vandaan gekopieerd. De ID's die eigenlijk in de lege cellen zou moeten staan om de bewerkingen uit te voeren zou ik dan handmatig moeten invullen. Als ik zelf een tabel zou hebben gemaken dan zou ik idd rekening gehouden hebben met eventuele bewerkingen die je wilt uitvoeren op een tabel.
En vergeet niet: de gegevens die ik hier laat zien is een fractie van de tabel waar het eigenlijk om gaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan