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

Inlezen .csv

Status
Niet open voor verdere reacties.
VenA, voorbeeld van de te bewerken csv zie posting 17:26

Harry, is dit wat je bedoeld?
vastlopen.jpg
 
Bij mij werkt de code perfect op het bestand van 17:26 uur Jan.
Ik zou zo gauw niet weten waarin ik het moet zoeken.

Wat is de waarde van "Ubound(sq)" eigenlijk.
 
Laat de code lopen tot de foutmelding komt, laat de muisaanwijzer op Ubound(sq) bewegen.
Als het goed is komt er dan een tekstvakje met de waarde in beeld.
 
En je laat de code lopen op het bestandje van 17:26 uur?
Of is het een ander bestandje dat je test.
 
... terwijl jouw code van 16:18 het prachtig doet. Het verschil tussen de twee codes is dus dat bij die van 16:18 ik de csv file geladen heb, bij de laatste wordt hij dus door de code geladen. Kan dat verschil maken????
 
Nee, alleen het verschil was de eerste rij die al goed stond in dat bestandje.
Zijn er misschien nog meer van zulke rijen zonder het scheidingsteken ";".
 
Mijn excuses, de komma bedoel ik inderdaad.
Heb je al andere .csv bestanden geprobeerd.
 
ja jongen, exact hetzelfde. Let op: ook datums hebben weer verkeerde notatie en getallen die als tekst worden weergegeven.
 
Probeer het zo eens Jan.
Code:
Sub hsv()
Dim sq, cl As Range, cll As Range
With Application.FileDialog(msoFileDialogOpen)
  .InitialFileName = "C:\Users\HSV\Desktop"
  .Filters.Add "CSV Bestanden (.csv)", "*.csv", 1
  .FilterIndex = 1
 If .SelectedItems.Count = 1 And .Show = -1 Then
 .Execute
Application.ScreenUpdating = False
With ActiveWorkbook.Sheets(1)
'sq = Split(.Cells(1), ",")
' .Cells(1).Resize(, UBound(sq)) = sq
  For Each cl In .Columns(1).SpecialCells(2).Offset(1).SpecialCells(2)
  cl.Select
    cl.Replace """,""", "|", 2
    cl.Replace ",""", "|", 2
       sq = Split(cl, "|")
    cl.Resize(, UBound(sq)) = sq
 Next cl
    .Columns.AutoFit
 For Each cll In Application.Union(.Columns(2), .Columns(7), .Columns(8), .Columns(9)).SpecialCells(2)
   If IsNumeric(cll.Value) Then cll = cll.Value * 1
 Next cll
 .Columns("G:I").NumberFormat = "0.00"
   End With
  End If
 End With
End Sub
 
ziet er goed uit Har, alleen de eerste regel wordt niet gesplitst (komma gescheiden)

Zal de code eens goed BESTUDEREN!!!!!!!!!, heeft heel wat bloed zweet en tranen gekost. Kan je de eerste regel nog fixen? Vraag wel veel
 
Uiteraard,

Het stond er nog gewoon in, met een apostrof er voor (weggehaald).
Code:
Sub hsv()
Dim sq, cl As Range, cll As Range
With Application.FileDialog(msoFileDialogOpen)
  .InitialFileName = "C:\Users\HSV\Desktop"
  .Filters.Add "CSV Bestanden (.csv)", "*.csv", 1
  .FilterIndex = 1
 If .SelectedItems.Count = 1 And .Show = -1 Then
 .Execute
Application.ScreenUpdating = False
With ActiveWorkbook.Sheets(1)
 sq = Split(.Cells(1), ",")
 .Cells(1).Resize(, UBound(sq)) = sq
  For Each cl In .Columns(1).SpecialCells(2).offset(1).specialcells(2)
  cl.Select
    cl.Replace """,""", "|", 2
    cl.Replace ",""", "|", 2
       sq = Split(cl, "|")
    cl.Resize(, UBound(sq)) = sq
 Next cl
    .Columns.AutoFit
 For Each cll In Application.Union(.Columns(2), .Columns(7), .Columns(8), .Columns(9)).SpecialCells(2)
   If IsNumeric(cll.Value) Then cll = cll.Value * 1
 Next cll
 .Columns("G:I").NumberFormat = "0.00"
   End With
  End If
 End With
End Sub
 
Laatst bewerkt:
Code aangepast in vorig bericht.
 
whaw, heel hartelijk dank voor je werk. Maar eh, moet ik nu het orkest betalen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan