Risultati da 1 a 5 di 5

Discussione: Errore run-time 62



  1. #1
    L'avatar di yoghi87
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    PIOBBICO
    Età
    29
    Messaggi
    2
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    Errore run-time 62

    Buongiorno, ho bypassato il problema dell'inserimento di piu file usando la macro con l'unione di questi file in un unico... ora però mi ritrovo l'errore "Input oltre la fine del file"
    Il debug mi segna di giallo la riga che ho sottolineato


    Codice: 
    Sub Macro1()   datifile = Application.GetOpenFilename("Files Job (*.job), *.job")
       'col = Array("A", "D")
       par = Array("A", "B", "C", "D", "E", "F", "T", "H", "I", "J", "K", "L")
       'Range("Riepilogo!A6:E596").ClearContents
       Range("Piani!A3:G596").ClearContents
       Range("Parti!A4:F596").ClearContents
       Range("Parti!H4:H596").ClearContents
       Range("Parti!T4:T596").ClearContents
       Range("Parti!V4:W596").ClearContents
       If datifile = False Then Exit Sub
       Open datifile For Input As #1
       ActiveSheet.Unprotect
       Do While Not EOF(1)
          Line Input #1, rigadati
       '-+-+-+-+-+-+-+-+- Leggo dati -+-+-+-+-+-+-+-+-
          If Mid$(rigadati, 1, 13) = "[WORK:Commo" Then
             rg = 20
             Do
                Line Input #1, rigadati
                pos = InStr(rigadati, "=")
                dat = Mid$(rigadati, pos + 1)
                Range("Riepilogo!D" & rg).Value = dat
                rg = rg + 1: grp = 0
                If Mid$(rigadati, 1, 13) = "[WORK:Plans" Then Exit Do
             Loop While Not rigadati = ""
          End If
          If Mid$(rigadati, 1, 13) = "[WORK:Plans" Then
             rg = 3
             Line Input #1, rigadati
             If Mid$(rigadati, 1, 13) <> "[WORK:Parts" Then
                pos = InStr(rigadati, "=")
                num = Mid$(rigadati, pos + 1)
                Range("Riepilogo!B13").Value = num
                For x = 1 To num
                   For y = 1 To 12
                      Line Input #1, rigadati
                      pos = InStr(rigadati, "=")
                      dat = Mid$(rigadati, pos + 1)
                      If y < 8 Then
                         Range("Piani!" & par(y) & rg).Value = dat
                      Else
                         nodat = dat
                      End If
                   Next
                   rg = rg + 1: grp = 0
                Next
             End If
          End If
          If Mid$(rigadati, 1, 13) = "[WORK:Parts" Then
             rg = 4
             Line Input #1, rigadati
             pos = InStr(rigadati, "=")
             num = Mid$(rigadati, pos + 1)
             For x = 1 To num
                For y = 1 To 8
                   Line Input #1, rigadati
                   pos = InStr(rigadati, "=")
                   dat = Mid$(rigadati, pos + 1)
                   Range("Parti!" & par(y) & rg).Value = dat
                   If y = 8 Then
                      posx = InStr(dat, "x")
                      lx = Val(Mid$(dat, 1, posx - 2))
                      ly = Val(Mid$(dat, posx + 2, 7))
                      Range("Parti!V" & rg).Value = lx
                      Range("Parti!W" & rg).Value = ly
                   End If
                Next
                For y = 1 To 3
                   Line Input #1, rigadati
                   'pos = InStr(rigadati, "=")
                   'dat = Mid$(rigadati, pos + 1)
                   'Range("Parti!" & par(y) & rg).Value = dat
                Next
                rg = rg + 1: grp = 0
             Next
          End If
       Loop
       ActiveSheet.Protect
       Close
    End Sub

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2316
    Versione Office
    Excel 2013
    Likes ricevuti
    857
    Likes dati
    781

    Re: Errore run-time 62

    Difficile risponderti senza file di esempio e file .job.
    Su due piedi sembra che il file di testo sia terminato e non ci siano altre righe da importare, ma potrebbe essere altro.
    Allega un file senza dati sensibili

  3. #3
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    1746
    Versione Office
    office pro 2010
    Likes ricevuti
    374
    Likes dati
    206

    Re: Errore run-time 62

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Difficile risponderti senza file di esempio ... i
    Secondo me, Rubik, sei stato troppo diplomatico

    Visto il numero esorbitante di lineinput ed il numero esiguo di controlli EOF(), direi che la macro la si può cestinare senza troppi "ma" e "se"

    Codice: 
        '...
        datifile = Application.GetOpenFilename("Files Job (*.job), *.job")
        '...
        Open datifile For Input As #1
        Do While Not EOF(1)
            Line Input #1, rigadati
            '...
            Do
                Line Input #1, rigadati
                '...
                If Mid$(rigadati, 1, 13) = "[WORK:Plans" Then Exit Do
            Loop While Not rigadati = ""
            '...
            Line Input #1, rigadati
            '...
            Line Input #1, rigadati
            '...
            Line Input #1, rigadati
            '...
            Line Input #1, rigadati
        Loop
        Close
        '...

  4. #4
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    939
    Versione Office
    2010
    Likes ricevuti
    128
    Likes dati
    1

    Re: Errore run-time 62

    il problema è stato già postato qui http://www.excelvba.it/Forum/thread.php?f=1&t=11116 ma non riesco ad ottenere risposte precise

  5. #5
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    1746
    Versione Office
    office pro 2010
    Likes ricevuti
    374
    Likes dati
    206

    Re: Errore run-time 62

    ora sono al cellilare e non riesco a fare molto comunque il concetto è semplice:

    quello che si fa con un file lo si reitera per enne file.
    quindi non si devono mescolare varie macro ma si deve:
    creare la macro che funzioni su tutti i file da processare uno ad uno.

    2- si incapsula tale macro in un ciclo che reitera il processo per enne file:


    il processo du un file sarà del tipo:
    for each file in files

    openfile(file) for input as #1
    Do while eof(1)
    input #1
    ' istruzioni per il file in esame
    loop
    close #1
    next

    ho sicuramente sbagliato la sintassi delle istruzioni dell esempio ma il concetto è corretto:

    1 per ogni file della mia lista di file :for each file in file
    2 apri il file :openfile
    3 processalo fino alla fine do eof(1)... loop
    4 chiudi il file: close #1
    5 torna al punto 1: next

Discussioni Simili

  1. [Risolto] Errore Run time 13 se aggiungo righe in menù a tendina
    Di Kiter nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 17/10/16, 08:24
  2. Errore run-time 9 Indice non incluso nell'intervallo: Help
    Di Giuspy82 nel forum Domande su Excel VBA e MACRO
    Risposte: 27
    Ultimo Messaggio: 20/09/16, 08:12
  3. Errore di run-time 424
    Di Khan nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 15/05/16, 14:50
  4. Errore run-time n. 13 Tipo non corrispondente
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 17/03/16, 12:54
  5. Errore run-time 1004
    Di revenge9 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 05/11/15, 08:52

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •