Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146

    [VBA] Importare dati non formattati in Excel

    Ciao ragazzi

    Mi servirebbe una funzione per prendere dei dati da un file di testo scritto così:

    codice:
    parametro1: valore1
    parametro2: valore2
    parametro3: valore3
    parametro4: valore4
    parametro5: valore5
    
    parametro1: valore1
    parametro2: valore2
    parametro3: valore3
    parametro4: valore4
    parametro5: valore5
    
    .....
    ed inserirli in un file excel che abbia per intestazione:

    parametroEx1 | parametroEx2 | parametroEx3 | parametroEx4 | parametroEx5

    Parametro di testo corrisponde sempre allo stesso parametroExcel, ma non nell'ordine: es. parametro1 corrisponde sempre a parametroEx3 e così via.

    Spero di essere stato chiaro. Purtroppo non posso usare il wizard d'importazione perchè l'"a capo" viene inteso come nuovo record...
    Qualche anima pìa mi scriverebbe qualche linea di codice che almeno mi guidi nella stesura della funzione??


    Grazie in anticipo
    Per Aspera Ad Astra
    -----------------------------------------

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146

    [VBA o VB.net] Importare dati non formattati in Excel

    Pensavo che in fondo potrebbe essere anche in VB...
    Per Aspera Ad Astra
    -----------------------------------------

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319

    Moderazione

    Ad ogni modo dovresti postare nella sezione dedicata a VB....

    Ti sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146
    Ok!
    Scusa.....
    Per Aspera Ad Astra
    -----------------------------------------

  5. #5

    Re: [VBA] Importare dati non formattati in Excel

    Originariamente inviato da Disastro
    Ciao ragazzi

    Mi servirebbe una funzione per prendere dei dati da un file di testo scritto così:

    codice:
    parametro1: valore1
    parametro2: valore2
    parametro3: valore3
    parametro4: valore4
    parametro5: valore5
    
    parametro1: valore1
    parametro2: valore2
    parametro3: valore3
    parametro4: valore4
    parametro5: valore5
    
    .....
    ed inserirli in un file excel che abbia per intestazione:

    parametroEx1 | parametroEx2 | parametroEx3 | parametroEx4 | parametroEx5

    Parametro di testo corrisponde sempre allo stesso parametroExcel, ma non nell'ordine: es. parametro1 corrisponde sempre a parametroEx3 e così via.

    Spero di essere stato chiaro. Purtroppo non posso usare il wizard d'importazione perchè l'"a capo" viene inteso come nuovo record...
    Qualche anima pìa mi scriverebbe qualche linea di codice che almeno mi guidi nella stesura della funzione??


    Grazie in anticipo
    Ciao !
    Ho provato a fare un foglio xls con un pulsante che esegue quanto richiedi...

    Il codice presuppone che il file "Dati.txt" sia nella stessa directory del foglio Excel (non dovresti avere difficolta' ad adattarlo alle tue necessita').

    L'ho provato con questi dati, e funziona (se ho bene interpretato le tue richieste):
    codice:
    parametro1: valore1
    parametro2: valore2
    parametro3: valore3
    parametro4: valore4
    parametro5: valore5
    
    parametro1: valore11
    parametro2: valore22
    parametro3: valore33
    parametro4: valore44
    parametro5: valore55
    
    parametro1: valore1100
    parametro2: valore2200
    SGRUNT: vedo solo ora che non si possono allegare file .xls...

    Questo e' il codice, devi solo mettere un CommandButton (nome: cmdImporta) su un foglio:
    codice:
    Option Explicit
    Const Npar As Integer = 5  'numero parametri
    
    Private Sub cmdImporta_Click()
       Dim i As Integer, L As String, P As String, V As String
       Dim d As Integer, c As Integer, N As Integer
       
       Range("B2:Z99").ClearContents  'pulisce la tabella dati e i contatori
       Open ActiveWorkbook.Path & "\Dati.txt" For Input As #1
       Do
          Line Input #1, L
          L = Trim$(L) 'elimina gli eventuali spazi
          d = InStr(1, L, ":") 'cerca separatore in "par:valore"
          If d Then
             P = LCase$(Left$(L, d - 1))     'parametro, convertito in minuscolo
             V = Mid$(L, d + 1)     'valore
             'seleziona la colonna Excel in base al parametro (in minuscolo)
             Select Case P
             Case "parametro1": c = 2   'qui devi impostare la TUA corrispondenza tra par e parEx
             Case "parametro2": c = 3
             Case "parametro3": c = 4
             Case "parametro4": c = 5
             Case "parametro5": c = 6
             Case Else
                'cosa facciamo se il parametro non corrisponde a nessuno ?
                c = 7 'mettiamolo in una colonna a parte, va'....
             End Select
             N = Cells(2, c)         'numero di valori finora rilevati
             N = N + 1                'incrementa il progressivo
             Cells(2, c) = N          'e riportalo sul foglio
             Cells(N + 2, c) = V    'con il corrispondente valore
          Else
             'non ci sono i ":" quindi non considero la riga
          End If
       Loop Until EOF(1)    'finche' non e' finito il file
       Close #1
    End Sub
    prova un po', se puo' esserti utile....
    IceCube_HT (VB6 fan Club)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146
    Grande! Lo provo subito e ti faccio sapere!
    Ti ringrazio tantissimo!
    Per Aspera Ad Astra
    -----------------------------------------

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.