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

Gegevens uit ander bestand foutmelding

Status
Niet open voor verdere reacties.

hasuthika

Gebruiker
Lid geworden
8 nov 2018
Berichten
23
Voor een gegevens bestand te maken heb ik onderstaande code geschreven:
Code:
Sub test()

    Application.Calculation = xlManual
    Application.ScreenUpdating = False
    
    Const ForReading = 1, ForAppending = 8
    Const TriStateUseDefault = -2, TriStateTrue = -1, TriStateFalse = 0

    Dim objFSO As Object, objTS As Object
    Dim src As Workbook
    Dim pad As String
    Dim Stammap, Totaalrij As String

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTS = objFSO.OpenTextFile("J:\Data\Meetmiddelen\test.csv", ForAppending, TriStateUseDefault)

    Worksheets("Blad1").Range("$AE$2") = Now

    Dim RIJ, RIJEXT, X, Y, Z As Integer, A, B, C, D, E, F, G As String
    X = Worksheets("Blad1").Range("$AG$1")
    For RIJ = 2 To X
        pad = Worksheets("Blad1").Cells(RIJ, 33)
        Set src = Workbooks.Open(pad, False, True)
        src.Worksheets("Blad2").Activate
        Cells.Select
        Selection.EntireColumn.Hidden = False
        Selection.EntireRow.Hidden = False
        'MsgBox Cells(9, 6)
        For RIJEXT = 9 To 500
            If IsError(Cells(RIJEXT, 1)) = False Then
                A = Cells(RIJEXT, 1)
            Else
                A = ""
            End If
            If IsError(Cells(RIJEXT, 2)) = False Then
                B = Cells(RIJEXT, 2)
            Else
                B = ""
            End If
            If IsError(Cells(RIJEXT, 3)) = False Then
                C = Cells(RIJEXT, 3)
            Else
                C = ""
            End If
            If IsError(Cells(RIJEXT, 4)) = False Then
                D = Cells(RIJEXT, 4)
            Else
                D = ""
            End If
            If IsError(Cells(RIJEXT, 5)) = False Then
                E = Cells(RIJEXT, 5)
            Else
                E = ""
            End If
            If IsError(Cells(RIJEXT, 6)) = False Then
                F = Cells(RIJEXT, 6)
            Else
                F = ""
            End If
            If IsError(Cells(RIJEXT, 7)) = False Then
                G = Cells(RIJEXT, 7)
            Else
                G = ""
            End If
                
            Totaal_rij = pad & ";" & _
            A & ";" & _
            B & ";" & _
            C & ";" & _
            D & ";" & _
            E & ";" & _
            F & ";" & _
            G
            objTS.WriteLine Totaal_rij
        Next RIJEXT
        RIJEXT = 9
        src.Close False
        Set src = Nothing
    Next RIJ
        
    src.Close False
    Set src = Nothing
    
    Worksheets("Blad1").Range("$AE$3") = Now

End Sub

In
Code:
Worksheets("Blad1").Range("$AG$1")
staat een getal, het aantal padnamen dat beschikbaar is.
Code:
pad = Worksheets("Blad1").Cells(RIJ, 33)
zijn de padnamen, allemaal in kolom 33 beginnend vanaf rij 2 lopende tot de rij die hierboven aangegeven staat.
Code:
Worksheets("Blad1").Range("$AE$3") = Now
heb ik erin gezet om te kijken hoelang het duurt voordat alles gekopieerd is. Ik heb namelijk een lijst met 500 excel bestanden die zo nagezocht moet worden, maar wil eerst kijken hoelang het duurt om 10% te doen. Hierna wordt dit bestand op een server aangezet, als het werkende is.

Het kan zijn dat er code anders geschreven kan worden, maar dit is niet het probleem.
Als in het blad wat ik opvraag iets staat als onderstaande foto, krijg ik een foutmelding in de regel:
Code:
objTS.WriteLine Totaal_rij
Vraag.PNG

Hoe los ik dit op?

3 oplossingen zijn voor mij OK:
1. Deze regel als witregel schrijven (als "" schrijven)
2. Deze regel overslaan
3. Dit bestand overslaan

Liefst zie ik oplossing 1.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan