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

Import CSV to Excel; Specifieke Range

Status
Niet open voor verdere reacties.

RichieL

Gebruiker
Lid geworden
29 nov 2018
Berichten
74
Ik heb met behulp van zoeken en proberen een scriptje gemaakt waarbij ik een CSV kan inlezen. Nu lukt het me niet / kan ik niet vinden hoe ik vanaf RIJ 20 de gegevens ophaal uit het CSV bestand.

Oftewel: Alles wat tussen A1:Z19 staat zijn gegevens die ik niet nodig heb met het inlezen. Ik heb de gegevens nodig vanaf A20:Z99. Hoe krijg ik dit voor elkaar?

Code:
Private Sub CommandButtonImport_Click()
    
    Range("A2:C999").ClearContents
    
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
            .Filters.Clear
            .Title = "Select a CSV File"
            .Filters.Add "CSV", "*.csv", 1
            .AllowMultiSelect = False
        
        Dim sFile As String
        If .Show = True Then
            sFile = .SelectedItems(1)
    End If
  
  End With
    
    'Import CSV from FileDialog
    If sFile <> "" Then
        Open sFile For Input As #1
            row_number = 0
            Do Until EOF(1)
                Line Input #1, LineFromFile
                LineItems = Split(LineFromFile, ";")
                Application.Range("ProductRange").Cells(row_number, 1).Value = LineItems(1)
                Application.Range("ProductRange").Cells(row_number, 2).Value = LineItems(6)
                Application.Range("ProductRange").Cells(row_number, 3).Value = LineItems(17)
                row_number = row_number + 1
            Loop
        Close #1
    End If

End Sub
 

Bijlagen

In dit forum had je met enig zoeken veel betere VBA-oplossingen kunnen vinden.

Code:
Sub M_snb()
  With Application.FileDialog(3)
    .InitialFileName = "G:\OF\*.csv"
    If .Show Then Sheets.Add , Sheets(Sheets.Count), , .SelectedItems(1)
  End With
  
  Application.DisplayAlerts = False
  With Sheets(Sheets.Count)
      .UsedRange.Copy Sheet1.Cells(20, 1)
      .Delete
  End With
End Sub
 
Laatst bewerkt:
Hallo,

Of eens gedacht aan power query?
Hier zijn na het uploaden van het .csv de eerste(hoeveel jij wilt) rijen te verwijderen.
 
In dit forum had je met enig zoeken veel betere VBA-oplossingen kunnen vinden.

Code:
Sub M_snb()
  With Application.FileDialog(3)
    .InitialFileName = "G:\OF\*.csv"
    If .Show Then Sheets.Add , Sheets(Sheets.Count), , .SelectedItems(1)
  End With
  
  Application.DisplayAlerts = False
  With Sheets(Sheets.Count)
      .UsedRange.Copy Sheet1.Cells(20, 1)
      .Delete
  End With
End Sub

Ik zal dit is proberen verder uit te werken aangezien ik alleen bepaalde kolommen nodig heb en andere niet.
 
Hallo,

Of eens gedacht aan power query?
Hier zijn na het uploaden van het .csv de eerste(hoeveel jij wilt) rijen te verwijderen.

Ik moet na het importeren nog een berekening doen met de getallen die ik uit de import haal. Die formule's staan alleen niet in het voorbeeld.
En zoveel kennis heb ik niet van PowerQuery.
 
@Richiel gebruik niet de quote knop als je reageert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan