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

Een waarde door hele kolom laten delen

Status
Niet open voor verdere reacties.

MvdWorp

Gebruiker
Lid geworden
11 jun 2013
Berichten
27
Beste Helpmij helpers,
Ik heb een macro gemaakt (zie excel-bestand en hieronder), waarbij ik eerst uit het bestaande bestand het gewicht bereken en de staptijd haal. Vervolgens opent de macro een nieuw cvs-bestand (zie bijlage) waarbij ik de waarden van de eerste de twee kolommen (A5:A104) en (B5:B104) wil delen door respectievelijk de staptijd en het gewicht waarbij de kolommen blijven bestaan. Op deze manier loopt de macro vast, kan iemand helpen hoe ik dit moet doen? Bedankt vast.
Groet Maarten


Code:
Sub HeleKolomdelendoorGewichtoenStaptijd()

    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
        Staptijd = Range("AT1").Offset(n, 1).Value / 1000
        Gewicht = Range("C1").Offset(n, 1).Value * 9.81
        
    Filename1 = c00 & n & "/Data1/Force-and-pressure_force-curves_average-L.csv"
        With Workbooks.Open(Filename1)

'Hierna gaat het mis!!
    Range("staptijd").Value.Select
    Selection.Copy
    Range("A5:A104").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _
        :=False, Transpose:=False

        LR = (Range("B9").Value - Range("B7").Value) / (Range("A9").Value - Range("A7").Value)

'Grafiek 1
            Range("A5:B104").Select
            ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
            ActiveChart.SetSourceData Source:=Range("'Force-and-pressure_force-curves'!$A$5:$B$104")

'Opmaak:
            Rows("1:2").Select
            Selection.Delete Shift:=xlUp

            Range("A2").Value = "Tijd (sec)"
            Range("B2").Value = "Kracht/gewicht (N)"
            Range("D5").Value = "Gewicht (N)"
            Range("E5").Value = Gewicht
            Range("D6").Value = "Staptijd (sec)"
            Range("E6").Value = Staptijd
            Range("D7").Value = "Loadingrate:"
            Range("E7").Value = LR

            Range("A2:C2").Select
            Selection.Font.Bold = True
            Range("D5:D7").Select
            Selection.Font.Bold = True
            Columns("A:D").EntireColumn.AutoFit

        End With
    Next n
    
    End If
End Sub
 

Bijlagen

  • Helpmij 17 april 2019.xlsm
    34,3 KB · Weergaven: 21
  • Force-and-pressure_max-pressure-curves_average-L.csv
    1,5 KB · Weergaven: 10
Volgens mij heb je geen enkele macro gemaakt en ook vertel je weer niet wat er misgaat Krijg je een foutcode? Of is de uitkomst verkeerd?. Leer je zelf ook even aan dat het geen cvs bestanden zijn maar csv bestanden. (comma-separated values)
 
Topic opgeschoond.
Onderlinge gevechten niet via het forum voeren.
 
Ik ben het een beetje zat om steeds commentaren te lezen richting de vragenstellers.
Van geen ander forumlid lees ik dit.

Voor de gevolgen van een officiële waarschuwing sta ik dan maar in.
Doe er je voordeel mee @puppie.
 
Beste VeNa,
Dank weer voor je reactie.
Wat ik wil doen is de waarde van Kolom A5:A104 (uit het CSV-document) delen door de staptijd en de waarde van kolom B5:B104 (ook uit het CSV-bestand) delen door het gewicht voordat de grafiek gemaakt word.
Hierbij wil ik graag "plakken-speciaal => delen" gebruiken, maar ik weet niet welke code/regel ik daarvoor moet gebruiken.

Groet Maarten

Code:
Sub KolomdelendoorStaptijdenGewicht()

    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
        Staptijd = Range("AT1").Offset(n, 1).Value / 1000
        Gewicht = Range("C1").Offset(n, 1).Value * 9.81
        
    Filename1 = c00 & n & "/Data1/Force-and-pressure_force-curves_average-L.csv"
        With Workbooks.Open(Filename1)


'Grafiek
            Range("A5:B104").Select
            ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
            ActiveChart.SetSourceData Source:=Range("'Force-and-pressure_force-curves'!$A$5:$B$104")

        End With
    Next n
    
    End If
End Sub
 

Bijlagen

  • Helpmij 18 april 2019.xlsm
    35,9 KB · Weergaven: 20
  • Force-and-pressure_max-pressure-curves_average-L.csv
    1,5 KB · Weergaven: 8
Ik heb werkelijk geen idee waar je nu naar opzoek bent. Kolom AT in de tab 'DATATOTAAL' heeft als kop 'Dubbele standfase SD (%)' In dezelfde tab heeft kolom C de kop 'Geslacht'
 
Beste VeNa,

Dank weer voor het helpen. Ik snap de verwarring, komt door mijn onkunde t.a.v. VBA.

Ik wil natuurlijk steeds de waarden uit kolom AU (de staplengte L (cm)) en kolom D (massa (kg)) hebben, maar dat lukte me niet met de "offset" dus heb ik het zo opgelost. Nu neemt hij (in iedergeval voor n= 1) de juiste kolom/waarde! Waarschijnlijk gaat dit in een later proces (n>1) niet goed, maar daar was ik nog niet tegenaan gelopen.....

Ik wil dus met de staplengte en massa verder rekenen: kolom delen uit de csv-bestand.
Nogmaals dank en vast een fijn paasweekend.

Groet Maarten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan