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

Opgelost Formule kopieren obv variabelen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

youdeni

Gebruiker
Lid geworden
28 feb 2008
Berichten
147
Beste Experts,

Hopelijk kunnen jullie mij verder helpen.
Ik heb een bestand waarop in Tabblad "Index" in kolom "G" het aantal regels staan en in kolom "H" het aantal kolommen van het tabblad dat in kolom "E" staat. (deze waarden komen uit een ander bestand)
Nu wil graag in het Tabblad wat in kolom H staat bijvoorbeeld cel "E2" Kwalificatie dat daar de formule die op dat respectievelijke tabblad staat in cel A1 door gekopieerd wordt de regels en kolommen die Tabblad "Index" in kolom "G" en kolom "H" staan. In het voorbeeld zou dit betekenen dat dit naar regel 5 en kolom 4 gaat.
Dit moet dan voor alle tabbladen in het bestand. Dus alle regels op Tabblad "Index" in kolom E hebben een apart tabblad. Het werkelijke bestand kent een groot aantal tabbladen.
Hoop dat het een beetje duidelijk is.
 

Bijlagen

Begrijp niet veel van het verhaal, maar kijk eens naar de functies: =INDIRECT(ADRES(
 
Denk niet dat dit werk, ik denk eerder dat het d.m.v. een VBA code moet, omdat ook alle tabbladen af gegaan moeten worden
 
Prima, maar het verhaal is mij geheel onduidelijk.
 
Lees je eigen verhaal maar eens; geen touw aan vast te knopen: "bijvoorbeeld E2"; "Het aantal kolommen van het tabblad dat in kolom "E" staat."
Het enige wat ik zie is een punt in kolom E van tab Index.
 
Als ik het goed begrijp, en daar heb ik een half uur voor nodig gehad, wil je de formule die in cel A1 staat op werkblad Kwalificatie over vijf rijen en vier kolommen doortrekken. Idem voor werkblad Afwezigheidsreden. Op het (niet bestaande) werkblad Inactiviteitsreden wil je de formule in cel A1 niet verder doortrekken.
Je verwijzing naar de kolommen E, G en H op werkblad Index kloppen pas als je de eerste drie lege kolommen verwijdert.
Heb ik het goed begrepen?
 
Beste Harry en Ahulpje,

Bedankt voor jullie feebdack. Zie ook dat ik een ouder versie van het bestand had toegevoegd. wat het lastig maakt is dat de formule die ik in de tabbladen wil een formule is die normaliter uit verschillende bestanden komt maar omdat externe koppelingen niet kunnen moet ik het nu in een bestand zetten. Ik heb het bestand wat uitgebreid en mij verhaal wat duidelijker te formuleren.
  • Op tabblad "Index" Staat een overzicht met hyperlinks naar de tabbladen in het bestand.
  • Achter elke specifiek tabblad staat in kolom "F" het aantal regels en in kolom "G" het aantal kolommen van dat specifieke tabblad.
  • Nu staat default in elk specifiek tabblad in cel "A1" (groen gearceerd) een formule die data vergelijkt uit andere bestanden.
  • De formule in "A1" is standaard aanwezig. De geel gearceerde cellen zijn nog niet ingevuld
  • Wat ik nu wil is dat de formule in cel "A1" door gekopieerd wordt naar de andere cellen in het tabblad o.b.v. de waarden die in het tabblad index staan voor het specifieke tabblad.
Als voorbeeld neem ik tabblad "kwalificatie" in cel "A1" staat de formule "=anderEXCELKwalificatie1!A1=anderEXCELKwalificatie2!A1" deze moet dus o.b.v. wat op het tabblad "index staat door gekopieerd worden naar Rij 5 en kolom D. (dus de geel gearceerde cellen).
Vervolgens moet ditzelfde gebeuren voor tabblad "afwezigheidsreden" en "inactiviteitsreden" etc.
De reden waarom ik vermoed dat dit met een macro moet, Is omdat de data continu veranderd. In het voorbeeld is tabblad "kwalificatie" nu 5 rijen en 4 kolommen. Maar dit kan morgen bijvoorbeeld 10 rijen zijn en 20 kolommen.

Hoop dat het nu wat duidelijker is.
 

Bijlagen

Dit is het basisprincipe, kun je hiermee verder?
Code:
Sub Uitvullen()
    With Sheets("Kwalificatie")
        .Range("A1").AutoFill Destination:=.Range("A1:D5"), Type:=xlFillDefault
    End With
End Sub
 
Code:
Sub hsv()
Dim cl As Range
 For Each cl In Sheets("index").Range("e2:e4")
   Sheets(cl.Value).Cells(1).Resize(cl.Offset(, 1), cl.Offset(, 2)) = Sheets(cl.Value).Cells(1).Formula
 Next cl
End Sub
 
Elegant! Deze Inventaris hoeft nog lang niet naar de kringloop.;)
 
  • Haha
Waarderingen: HSV
Beste Harry,

Als de code zo wil aanpassen dat niet de formule uit Cel uit A1 gekopieerd moet worden. Maar de formule uit cel A2.
En dat de rij A dan niet overschreden wordt.
 
Deze regel aanpassen is dat genoeg?
Code:
Sheets(cl.Value).Cells(2, 1).Resize(cl.Offset(, 1), cl.Offset(, 2)) = Sheets(cl.Value).Cells(2, 1).Formula
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan