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

Macro met flexibele range (excel 2007)

Status
Niet open voor verdere reacties.

Verbaasing

Nieuwe gebruiker
Lid geworden
8 jun 2010
Berichten
2
Beste leden,

Ik wil een macro met een "flexibele" range. Heb zelf al wat zitten stunten maar krijg dit niet voor elkaar.

Wat wil ik?
Ik wil een macro die op het blad "Gegevens" vanaf A3 een tabel invoegt en vervolgens aan de 3 tabelkolommen een naam geeft.

Wat is het probleem?
De macro moet werken bij lijsten die verschillen in lengte (niet in opmaak). De macro die er nu in staat, is gemaakt op basis van lijst1 op het blad "Gegevens". Voor lijst1 werkt de macro dan ook goed.
Als ik nu lijst2 naar het blad "Gegevens" kopieer gaat het fout. De macro houd zich van aan de range van lijst1 en maakt dus alleen van de eerste 5 rijen een tabel.

Hoe kan ik dit aanpassen?

Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets("Gegevens").Select
    Range("A3").Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$3:$C$8"), , xlYes).Name = _
        "Tabel1"
    Range("B4:B8").Select
    ActiveWorkbook.Names.Add Name:="Aantal", RefersToR1C1:= _
        "=Gegevens!R4C2:R8C2"
    Range("C4:C8").Select
    ActiveWorkbook.Names.Add Name:="Prijs", RefersToR1C1:="=Gegevens!R4C3:R8C3"
    Range("A4:A8").Select
    ActiveWorkbook.Names.Add Name:="Product", RefersToR1C1:= _
        "=Gegevens!R4C1:R8C1"
    Range("A1:C1").Select
    Sheets("Formules").Select
End Sub
 

Bijlagen

Zie bijgevoegd bestand. Ik weet niet of dit de bedoeling is. Op het blad gegevens wordt telkens een tabel toegevoegd aan de hand van de keuze die je maakt op het blad formules. Indien je heel veel lijsten hebt, krijg je veel tabellen op het blad gegevens en het aantal gedefinieerde namen neemt fors toe. Wellicht dat het zo moet zijn dat de tabel op het blad gegevens telkens overschreven moet worden. Maar dat kan ik niet uit de vraagstelling halen.
 

Bijlagen

Bedankt voor uw reactie.

Dit is niet helemaal wat ik bedoelde, misschien wel een stap in de goede richting. Misschien dat ik niet helemaal duidelijk ben geweest.

Het originele bestand ziet er ongeveer als volgt uit:
Je hebt 10x het blad gegevens, voor iedere afdeling één.
Je hebt 10x een macro, voor ieder gegevensblad een macro.
Je heb 1x een blad met formules, in deze formules staan de kolomnamen die je wilt gaan definiëren dmv macro’s. (het gaat hierbij om
een groot aantal formules plus dat de formules zo overzichtelijk moeten zijn, vandaar dat ik voor deze manier heb gekozen).
En eventueel nog een apart blad met macroknoppen

Het is een bestand wat periodiek opgesteld moet gaan worden. Op ieder gegevensblad komt altijd maar 1 tabel startend op cel A3.
De tabellen worden dus iedere periode overschreven (of iedere periode het “schone” bestand gebruikt).

In mijn voorbeeldje zou je lijst1 kunnen zien als de cijfers van periode 1 en lijst2 als de cijfers van periode 2 van dezelfde afdeling.

Uiteindelijk is het dus de bedoeling dat de formules worden ingevuld door de macro uit te voeren.
Ik hoop dat het zo iets duidelijker is.


Wat het probleem is, is dat ik bij het opnemen van de macro op cel A3 een tabel heb ingevoegd. Hierbij
wordt van alle aangrenzende cellen een tabel gemaakt. In de macro wordt dit opgeslagen als “Range("$A$3:$C$8")” en
niet als “alle aangrenzende cellen”.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan