• 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 Inladen van een .csv bestand dmv macro vereenvoudigen

Dit topic is als opgelost gemarkeerd
Een datum (exotisch of niet) gaat eenvoudig met:
Code:
hsv = Application.Match(CLng(datum), Columns(7), 0)

En voor het vinden van 'rng'.
Code:
Set rng = Columns(1).Find(Application.Max(Columns(2)))
datum = Left(rng, 10)
 
@HSV,
Bedankt voor het meedenken.
Als met datum hier als uitkomst DDMMJJJJ HH MM SS is dan is dat niet de bedoeling. Ik kan alleen de tijd HH:MM gebruiken.
Ik weet niet hoe ik deze regels moet inpassen in het script van AHulpje
 
Hoe kom je erbij? ---> "ddmmjjjj hh:mm:ss"
Code:
Sub FindMaxInCSV()
    Dim csvPath As String
    Dim rng     As Range
    Dim maxWatt As Double
    Dim datum   As Date
    Dim tijd    As Date
    csvPath = Range("CSVbestand")
      If Dir(csvPath) = "" Then
        MsgBox "CSV bestand " & csvPath & " niet gevonden!", vbCritical, "Foutmelding"
       Exit Sub
      End If
 Workbooks.Open csvPath

Set rng = Columns(1).Find(Application.Max(Columns(2)))
    datum = Split(rng)(0)
    tijd = rng.Offset(, 2)
    maxWatt = Round(rng.Offset(, 1), 0)
 ActiveWorkbook.Close SaveChanges:=False
  rij = Application.Match(CLng(datum), Columns(7), 0)
   
    If Not IsNumeric(rij) Then
        MsgBox "Datum " & datum & " niet gevonden!", vbCritical, "Waarschuwing"
     else
       Cells(rij, 15).Resize(, 2) = Array(maxWatt, tijd)
    'kill csvPath
end if
End Sub

Verwijderen:
Code:
'Function ZoekRijDatum(datum) As Long
'    For r = 8 To 379
'        If Cells(r, 7) = datum Then
'            ZoekRijDatum = r
'            Exit Function
'        End If
'    Next
'End Function
 
Als ik Datum lees dan interpreteer ik dat als "ddmmjjjj hh:mm:ss"
Mogelijk schiet mijn kennis daarin tekort.
Een test laat een foutmelding zien op datum = Split(rng)(0)
en ook bij het geopende CSV bestand.

Ook laat een vergelijking tussen het org CSVbestand en het gesplitste de data niet gelijk zijn.
De punten in het getal zijn niet consequent op duizendtallen

Screen-20250621_121452-05.jpg

Screen-20250621_120800-04.jpg
 
Laatst bewerkt:
Met de Application.Match van HSV :cool::
Code:
Sub FindMaxInCSV()
    Dim csvPath As String
    Dim rng     As Range
    Dim maxWatt As Double
    Dim datum   As Date
    Dim tijd    As String

    csvPath = Range("CSVbestand")
    If Dir(csvPath) = "" Then
        MsgBox "CSV bestand " & csvPath & " niet gevonden!", vbCritical, "Foutmelding"
        Exit Sub
    End If
    Workbooks.Open csvPath
    Cells.EntireColumn.AutoFit
    maxWatt = Application.WorksheetFunction.Max(Columns(2))
    Set rng = ActiveSheet.Columns(2).Find(maxWatt)
    datum = Left(Cells(rng.Row, 1), 10)
    tijd = Right(Cells(rng.Row, 1), 5)
    maxWatt = Round(maxWatt, 0)
    ActiveWorkbook.Close SaveChanges:=False
    rij = Application.Match(CLng(datum), Columns(7), 0)
    If Not IsNumeric(rij) Then
        MsgBox "Datum " & datum & " niet gevonden!", vbCritical, "Waarschuwing"
        Exit Sub
    End If
    Cells(rij, 15) = maxWatt
    Cells(rij, 16) = tijd
    'kill csvPath
End Sub
 
@AHulpje,
Het blijft blijkbaaar een uitdaging (haha)
Je script van #25 werkt ook prima.
Is er een voorkeur voor keuze #25 of 14 ?
 
Terug
Bovenaan Onderaan