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

Nieuwe waarden toekennen aan een range

Status
Niet open voor verdere reacties.

EliasAmado

Gebruiker
Lid geworden
8 mrt 2005
Berichten
33
Beste Forum leden,

Ik heb een range handmatig gemaakt door een selectie te maken en vervolgens op Invoegen --> Naam --> Definieren --> Naam intikken en op Ok drukken. Deze Range heb ik de naam grafiekrange genoemd aangezien ik hiermee een grafiek wil maken.

Deze range wil ik nu d.m.v. VBA nieuwe waarden toekennen. Deze waarden worden o.a. bepaald door het aantal records die uit een dynamisch sql-query verkregen wordt.
Ik weet alleen niet hoe ik de net gemaakt range in het geheugen van de pc kan krijgen zodat ik het vervolgens kan manipuleren.

Voorbeeld:
bereik: Range(Cells(2, 1), Cells(10, 12))

moet worden: Range(Cells(2, 1), Cells(30, 12))


Kan iemand mij vertellen hoe dit moet? Of heeft iemand een betere oplossing?

Alvast dank.

Gr,
Elias:thumb:
 
Elias,

Zo kun je de Grafiekrange dynamisch maken.

Maak een dynamisch bereik
Je kunt een dynamische formule maken om een bereik te definiëren. Als je nieuwe items toevoegt groeit het bereik automatisch mee.

1. Kies Invoegen>Naam>Definiëren
2. Geef het bereik een naam bv. Grafiekrange
3. Klik op toevoegen
4. Onder "Verwijst naar:" voer je onderstaande formule in.
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);1)
In dit voorbeeld staat de lijst op Blad1 en start in A1.
De argumenten voor deze Verschuiving funktie zijn:

1. Referencie cel: Blad1!$A$1
2. Te verschuiven rijen: 0
3. Te verschuiven kolommen: 0
4. Aantal rijen: AANTALARG(Blad1!$A:$A)
5. Aantal kolommen: 1
  NB: voor een dynamisch aantal kolommen, vervang de 1 door:
            AANTALARG(Blad1!$1:$1)
6. Klik OK


Samenvatting.
Voor kolom A
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);1)
of
Voor alle kolommen
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);AANTALARG($1:$1))
 
Geplaatst door LucB
Elias,

Zo kun je de Grafiekrange dynamisch maken.

Maak een dynamisch bereik
Je kunt een dynamische formule maken om een bereik te definiëren. Als je nieuwe items toevoegt groeit het bereik automatisch mee.

1. Kies Invoegen>Naam>Definiëren
2. Geef het bereik een naam bv. Grafiekrange
3. Klik op toevoegen
4. Onder "Verwijst naar:" voer je onderstaande formule in.
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);1)
In dit voorbeeld staat de lijst op Blad1 en start in A1.
De argumenten voor deze Verschuiving funktie zijn:

1. Referencie cel: Blad1!$A$1
2. Te verschuiven rijen: 0
3. Te verschuiven kolommen: 0
4. Aantal rijen: AANTALARG(Blad1!$A:$A)
5. Aantal kolommen: 1
  NB: voor een dynamisch aantal kolommen, vervang de 1 door:
            AANTALARG(Blad1!$1:$1)
6. Klik OK


Samenvatting.
Voor kolom A
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);1)
of
Voor alle kolommen
=VERSCHUIVING(Blad1!$A$1;0;0;AANTALARG(Blad1!$A:$A);AANTALARG($1:$1))
Hoi LucB,

Bedankt voor de moeite.
Ik heb het zo opgelost:
Public Sub BepaalRange()
Dim strAantalRijen As String

Sheets("Data").Select
Range("A1").Select
strAantalRijen = CStr(ActiveCell.CurrentRegion.Rows.Count)

ActiveWorkbook.Names.Add Name:="grafiekrange", RefersToR1C1:= _
"='Data'!R1C1:R" & strAantalRijen & "C12"
End Sub

Gr,
Elias
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan