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

Gegevens uit een gefilterd tabel halen

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.070
Met volgende regel kun je een bepaalde waarde uit de tabel halen.
Hoe kan ik bepaalde waarde uit de regels halen na filtering. zonder dit eerst te exporteren naar blad export
Code:
MsgBox ActiveSheet.ListObjects("myTable").DataBodyRange(2, 4).Value
 

Bijlagen

Waar filter je op en welke waarden wil je ophalen en wat wil je met die waarden doen?
 
filter op kolom met de code of deze leeg zijn
de waarde moeten op een ander blad komen
Als voorbeeld maakt het niet uit welke waarde er uithaalt bv de datum en wat gedaan
 
Bv.
Code:
MsgBox Blad2.ListObjects(1).AutoFilter.Range.Offset(1).SpecialCells(12).Areas(3).Cells(2, 1).Value
 
Ok bedoel wel op het blad waar de tabel staat.
Waarom maak je gebruik van blad2 in de msgbox?
En niet enkel 1 cel maar alle waarvan de code leeg is
 
Wees aub duidelijker.
In je openingsvraag staat 'bepaalde waarde uit regels halen', en nu 'alle waarvan de code leeg is'.
 
Zie Functie PDF2, de data voor de PDF worden rechtstreeks overgenomen uit de gefilterde tabel. Blad Export is daarbij niet meer nodig.
 

Bijlagen

Als je eerst een andere maand selecteert doet hij het wel.
Maar als je de regel "Maand = itemID" toevoegt aan Sub DDmaand_getSelectedItemID doet hij het ook zonder eerst een andere maand te selecteren:
Code:
    itemID = Month(Date) - 1
    Maand = itemID
 
had dit ook al ondervonden was er net naar aan het kijken wat er fout gaat
 
maar wat doet areas in onderstaande regel
Code:
For Each rng In Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).areas
 
Zet daar eens
Code:
Debug.Print Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).Address
Debug.Print rng.Address
onder, dan snap je het vast wel.
 
waar vind ik meer informatie hoe tabel bewerken of uitlezen via vba
want ik werk niet vaak met excel en zeker programmeer ik niet maandelijks
Maar wil bijleren
 
Laatst bewerkt:
De eerste regel geeft het adres weer
Wat ben ik daarmee?
2de regel gaat fout object variable of blockvariable with is niet ingesteld
De laatste code heb ik in pdf2 geplakt onder de dim regels

Code:
Debug.Print Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).Address
Debug.Print rng.Address
 
Je had die twee regels direct onder "For Each rng In Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).areas" moeten plaatsen en dan goed naar de adressen kijken.
En Google, Bing en DuckDuckgo zijn heel geduldig.
 
Net zo als AHulpje.
 
@AHulpje

Code:
Debug.Print Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).Address
For Each rng In Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).areas
Debug.Print Sheets("Extra vergoeding").ListObjects("Tabel").DataBodyRange.SpecialCells(xlVisible).Address
Debug.Print rng.Address
Zowel de eerste debug voor of na de for geven In beide gevallen de grote van de gefilterde tabel weer
in mijn geval $A$53:$J$54
En de 2de debug onder de for ook de grote van de gefilterde tabel.

Snap niet wat je daarmee wilt bewijzen of mij uitleggen?
 
Weet jij waar het "Venster Direct" zich bevindt in de VB-Editor?
 
Zie scherm afdruk
de 3 range adressen in volgorde van het doorlopen van het programma tot aan de gele regel
2023-11-13 18_45_48-Greenshot.webp
 
Snap niet wat je daarmee wilt bewijzen of mij uitleggen?
Ik probeerde daarmee antwoord te geven op je vraag in bericht #10, maar dat moet ik kennelijk iets beter uitleggen.
Areas is de verzameling van ranges nadat het filter op de tabel is toegepast, dat kun je zien door van iedere range het adres op te vragen.
Zo'n range in een area is de verzameling van aaneengesloten rijen.
Als je filtert op Juli 2023 dan krijg je in het venster direct de volgende adressen te zien:
$A$34:$J$34,$A$37:$J$38
$A$34:$J$34
$A$34:$J$34,$A$37:$J$38
$A$37:$J$38
Het eerste adres is van de verzameling ranges (areas) van de gefilterde tabel, dat zijn er dus twee, en die worden apart van elkaar verwerkt zoals je aan het tweede en vierde adres kunt zien.
De range $A$34:$J$34 bevat dus één rij (rij 34), de range $A$37:$J$38 bevat twee rijen, 37 en 38.
Ik hoop dat het zo een beetje duidelijk is.
 
Het is juist daarom dat ik al eerder vroeg waar halen jullie al die kennis.
Want vind misschien niet altijd de juiste sites.
Maar ik maak veel kleine bestandjes met een bv en uitleg als ik denk dat ik dat ooit nog eens kan nodig hebben. Maak een soort bibliotheek. Is misschien een beetje raar.
Maar ik werk niet heel vaak met excel zeker al niet op het werk.
Ken al wat van de formules en zo. Nooit lessen of avondschool excel gevolgd. Omdat ze daar veel zaken in geven die ik niet echt nodig denk te hebben zo als pilot tafels.
Maar denk et aanmijn vorig project volledig te her werken. Heeft maanden gebeurt. Zit massa code achter.
Dus ik zou graag eens weten hoe ullie al die kennis vergaard hebben.

En bovenstaande moet ik nog eens bekijken un excel.
Zoek wel veel op internet maar kom niet altijd uit op de juiste sites.
Hebben jullie soms goede sites?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan