Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Pagina 1 van 2 1 2 LaatsteLaatste
Weergeven resultaten 1 tot 20 van 21

Onderwerp: laatst ingevulde cel in een range zoeken met VBA

  1. #1
    Vraag is opgelost

    laatst ingevulde cel in een range zoeken met VBA

    Beste,

    ik zoek naar een mogelijkheid om in een range de laatst ingevulde cell te vinden. ik heb dit als volgt geprobeerd:

    Sheets("sheet1").Select
    startkol = [A2]
    Set wbshtSelect = Sheets("sheet1")
    With wbshtSelect.Range(Cells(26, startkol -13), Cells(31, startkol - 13)).CurrentRegion
    LR_wbSelectNew = .Rows(.Rows.Count).Row
    End With

    maar hiermee kom ik telkens op dezelfde cel uit en niet op de laatste met een waarde er in.

    kan ik dit op een andere manier oplossen?

  2. #2
    Senior Member
    Geregistreerd
    6 april 2020
    Locatie
    Haaltert (België)
    Bedoel je nu laatst ingevuld in de tijd ? of de laatste cel van een verticale kolom ?

    Laatste cel van een kolom kiezen is gewoon : Selection.End(xlDown).Select
    Laatst aangepast door DigiCafee : 18 oktober 2020 om 13:18

  3. #3
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Wat je wilt is inderdaad erg onduidelijk.
    Dit haalt de laatst ingevulde cel van een opgegeven range op:
    Code:
    c = Split(Sheets("Sheet1").Range("A1:X25").SpecialCells(2).Address, ",")
    LaatsteCel = Replace(c(UBound(c)), "$", "")
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  4. #4
    Het is inderdaad de laatste ingevulde cel in een range die ik zoek.Het probleem is echter dat de range niet vast bepaald is, maar wijzigt in functie van variabele 'startkol'.
    Mag ik in regel 1 de volgende wijziging aanbrengen : c = Split(Sheets("Sheet1").Range(cells(26, startkol-13),cells(31,startkol-13)).SpecialCells(2).Address, ",")
    Ik heb dat gedaan maar ik krijg op regel 2 een foutmelding nl dat er een matrix gezocht wordt.

  5. #5
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Dan klopt jouw wijze voor het bepalen van de Range dus niet.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  6. #6
    Ik heb nu met de oorspronkelijke code van hierboven opnieuw getest en daar krijg ik ook de melding op de er een matrix verwacht wordt.
    Wat kan in nog doen?

  7. #7
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Waarom plaats je geen voorbeeldbestand?
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  8. #8
    ik kan het oorspronkelijke bestand niet delen vermits er vertrouwelijke klantengegevens in staan. ik heb hetgene er uit gehaald waar het over gaat. zie bijlage: hierin zou in de gedefinieerde range de rijnummer waar "C" staat moeten weergegeven worden.Maar dat lukt dus niet.
    Bijgevoegde bestanden Bijgevoegde bestanden

  9. #9
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    In dat geval deze:
    Code:
    c = Split(Sheets("Blad1").Range("A1:X25").SpecialCells(2).Address, ":")
    LaatsteCel = Replace(c(UBound(c)), "$", "")
    Je voorbeeld is wel heel erg simplistisch.
    Dat kan in je originele document wel weer anders zijn.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  10. #10
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Code:
    x = Application.Max(5, Cells(Rows.Count, [a1] + 2).End(xlUp).Row)
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  11. #11
    aan edmoor: de code die je gaf werkt in mijn originele bestand maar selecteert uiteindelijk een range. Ik moet echter de cell juist onder die range vinden; de variabele 'taatstecel' bevat die range maar hoe kan ik daar de laagste cel uithalen?
    vb de range is F5:F7 dus ik zou graag cell F8 selecteren?

  12. #12
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Zo?
    Code:
    c = Split(Sheets("Blad1").Range("A1:X25").SpecialCells(2).Address, ":")
    Range(c(UBound(c))).Offset(1).Activate
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  13. #13
    de code doet nog steeds niet echt wat het moet doen : zie bijlage: zou in de range F5 F10 de onderste cel moeten zoeken en juist daaronder '5' zetten. als je de macro meerdere keren na elkaar laat lopen zie je dat de '5' telkens op een andere plaats gezet wordt.
    Bijgevoegde bestanden Bijgevoegde bestanden

  14. #14
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Waar haal je nu ineens die '5' vandaan?
    De code in #12 doet in je voorbeeld document van #8 precies wat je in #11 vraagt.
    Wees nou eens duidelijk in wat je precies wilt.
    Zo blijven we bezig en hebben we er beide niks aan.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  15. #15
    ik heb die '5' gewoon gebruikt om te laten zien in welke cel die gezet wordt.
    wat ik wil is: ongeacht welke cellen in range F5-F10 ook niet-blank zijn, de volgende cel waarin iets weggeschreven wordt (in dit voorbeeld '5') moet onder de onderste niet-blanke cel zijn in het bereik F5-F10.
    hopelijk is hiermee verduidelijkt wat is precies bedoel.

  16. #16
    Senior Member
    Geregistreerd
    6 april 2020
    Locatie
    Haaltert (België)
    dan kan je gewoon terug naar post #2. selecteren van die cel, eentje lager gaan staan en wegschrijven.

  17. #17
    Giga Senior cow18's avatar
    Geregistreerd
    24 mei 2008
    Locatie
    Alveringem, België
    er staat een klein maar niet onbelangrijk verschil tussen de code van Edmoor in #12 en de code gebruikt door TS in #13.
    In de ene wordt er gesplit op "," en in de andere op ":'.
    1 en ander is niet zonder belang naargelang van de grootte (1 of meerdere cellen) van de verschillende areas.
    Even apart van die UsedRange, zou ik dit voorstellen om de laatste cel te vinden
    Code:
    c = Split(Replace(Sheets("Blad1").UsedRange.SpecialCells(2).Address, ",", ":"), ":")
    Gaat het over de laatste cel van een bepaalde kolom, dan is het natuurlijk veel eenvoudiger.
    Laatst aangepast door cow18 : 19 oktober 2020 om 09:42

  18. #18
    het gaat wel degelijk over een bepaalde range en niet een kolom. Moet ik dan UsedRange apart declareren?

  19. #19
    de code werkt perfect nu. Hier kan ik mee verder. Heel hartelijk dank

  20. #20
    Senior Member
    Geregistreerd
    22 september 2012
    Hou er wel rekening mee dat de Usedrange oplossing niet perfect is. Het hangt van je toepasssing af of je die kunt gebruiken.
    Vroeger werd je vraag heel vaak gesteld en werd er veel over geschreven. Zie bijvoorbeeld https://www.rondebruin.nl/win/s9/win005.htm
    Tegenwoordig (vanaf Excel 2007) gebruikt men steeds vaker de Excel tabel (listobject), die maakt dit soort kwesties veel eenvoudiger. Maar het hangt van jouw toepassing af of je die tabellen kunt benutten.
    Groet,
    Frans
    pixcels.nl

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren