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

Data importeren vanuit een .csv bestand met wisselende bestandsnaam

Status
Niet open voor verdere reacties.

anton44

Verenigingslid
Lid geworden
20 mei 2005
Berichten
1.780
De code heb ik gekopieerd uit een ander project waar deze goed werkt en aangepast aan het nieuwe project.
Run ik met regel 270 actief en niet regel 280 werkt deze muv aangepast bestandsnaam in het script
Het filter voor het te openen bestand staat in de cellen "Variabelen" cel $A$4 de plaats van het bestand (D:\downloads)
in cel $B$4 het filter voor de bestandsnaam (Chart) en in cel $C$4 de extensie (.CSV)
De naam van het .csv bestand wordt weggeschreven in "Variabelen" cel $A$1

Maak ik regel 280 actief en 270 niet dan komt een foutmelding op regel 530.
Er wordt niets geïmporteerd.

Mijn vraag: waar zit de fout - ik kan hem niet vinden.

Code:
Sub SE_Hernoemen()
10  Application.ScreenUpdating = False
20    Dim sFil As String
30    Dim sPath As String
40    Dim lRij As Long
50    Dim TempName As String
    
60    With Sheets("Variabelen")
70        lRij = 1
80        sFil = Dir(.Range("A4") & "\" & .Range("B4") & "*" & .Range("C4")) 'Bestandsdefinitie en filter
90        Do While sFil <> ""
100            .Range("A" & lRij) = sFil
110            lRij = lRij + 1
120            sFil = Dir
130        Loop
140    End With

150 'Benoemen
160     With Sheets("Variabelen")
170        TempName = .Range("A1")
180        If Len(TempName) > 0 Then
190        TempName = .Range("A1")
  
200        Else
210            MsgBox "Bestand is niet gevonden", vbInformation, "Onvindbaar"
220            'Macro stopt bij "Bestand is niet gevonden" / Start de volgende sub niet.
230        GoTo Fout1
240        End If
        
250      End With
     
260    ActiveWorkbook.Worksheets("Blad2").Select
270 '    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;D:\Downloads\Chart Export 31-07-2017.csv", Destination:=Range("$A$1"))
    
280 '   With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & TempName, Destination:=Range("$A$1"))
  
290        .FieldNames = True
300        .RowNumbers = False
310        .FillAdjacentFormulas = False
320        .PreserveFormatting = True
330        .RefreshOnFileOpen = False
340        .RefreshStyle = xlInsertDeleteCells
350        .SavePassword = False
360        .SaveData = True
370        .AdjustColumnWidth = True
380        .RefreshPeriod = 0
390        .TextFilePromptOnRefresh = False
400        .TextFilePlatform = 850
410        .TextFileStartRow = 1
420        .TextFileParseType = xlDelimited
430        .TextFileTextQualifier = xlTextQualifierDoubleQuote
440        .TextFileConsecutiveDelimiter = False
450        .TextFileTabDelimiter = False
460        .TextFileSemicolonDelimiter = False
470        .TextFileCommaDelimiter = True
480        .TextFileSpaceDelimiter = False
490        .TextFileColumnDataTypes = Array(1, 1, 9)
500        .TextFileDecimalSeparator = "."
510        .TextFileThousandsSeparator = ","
520        .TextFileTrailingMinusNumbers = True
530        .Refresh BackgroundQuery:=False
    
540    End With
    
550   '  Kill TempName 'Importbestand wissen
  
560 Fout1:
570  Application.ScreenUpdating = True
580 End Sub
 
Oorzaak zelf gevonden.
Oplossing:
In tabblad "Variabelen" cel $A$2 de volledige bestandsnaam berekenen ("mapnaam uit $A$4" & "bestandsnaam uit $A$1")
Cel "Variabelen" $A$2 gebruiken in regel 170 en 190

Code:
150 'Benoemen
160     With Sheets("Variabelen")
170        TempName = .Range("A2")
180        If Len(TempName) > 0 Then
190        TempName = .Range("A2")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan