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

Variabel bereik zonder begin of einde

Status
Niet open voor verdere reacties.

Rusty1979

Gebruiker
Lid geworden
8 jul 2009
Berichten
72
Bekijk bijlage voorbeeld.xls

In de bijlage heb ik een heel simpel voorbeeld gemaakt van een aantal artikelen met hun afzet erachter.
Wat ik wil doen is het bereik selecteren tussen de beide woorden EINDE.

Zowel op maandag als dinsdag kunnen artikelen ingevoegd worden, dus het bereik tussen EINDE en EINDE is altijd variabel.
Zowel het begin als het einde van het bereik kan anders zijn.

Hoe selecteer ik dit bereik met RANGE(.......) ?
 
Wat zou je ermee willen bereiken? Wil je weten hoeveel afzet je hebt gehad per dag?
Dan zou ik het oplossen met een SOM.ALS formule oplossen (zie bijlage)
 

Bijlagen

variabele reange

Bedankt voor je reactie en hulpvaardigheid, maar de vraag is hoe je een variabele range op kan geven,
niet of het op een andere manier op te lossen is, want dat is voor mij niet aan de orde.
 
Normaliter wordt het verwachte resultaat weergegeven/berekend (bijv. met =SOM, =ALS, =INDEX, etc.) en in deze berekening wordt dan de formule =VERSCHUIVING meegenomen waardoor het dus variabel wordt.
Voorbeeld:
Code:
=ALS($A$3=0;hoogte;[B]VERSCHUIVING[/B]($C$3;0;0;AANTAL.ALS($C$3:$C$41;">0");1))

Vandaar mijn vraag wat je wilt bereiken hiermee...
Het voorbeeldje was ook maar een gok wat ik dacht dat je wilde bereiken...
 
je voorbeeld is wel wat karig.. er zijn meerdere manieren om dit op te lossen mede afhankelijk van hoe de data in die lijst komt en wat je er daarna mee doet.. en hoe vaak einde voorkomt in je bestand kun je iets meer achtergrond geven wat je wilt doen.

met range(A1:A500).Find("EINDE") en range(A1:A500).findnext("EINDE") kun je waarschijnlijk wel de rijnummers van de verschillende einden vinden maar er zijn nog meerdere oplossingsrichtingen te bedenken die beter kunnen zijn afhankelijk van wat je met de selectie doet en hoe je tabel er verder uit ziet.. komt maandag meerdere keren voor? zijn er nog meer kolommen?
 
Oke, ik snap dat ik niet duidelijk genoeg ben geweest met mijn voorbeeld :d

Stel ik wil in het voorbeeldbestandje de waarden in kolom B wissen.
Dat zou ik in dit voorbeeld als volgt doen:

Code:
Range("B3").Select
Do
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = "EINDE"
Einde = ActiveCell.Row
Range("B3:B" & Einde - 1).Select
Selection.ClearContents

Maar nu zijn alleen de gegevens bij de Maandag gewist.
Hoe doe ik nu hetzelfde bij Dinsdag?
Die begint in dit voorbeeld bij B19, maar dat zou een volgende keer ook een andere cel kunnen zijn, dus het begin van het tweede stuk moet variabel zijn.
Er staat wel EINDE onder, dus het einde van het tweede stuk is wel makkelijk te vinden.
 
Maak een validatielijst in C1 met alle dagen van de week in.
Selecteer hier dan een dag en gebruik volgende macro
Code:
Sub tst()
    sAddress = Columns(1).Find([C1], , xlValues, xlWhole).Offset(1, 1).Address
    Range(Range(sAddress), Range(Range(sAddress).End(xlDown).Address)).ClearContents
End Sub
Dan hoef je niet tussen elke weekdag EINDE te schrijven, laat gewoon 1 regel open.
 
Laatst bewerkt:
Maak een validatielijst in C1 met alle dagen van de week in.
Selecteer hier dan een dag en gebruik volgende macro
Code:
Sub tst()
    sAddress = Columns(1).Find([C1], , xlValues, xlWhole).Offset(1, 1).Address
    Range(Range(sAddress), Range(Range(sAddress).End(xlDown).Address)).ClearContents
End Sub
Dan hoef je niet tussen elke weekdag EINDE te schrijven, laat gewoon 1 regel open.

Allereerst bedankt voor je reactie.
Ik waardeer het echt dat je daar tijd voor hebt genomen.

Maar ik hoef eigenlijk geen suggesties te hebben over hoe ik mijn bestand zou moeten aanpassen,
omdat dit slechts een voorbeeldbestandje is.

Het enige wat ik wil weten is of het mogelijk is om een variabel bereik in een macro vast te leggen,
ik hoef geen oplossingen te horen over hoe ik het beter anders kan doen, want (niet onaardig bedoeld) dat beantwoordt de vraag niet.

Je moet het zien als de vraag:
Hoe kom ik het snelste met de trein van Amersfoort naar Amersfoort Schothorst.
Als je dan vertelt dat ik beter met de bus kan gaan, is dat geen antwoord op mijn vraag :)
 
Laatst bewerkt:
Suc6 met je bestandje, veel meer woorden ga ik hier niet meer aan verspillen.
 
bedankt voor je tijd in elk geval

Ik snap dat de meesten hier graag een andere oplossing zoeken dan de mijne.
Maar daar zit voor mij de uitdaging niet in, ik wil het oplossen met een variabele range en niet op een andere manier, anders had ik geen draadje gestart :)
 
Het is immer mogelijk voor een onhandige uitgangspositie een VBA-code te bedenken.
Het is vaak handiger van een onhandige uitgangspositie een slim startpunt te maken.
Ik durf te wedden dat jouw 'voorbeeld'bestand niet eens een flauwe analogie is van het bestand waarvoor je vraag bedoeld is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan