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

Data gebruiken uit ander tabblad wisselend rij

Status
Niet open voor verdere reacties.

MvdWorp

Gebruiker
Lid geworden
11 jun 2013
Berichten
27
Beste helmpij.nl helpers

Graag wil ik een macro schrijven waarbij ik steeds verschillende data gebruik van de verschillende proefpersonen om berekeningen uit te voeren.
M'n VBA-vaardigheden worden wel beter, maar dit lukt me toch echt (nog) niet en hopelijk wil iemand me op weg helpen zodat ik het bestand (zie bijlage) vanuit hier verder kan uitbreiden.

In het eerste tabblad (Data1) staan de basis gegevens van de proefpersonen en in het tweede tabblad wil ik aan de hand van de gegevens van het eerste tabblad de BMI (body mass index) van alle proefpersonen bepalen; zodat ik een tabblad krijg met alle proefpersonen en hun BMI's. Als laatste wil ik de BMI dan weer in het eerste tabblad, onderaan de desbetreffende proefpersoon, kopiëren.

Met "Macro opnemen" heb ik een macro gemaakt voor proefpersoon1, maar ik wil dit dus voor meerdere proefpersonen, dus dat het proces herhaalt gaat worden.

Dank vast voor de hulp.
Groet Maarten
 

Bijlagen

  • BMI bepalen 22 maart.xlsm
    19,1 KB · Weergaven: 19
Ik zou de tabel andersom opzetten. Dan kan je met filteren/draaitabellen een heel eind komen.
 
Beste Vena,
Dank voor je tip. Ik heb de tabel omgedraaid en de Macro aangepast.
Zou je kunnen laten "zien" hoe ik dit vervolgens moet doen?
Dank vast voor de moeite.
Groet Maarten
 

Bijlagen

  • BMI bepalen Aangepast 22 maart.xlsm
    19,6 KB · Weergaven: 10
Omdat het niet echt duidelijk is wat je verder met de gegevens wil doen.
 

Bijlagen

  • BMI bepalen Aangepast 22 maart (3).xlsm
    21,8 KB · Weergaven: 12
Beste Emields,
Dank voor het "mooi" maken van het excel-bestand met de tabelopmaak; ziet er zo strak uit.

Ik wil dit document verder gaan uitbreiden, waarbij ik verschillende tabbladen ga aanmaak en hier berekeningen ga uitvoeren om vervolgens de resultaten weer in het eerste tabblad te plaatsen. Ik denk dat het me lukt om het document verder te gaan uitbreiden als ik maar eerst weet hoe de basis eruit moet komen te zien met het herhaald uitvoeren van de berekeningen.

In de Macro die ik nu heb gemaakt, middels "Macro opnemen", wordt in het tabblad "BMI" van proefpersoon1 de BMI berekent aan de hand van de gegevens van het tabblad Data1 (proefpersoon1, gewicht en lengte) en wordt deze BMI van proefpersoon1 netjes in de tabel gekopieerd onder het kopje van BMI.
Dit proces wil ik automatisch laten herhalen voor, in dit bestand, alle 5 de proefpersonen zodat ik in tabblad "Data1" een tabel heb met dan ook alle BMI's ingevuld en een apart tabblad, tabblad "BMI" met per proefpersoon de BMI.

Ik hoop dat het zo duidelijk is en je me hiermee kan helpen.

Groet Maarten
 

Bijlagen

  • BMI bepalen Aangepast 23 maart.xlsm
    20,9 KB · Weergaven: 19
Waarom via een extra tabel? En waarom niet met formules?

Met extra tabel
Code:
Sub VenA()
  ar = Sheets("Data1").ListObjects(1).DataBodyRange
  ReDim ar1(1 To UBound(ar), 1)
  For j = 1 To UBound(ar)
    ar1(j, 0) = ar(j, 1)
    ar1(j, 1) = ar(j, 3) / ar(j, 4) ^ 2
  Next j
  With Sheets("BMI").ListObjects(1)
    If .ListRows.Count > 0 Then .DataBodyRange.Delete
    .ListRows.Add.Range.Resize(UBound(ar1), 2) = ar1
    Sheets("Data1").ListObjects(1).DataBodyRange.Columns(5) = .DataBodyRange.Columns(2).Value
  End With
End Sub

Zonder extra tabel
Code:
Sub VenA1()
  ar = Sheets("Data1").ListObjects(1).DataBodyRange
  For j = 1 To UBound(ar)
    ar(j, 5) = ar(j, 3) / ar(j, 4) ^ 2
  Next j
  Sheets("Data1").ListObjects(1).DataBodyRange = ar
End Sub

Formule
Code:
=[@Gewicht]/[@Lengte]^2
 
Dank Vena. Zo is de Macro als ik 'm wil hebben!

Het gaat me vooral op het programmeren (ik ben hard aan het oefenen/leren!). Ik wil dit principe toepassen bij andere Macro's waarbij het aparte tabblad (in dit geval het tabblad "BMI") eigenlijk als een ander excel-bestand functioneert vandaar dat ik blij ben met je eerste voorbeeld/oplossing.
Nogmaals dank,

Groet Maarten
 
Code:
Sub hsv()
 With Sheets("data1").ListObjects(1)
  .ListColumns("BMI").DataBodyRange = Evaluate("index(" & .ListColumns("Gewicht").DataBodyRange.Address & "/" & .ListColumns("Lengte").DataBodyRange.Address & "^2 ,)")
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan