Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro per importare dati file txt in excel

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 10/04/09 17:51

Per Alaves12
La macro l'ho creata e la posto qui ma allego anche il file in quanto devi posizionare la cartella Poker nell'archivio in C:\ in maniera da avere, almeno all'inizio, il percorso C:\Poker\Poker.txt (poi semmai lo cambi all'interno della macro)
Codice: Seleziona tutto
Sub Caricamento()
Dim vettore(54) As String
Dim tabella(30, 3)
tabella(1, 1) = 1: tabella(1, 2) = 20: tabella(1, 3) = 9     '<Torneo
tabella(2, 1) = 2: tabella(2, 2) = 10: tabella(2, 3) = 4     '<Buy
tabella(3, 1) = 3: tabella(3, 2) = 1: tabella(3, 3) = 1      '<giocatori
tabella(4, 1) = 4: tabella(4, 2) = 1: tabella(4, 3) = 1      '<<< non usata
tabella(5, 1) = 5: tabella(5, 2) = 17: tabella(5, 3) = 10     '<Data
tabella(17, 1) = 17: tabella(17, 2) = 20: tabella(17, 3) = 1 '<Classifica
tabella(18, 1) = 18: tabella(18, 2) = 1: tabella(18, 3) = 1  '<<< vuota
tabella(19, 1) = 19: tabella(19, 2) = 1: tabella(19, 3) = 2  '<Mani
tabella(20, 1) = 20: tabella(20, 2) = 1: tabella(20, 3) = 50 '<Small
tabella(21, 1) = 21: tabella(21, 2) = 1: tabella(21, 3) = 50 '<Big
tabella(22, 1) = 22: tabella(22, 2) = 1: tabella(22, 3) = 50 '<Altro
tabella(23, 1) = 23: tabella(23, 2) = 1: tabella(23, 3) = 1  '<<< non usata
tabella(24, 1) = 24: tabella(24, 2) = 20: tabella(24, 3) = 9 '<<< vuota
tabella(25, 1) = 25: tabella(25, 2) = 30: tabella(25, 3) = 1 '<<< non usata
tabella(26, 1) = 26: tabella(26, 2) = 31: tabella(26, 3) = 1 '<<Piatti SD
Open "C:\Poker\Poker.txt" For Input As #1         '<<< PERCORSO FILE TXT
x = 0
Y = 0
Do Until EOF(1)
     Line Input #1, riga
     If Mid(riga, 1, 5) = "Poker" And Y <> 0 Then
     Worksheets("Tornei").Select
        UR = Worksheets("Tornei").Range("A" & Rows.Count).End(xlUp).Row + 1
             Range("A" & UR).Value = vettore(1)
             Range("B" & UR).Value = BuyIn
             Range("C" & UR).Value = vettore(3)
             Range("D" & UR).Value = vettore(5)
             Range("E" & UR).Value = vettore(17)
             Range("F" & UR).FormulaR1C1 = "=IF(RC[-1]=1,(RC[-4]*RC[-3]-0.5*RC[-3])/2,IF(RC[-1]=2,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.6,IF(RC[-1]=3,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.4,"""")))"
             Range("G" & UR).Value = vettore(19)
             Range("H" & UR).Value = vettore(20)
             Range("I" & UR).Value = vettore(21)
             Range("J" & UR).Value = vettore(22)
             Range("K" & UR).Value = vettore(26)
             Range("L" & UR).Value = Elimin
             x = 0
     End If
     x = x + 1
     If (x > 5 And x < 17) Or (x > 22 And x < 26) Then GoTo saltaR
     If x = 27 Then
     Y = 1
     x = x + 1
     GoTo saltaR
     End If
     vettore(x) = Mid(riga, tabella(x, 2), tabella(x, 3))
     If x = 2 Then
     QuotaPart = Mid(riga, 16, 4)
     BuyIn = Val(vettore(x)) + Val(QuotaPart)
     End If
     If x = 17 Then Elimin = Mid(riga, 51, 10)
     If x > 19 And x < 23 Then
        vettore(x) = Mid(vettore(x), InStrRev(vettore(x), "(") + 1, InStrRev(vettore(x), "%") - InStrRev(vettore(x), "(") - 1)
     End If
saltaR:
     Loop
     Close #1
     Worksheets("Tornei").Select
        UR = Worksheets("Tornei").Range("A" & Rows.Count).End(xlUp).Row + 1
             Range("A" & UR).Value = vettore(1)
             Range("B" & UR).Value = BuyIn
             Range("C" & UR).Value = vettore(3)
             Range("D" & UR).Value = vettore(5)
             Range("E" & UR).Value = vettore(17)
             Range("F" & UR).FormulaR1C1 = "=IF(RC[-1]=1,(RC[-4]*RC[-3]-0.5*RC[-3])/2,IF(RC[-1]=2,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.6,IF(RC[-1]=3,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.4,"""")))"
             Range("G" & UR).Value = vettore(19)
             Range("H" & UR).Value = vettore(20)
             Range("I" & UR).Value = vettore(21)
             Range("J" & UR).Value = vettore(22)
             Range("K" & UR).Value = vettore(26)
             Range("L" & UR).Value = Elimin
DataF = Mid(vettore(5), 7, 4) & Mid(vettore(5), 4, 2) & Mid(vettore(5), 1, 2)
inpfile = "C:\Poker\Poker.txt"
outfile = "C:\Poker\" & DataF & "_Poker.txt"

On Error Resume Next
FileCopy inpfile, outfile
On Error GoTo 0
End Sub


Vedi se va bene e fai sapere

Ciao
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 10/04/09 17:59

Per Biancocandido,
Mi sembra un po' strano che non funzionino i comandi dos, quale S.O. hai?
Purtroppo il comando bat è stato realizzato proprio per creare la lista altrimenti sarai costretto a caricare i dati un file alla volta come era in una delle prime versioni.
Oppure se mi dici la versione di Office che hai in ufficio si potrebbe tentare con Filesearch (non tutte le versioni di office hanno questa opzione).
Nel caso, per il caricamento multiplo direttamente in excel, ci darà anche un aiutino Antony

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 10/04/09 23:50

Ciao Flash30005,
a casa il programma funziona,
ma
purtroppo al lavoro l'uso del prompt dos, ci è inibito
.
il S.O: è XP professional
con Office 2007
a pré ciao
bianco
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Anthony47 » 11/04/09 01:53

Non ho seguito tutta la conversazione, ma mi pare che il problema verte su come selezionare il/i file da processare.

Venuta meno l' opzione ".bat", ed assente (su 2007) l' opzione Application.FileSearch si potrebbe usare Application.FileDialog, ad esempio:
Codice: Seleziona tutto
Sub ScegliFile()
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Text", "*.txt", 1
        .Show

     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
For I=1 to .SelectedItems.Count
     FullNome = .SelectedItems(I)     'Directory e Nome del file selezionato
    'istruzioni per processare quel file
Next I
    End With
Esci:
End Sub

La macro restituisce nella matrice SelectedItem(n) i nomi file completi (path + nome) scelti dall' utente usando l' interfaccia tipica di windows (quella che compare quando si fa, ad es, File /Apri), che vanno processati.

Spero che lo spunto sia sufficiente, per evitarmi di leggere i dettagli dei tanti messaggi nella conversazione.
Comunque sono qua.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 11/04/09 13:25

Ciao Anthony,
ti ringrazio per il tuo intervento, ma date le mie limitatissime conoscenze in vba non sò come poter incorporare la macro sceglifile() nella macro creata da flash3005, che posto qui:
Codice: Seleziona tutto
Sub Caricamento()
abc = Shell("""" & "C:\SLA\CreaElenco.Bat" & """", 2)
Open "C:\SLA\Elenco.cfg" For Input As #1

Do Until EOF(1)
    Line Input #1, riga0
    Open "C:\SLA\" & riga0 For Input As #2
        Do Until EOF(2)
            Line Input #2, riga
            Ev = Mid(riga, 1, 1)
            CC = 3
            If Ev = "U" Then CC = 5
            Matr = Mid(riga, 2, 9)
            Giorno = Mid(riga, 11, 8)
            DataF = Mid(Giorno, 5, 4) & Mid(Giorno, 3, 2) & Mid(Giorno, 1, 2)
            Ora = Mid(riga, 19, 8)
            Giorno = Format(Mid(Giorno, 1, 2) & "-" & Mid(Giorno, 3, 2) & "-" & Mid(Giorno, 5, 4), "mm-dd-yyyy")
            Ora = Mid(Ora, 1, 2) & ":" & Mid(Ora, 3, 2) & ":" & Mid(Ora, 5, 2)
            esci = 0
            Sheets(Matr).Select
            Y = Range("B" & Rows.Count).End(xlUp).Row + 1
            For I = 2 To Y
                If Sheets(Matr).Cells(I, 2).Value = Matr Then
                    If Format(Sheets(Matr).Cells(I, CC + 2).Value, "mm-dd-yyyy") = Giorno Or Format(Sheets(Matr).Cells(I, CC - 2).Value, "mm-dd-yyyy") = Giorno Then
                        Sheets(Matr).Cells(I, CC).Value = Giorno
                        Sheets(Matr).Cells(I, CC + 1).Value = Ora
                        esci = 1
                        Exit For
                    End If
                End If
            Next I
            If esci = 1 Then GoTo salta
            Sheets(Matr).Cells(Y, 1).FormulaR1C1 = "=IF(RC[1]="""","""",VLOOKUP(RC[1],Elenco!R2C:R300C[1],2,FALSE))"
            Sheets(Matr).Cells(Y, 2).Value = Matr
            Sheets(Matr).Cells(Y, 7).FormulaR1C1 = "=RC[-1]-RC[-3]-R1C[1]"     '<<<<< AGGIUNGERE QUESTA RIGA
            Sheets(Matr).Cells(Y, CC).Value = Giorno
            Sheets(Matr).Cells(Y, CC + 1).Value = Ora
            Y = Y + 1
salta:
        Loop
    Close #2
    inpfile = "C:\SLA\" & riga0
    outfile = "C:\SLA\ArchivioTxt\" & riga0

    On Error Resume Next
    FileCopy inpfile, outfile
    Kill "C:\SLA\" & riga0
    On Error GoTo 0
Loop
Close #1
End Sub


sperando in un ulteriore intervento da parte vostra,
rimango fiducioso in attesa
un abbraccio,
saluti
bianco
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 11/04/09 13:41

Io ho provato la macro di Anthony che permette di accedere alla cartella del file, lo si deve selezionare e poi mettendo tutta la macro interessata permette di importare quel file (uno alla volta).
Non so a questo punto se è meglio riprendere una delle versioni precedenti e caricare un file alla volta (senza File.bat) o usare questa macro.

Bianco, informaci su come vuoi agire

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 11/04/09 14:16

Ciao Flash,
ho caricato la macro che ci esponeva Anthony e vedendo che ci dava un'alternativa all'uso del file .bat mi è sembrato ovvio optare per quella direzione, e chiedevo di intervenire entrambe in modo da non dover modificare più di tanto l'ultima versione della macro che avevi postato tu, ho notato che aprendo la finestra tipica di windows (quella che compare quando si fa, ad es, File /Apri), con la macro di Anthony, ci dava la possibilità di selezionare i file non solo uno alla volta ma tutti quelli che ci interessano, rimango sempre fiducioso in attesa di un vostro ulteriore consiglio.
Un cordiale abbraccio e un augurio di Buona Pasqua serena.
ciao bianco
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 11/04/09 14:55

Per Alaves12
Ho modificato la macro precedentemente postata in quanto il costo partecipazione potrebbe cambiare a seconda del torneo e quindi puntare ad una cifra potrebbe dare un dato errato se il costo dovesse essere $10.00 invece che $6.00
quindi riposto il tutto.
Codice: Seleziona tutto
Public vettore(54) As String, BuyIn, Elimin As Double
Sub Caricamento()
Dim tabella(30, 3)
tabella(1, 1) = 1: tabella(1, 2) = 20: tabella(1, 3) = 9     '<Torneo
tabella(2, 1) = 2: tabella(2, 2) = 1: tabella(2, 3) = 21     '<Buy
tabella(3, 1) = 3: tabella(3, 2) = 1: tabella(3, 3) = 1      '<giocatori
tabella(4, 1) = 4: tabella(4, 2) = 1: tabella(4, 3) = 1      '<<< non usata
tabella(5, 1) = 5: tabella(5, 2) = 17: tabella(5, 3) = 10     '<Data
tabella(17, 1) = 17: tabella(17, 2) = 20: tabella(17, 3) = 1 '<Classifica
tabella(18, 1) = 18: tabella(18, 2) = 1: tabella(18, 3) = 1  '<<< vuota
tabella(19, 1) = 19: tabella(19, 2) = 1: tabella(19, 3) = 2  '<Mani
tabella(20, 1) = 20: tabella(20, 2) = 1: tabella(20, 3) = 50 '<Small
tabella(21, 1) = 21: tabella(21, 2) = 1: tabella(21, 3) = 50 '<Big
tabella(22, 1) = 22: tabella(22, 2) = 1: tabella(22, 3) = 50 '<Altro
tabella(23, 1) = 23: tabella(23, 2) = 1: tabella(23, 3) = 1  '<<< non usata
tabella(24, 1) = 24: tabella(24, 2) = 20: tabella(24, 3) = 9 '<<< vuota
tabella(25, 1) = 25: tabella(25, 2) = 30: tabella(25, 3) = 1 '<<< non usata
tabella(26, 1) = 26: tabella(26, 2) = 31: tabella(26, 3) = 1 '<<Piatti SD
Open "C:\Poker\Poker.txt" For Input As #1
x = 0
Y = 0
Do Until EOF(1)
     Line Input #1, Riga
     If Mid(Riga, 1, 5) = "Poker" And Y <> 0 Then
        Call Compila
        x = 0
     End If
     x = x + 1
     If (x > 5 And x < 17) Or (x > 22 And x < 26) Then GoTo saltaR
     If x = 27 Then
        Y = 1
        x = x + 1
        GoTo saltaR
     End If
     vettore(x) = Mid(Riga, tabella(x, 2), tabella(x, 3))
     If x = 2 Then
        QuotaPart = Mid(vettore(x), InStrRev(vettore(x), "$") + 1, 4)
        vettore(x) = Mid(vettore(x), InStrRev(vettore(x), ":") + 3, InStrRev(vettore(x), "/") - InStrRev(vettore(x), ":") - 3)
        BuyIn = Val(vettore(x)) + Val(QuotaPart)
     End If
     If x = 17 Then Elimin = Mid(Riga, 51, 10)
     If x > 19 And x < 23 Then
        vettore(x) = Mid(vettore(x), InStrRev(vettore(x), "(") + 1, InStrRev(vettore(x), "%") - InStrRev(vettore(x), "(") - 1)
     End If
saltaR:
     Loop
     Close #1
Call Compila
DataF = Mid(vettore(5), 7, 4) & Mid(vettore(5), 4, 2) & Mid(vettore(5), 1, 2)
inpfile = "C:\Poker\Poker.txt"
outfile = "C:\Poker\" & DataF & "_Poker.txt"

On Error Resume Next
FileCopy inpfile, outfile
On Error GoTo 0
End Sub
Sub Compila()
     Worksheets("Tornei").Select
        UR = Worksheets("Tornei").Range("A" & Rows.Count).End(xlUp).Row + 1
             Range("A" & UR).Value = vettore(1)
             Range("B" & UR).Value = BuyIn
             Range("C" & UR).Value = vettore(3)
             Range("D" & UR).Value = vettore(5)
             Range("E" & UR).Value = vettore(17)
             Range("F" & UR).FormulaR1C1 = "=IF(RC[-1]=1,(RC[-4]*RC[-3]-0.5*RC[-3])/2,IF(RC[-1]=2,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.6,IF(RC[-1]=3,(RC[-4]*RC[-3]-0.5*RC[-3])/2*0.4,"""")))"
             Range("G" & UR).Value = vettore(19)
             Range("H" & UR).Value = vettore(20)
             Range("I" & UR).Value = vettore(21)
             Range("J" & UR).Value = vettore(22)
             Range("K" & UR).Value = vettore(26)
             Range("L" & UR).Value = Elimin
End Sub


Altre migliorie effettuate:
1) creata subroutine (Compila) valida per il primo e secondo caricamento dati
2) cliccando 2 volte nella Cella A1 del foglio Tornei si avvia la macro automaticamente


Ciao

Edit del Moderatore: la discussione sul problema di Alaves continua qui: viewtopic.php?f=26&t=79682
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per importare dati file txt in excel

Postdi Anthony47 » 11/04/09 17:54

Per il quesito di biancocandido
Se si puo' trasformare la macro di Flash in una "subroutine" che processa un file alla volta, essa puo' essere chiamata dalla macro principale (quella che ho chiamato ScegliFile) inserendo una "Call SubdiFlash" nel ciclo For I=1 to .SelectedItems.Count/Next.
La SubdiFlash troverebbe il file da processare nella variabile FullNome, che pero' dovra' essere definita in testa al modulo, prima di ScegliFile e di SubdiFlash (Dim FullNome as string).

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 13/04/09 10:45

Con i consigli di Anthony ho provato questa macro che a me sembra funzionare
Codice: Seleziona tutto
Private FullNome
Sub ScegliFile()
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Text", "*.txt", 1
        .Show
     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
For I = 1 To .SelectedItems.Count
     FullNome = .SelectedItems(I)
    Call Caricamento
Next I
    End With
Esci:
End Sub
Sub Caricamento()
    Open FullNome & riga0 For Input As #2
        Do Until EOF(2)
            Line Input #2, riga
            Ev = Mid(riga, 1, 1)
            CC = 3
            If Ev = "U" Then CC = 5
            Matr = Mid(riga, 2, 9)
            Giorno = Mid(riga, 11, 8)
            DataF = Mid(Giorno, 5, 4) & Mid(Giorno, 3, 2) & Mid(Giorno, 1, 2)
            Ora = Mid(riga, 19, 8)
            Giorno = Format(Mid(Giorno, 1, 2) & "-" & Mid(Giorno, 3, 2) & "-" & Mid(Giorno, 5, 4), "mm-dd-yyyy")
            Ora = Mid(Ora, 1, 2) & ":" & Mid(Ora, 3, 2) & ":" & Mid(Ora, 5, 2)
            Esci = 0
            Sheets(Matr).Select
            Y = Range("B" & Rows.Count).End(xlUp).Row + 1
            For I = 2 To Y
                If Sheets(Matr).Cells(I, 2).Value = Matr Then
                    If Format(Sheets(Matr).Cells(I, CC + 2).Value, "mm-dd-yyyy") = Giorno Or Format(Sheets(Matr).Cells(I, CC - 2).Value, "mm-dd-yyyy") = Giorno Then
                        Sheets(Matr).Cells(I, CC).Value = Giorno
                        Sheets(Matr).Cells(I, CC + 1).Value = Ora
                        Esci = 1
                        Exit For
                    End If
                End If
            Next I
            If Esci = 1 Then GoTo salta
            Sheets(Matr).Cells(Y, 1).FormulaR1C1 = "=IF(RC[1]="""","""",VLOOKUP(RC[1],Elenco!R2C:R300C[1],2,FALSE))"
            Sheets(Matr).Cells(Y, 2).Value = Matr
            Sheets(Matr).Cells(Y, 7).FormulaR1C1 = "=RC[-1]-RC[-3]-R1C[1]"
            Sheets(Matr).Cells(Y, CC).Value = Giorno
            Sheets(Matr).Cells(Y, CC + 1).Value = Ora
            Y = Y + 1
salta:
        Loop
    Close #2
End Sub

Ricordati di dichiarare Public FullNome (come scritto qui sopra)
Poi con la macro di ScegliFile selezionerai i file nella directory
la macro Caricamento processera ogni file selezionato

Fai sapere

P.s. Al momento ho tolto la routine (l'ultima parte) che archiviava il file processati nella directory Archivio (per realizzarla mi occorre un po' di tempo che ora non ho, se la ritieni necessaria la posterò più là)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 14/04/09 10:31

Ciao Flash30005,
Spero vivamente che la mia "rottura di scatole" non abbia influito molto nel periodo delle feste pasquali, :)
ho copiato la macro postata nel file sla3.xls mandatomi in precedenza, fatte le modifiche consigliate, il risultato
che mi dà una volta avviata la macro "sceglifile()" è il seguente:
Immagine,
l'errore lo segnala all'interno della macro "caricamento()" e mi dice "Indice non trovato".
Rimango fiducioso in attesa,
ciao
bianco
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 14/04/09 13:22

Quel tipo di errore si verifica quando non è attivo il foglio di riferimento (molto probabilmente avevi aperto anche un altro file e non era attivo SLA) per ovviare all'inconveniente o ti poni con excel su SLA3.xls oppure dovrai aggiungere Worksheets ad ogni Sheets che incontri nella macro, lo puoi fare anche con trova/sostituisci in trova metterai
Sheets( e in sostituisci metterai Worksheets( inserisci la parentesi "(" sia dopo sheets che dopo worksheets e, per sicurezza, controlla ogni sostituzione.

Fai sapere
Ciao


P.s. Non ti preoccupare per la Pasqua c'è stata solo una "rottura di uova" :lol:
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per importare dati file txt in excel

Postdi alaves12 » 14/04/09 14:58

Grazie Flash !
Apro un nuovo argomento per non sovrappormi con Biancocandido55 cui vanno le mie scuse.

Paolo
alaves12
Utente Junior
 
Post: 21
Iscritto il: 09/04/09 11:20

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 15/04/09 10:04

Ciao Flash3005,
Fortunatamente si sono rotte solo le uova Immagine, ho fatto le modifiche che mi hai detto ma non ci sono

stati cambiamenti di nessun tipo Immagine, fiducioso, rimango in attesa di eventuali sviluppi.
Un abbraccio,
biancocandido Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Anthony47 » 15/04/09 15:07

Al momento dell' errore, quale e' il valore assunto dalla variabile Matr?
(basta andare col cursore del mouse sul nome della variabile, senza cliccare; dopo qualche secondo compare un valore)

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 15/04/09 16:23

Ciao Anthony,

ho fatto come mi hai chiesto e il valore che compare è questo

Immagine,

vedendo il file, richiama la cella dove è inserita la 1ª matrice, come da quest'altra immagine

Immagine,
nei passi successivi all'immagine postata del foglio, ho provato ad inserire manualmente un'altro foglio nominandolo con il numero della matrice ed ho rieseguito la macro sceglifile(), che ha riempito SI i campi inerenti la matricola, il cognome, la data e l'ora con i dati di "PIPPO", ma poi si è interrotta di nuovo e mi ha ridato errore di prima ma con il valore diverso, cioè il valore che mi dava era riferito alla 2ª matrice
Matr ="ZL0987654"
che è quella di pluto.
E' come se la macro per funzionare deve avere già inseriti i fogli nominati con le matrici!!
Rimango in attesa,
un abbraccio
biancocandido Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Anthony47 » 15/04/09 16:34

Se il foglio specificato in Matr non esiste, allora avrai un errore. Mi pare sia questo il tuo caso.
Lascerei a Flash pero' debuggare il problema: non avendo seguito bene la discussione non mi e' chiara l' architettura complessiva.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 15/04/09 16:49

Ciao Anthony,
penso anch'io che sia così, ora mi ci metto un pò e riprovo il tutto inserendo i fogli con le proprie matrici, spero che anche flash30005 stia leggendo l'evolversi del topic e intervenga.
A Frappè.
Ciao
biancocandido Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi biancocandido55 » 15/04/09 17:21

Ciao ragazzi,
allora come avevo detto, ho provato ad inserire i fogli nominandoli con le matrici e caricando i dati di 3 giorni lavorativi il risultato è stato:

FUNZIONA

Siete stati fantastici come sempre, un grazie particolare in primis a Flash30005, scusandomi per le uova rotte (pasquali) :lol: :lol: , in secundis ma non da meno ad Anthony per la sua immancabile collaborazione.

Vi ringrazio come sempre di tutto
un abbraccio
biancocandido Immagine

P.S. spero che ormai a festa finita, non ci siano altre uova da rompere. :lol: :lol: :lol: :lol: :lol:
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: macro per importare dati file txt in excel

Postdi Flash30005 » 16/04/09 07:38

Leggo solo ora l'inconveniente da te riscontrato ma pensavo fosse chiaro che la macro non crea i fogli.
In uno dei tuoi primi post mi dicesti che i dipendenti erano solo 8 e mi sembrva ridicolo inserire i codici per creare i fogli in automatico anche perché c'è già una routine postata pochi giorni fa per l'utente Danielehi.
Il file SLA3 da me inviato aveva i fogli già battezzati con le matricole.
Penso, invece, sia più utile archiviare in automatico i file txt processati: routine che ho realizzato ma non l'ho disponibile ora, la posterò quanto prima.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "macro per importare dati file txt in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti