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

Waarden (gewicht, etc.) in achterste kolommen plaatsen voor verschillende personen

Status
Niet open voor verdere reacties.

MvdWorp

Gebruiker
Lid geworden
11 jun 2013
Berichten
27
Beste Helpmij helpers,

Ik heb een macro (zie hieronder en in het excel bestand) gemaakt waarbij ik vanuit een CVS bestanden (zie twee voorbeelden als attachment) het gewicht, leeftijd en geslacht van de desbetreffende hardloper haal.

Vervolgens wil ik deze in de laatste 3 kolommen (EB, EC & ED) plaatsen.
Zoals ik 'm nu geschreven heb gaat dit goed voor de eerste hardloper, maar bij n= 2 of groter gaat het mis.
Ik heb al heel veel varianten geprobeerd, maar helaas kom ik er niet uit. Kan iemand me "leren" hoe ik dit kan oplossen?
Bedankt vast voor de moeite/reactie,

Groet Maarten

Code:
Sub InlezenGewichtLeeftijdGeslacht()

   c00 = "/Users/mvdworp/Documents/Zebris/Onderzoek/Hardloper"
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False

t = Application.InputBox("Voor hoeveel hardlopers wil je de gegevens bewerken?", , , , , , , 1)
    If IsNumeric(t) Then
    For n = 1 To t
            Filename1 = c00 & n & "/Data1/patient-and-record-info.csv"
                With Workbooks.Open(Filename1)
                  Dim Age As Integer
                  Datum = Date
                        Weight = Range("N2").Value
                        Birth = Range("E2").Value
                        Age = (Datum - Birth) / 365.25
                        Gender = Range("D2").Value
                        .Close
                 End With

        
 'Leeftijd:
    With ThisWorkbook.Sheets("DATATOTAAL").Cells(n + 1, Columns.Count).End(xlToLeft).Offset(, 1)
                With .Rows(n)
                 .Value = Age
                End With
    End With


'Geslacht:
    With ThisWorkbook.Sheets("DATATOTAAL").Cells(n + 1, Columns.Count).End(xlToLeft).Offset(, 1)
                With .Rows(n)
                 .Value = Gender
                End With
    End With

'Gewicht:
    With ThisWorkbook.Sheets("DATATOTAAL").Cells(n + 1, Columns.Count).End(xlToLeft).Offset(, 1)
                With .Rows(n)
                 .Value = Weight
                End With
    End With
 
    Next n
    End If

End Sub
 

Bijlagen

  • patient-and-record-info.csv
    297 bytes · Weergaven: 12
  • patient-and-record-info.csv
    301 bytes · Weergaven: 14
  • Helpmij 14 april 2019.xlsm
    29,8 KB · Weergaven: 13
Wat gaat er mis dan?

De code kan wel wat eenvoudiger. (niet getest)
Code:
Sub InlezenGewichtLeeftijdGeslacht()
  c00 = "/Users/mvdworp/Documents/Zebris/Onderzoek/Hardloper"
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  t = Application.InputBox("Voor hoeveel hardlopers wil je de gegevens bewerken?", , , , , , , 1)
  If t > 0 Then
    For n = 1 To t
      Filename1 = c00 & n & "/Data1/patient-and-record-info.csv"
      With Workbooks.Open(Filename1)
        ar = Array((Date - Range("E2").Value) / 365.25, Range("D2").Value, Range("N2").Value)
        .Close 0
      End With
      ThisWorkbook.Sheets("DATATOTAAL").Cells(n + 1, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, 3) = ar
    Next n
  End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan