Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro è l'ultima evoluzione della gamma Palma. Ma di cosa si tratta? In breve è un dispositivo e-ink da 6,13 pollici che sfida le convenzioni con un display Kaleido 3 a colori, supporto per stilo InkSense Plus, connettività 5G solo dati e alimentato dal sistema operativo Android 15. Con queste caratteristica si configura come qualcosa in più di un semplice e-reader
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-06-2009, 21:13   #1
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
[Excel] Imposrtare dati da txt

SAlve ragazzi ho un file txt formattato in questo modo

Codice:
1,2,3,4,5
6,7,8,9,10

vorrei importarlo in excel mettendo i numeri per colonna e non per riga.


Ps. per riga ci sono riuscito tramite la funzione di importazione dati.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 13:39   #2
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Fammi capire. In pratica vorresti nella colonna a

1
2
3
4
5

nella b

6
7
8
9
10

e così via

oppure tutti nella stessa colonna?
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 14:26   #3
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Puoi provare ad usare la Workbooks.OpenText(), che penso sia l'equivalente VBA della procedura che hai già provato. Un metodo che richiede poco codice ( anche se una nutrita serie di parametri ), ma che non mi convince troppo quanto a flessibilità di utilizzo.

Personalmente la risolverei così ( metto ogni riga trovata nel .txt, in una colonna, iniziando dalla "A" ) :

1. Anzitutto è necessaria questa Function :

Codice:
Private Function LetteraColonna(indiceColonna As Long) As String
    LetteraColonna = Left(Cells(1, indiceColonna).Address(1, 0), InStr(1, Cells(1, indiceColonna).Address(1, 0), "$") - 1)
End Function
2. Codice che fa il lavoro :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim numRigaTxt As Long
    numRigaTxt = 0
    Dim rigaTxt As String
    Dim arrayValRiga() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        numRigaTxt = numRigaTxt + 1
        arrayValRiga = Split(rigaTxt, ",")
        Range(LetteraColonna(numRigaTxt) & "1:" & LetteraColonna(numRigaTxt) & (UBound(arrayValRiga) + 1)) = WorksheetFunction.Transpose(arrayValRiga)
    Loop
    Close FF
Chiaramente qui posso fare quello che voglio, impostare la colonna e la riga da cui partire, e personalizzarmela a piacere... Prova...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:10   #4
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da john_revelator Guarda i messaggi
Fammi capire. In pratica vorresti nella colonna a

1
2
3
4
5

nella b

6
7
8
9
10

e così via

oppure tutti nella stessa colonna?
Tutti nella stessa colonna.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:11   #5
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Puoi provare ad usare la Workbooks.OpenText(), che penso sia l'equivalente VBA della procedura che hai già provato. Un metodo che richiede poco codice ( anche se una nutrita serie di parametri ), ma che non mi convince troppo quanto a flessibilità di utilizzo.

Personalmente la risolverei così ( metto ogni riga trovata nel .txt, in una colonna, iniziando dalla "A" ) :

1. Anzitutto è necessaria questa Function :

Codice:
Private Function LetteraColonna(indiceColonna As Long) As String
    LetteraColonna = Left(Cells(1, indiceColonna).Address(1, 0), InStr(1, Cells(1, indiceColonna).Address(1, 0), "$") - 1)
End Function
2. Codice che fa il lavoro :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim numRigaTxt As Long
    numRigaTxt = 0
    Dim rigaTxt As String
    Dim arrayValRiga() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        numRigaTxt = numRigaTxt + 1
        arrayValRiga = Split(rigaTxt, ",")
        Range(LetteraColonna(numRigaTxt) & "1:" & LetteraColonna(numRigaTxt) & (UBound(arrayValRiga) + 1)) = WorksheetFunction.Transpose(arrayValRiga)
    Loop
    Close FF
Chiaramente qui posso fare quello che voglio, impostare la colonna e la riga da cui partire, e personalizzarmela a piacere... Prova...
Ehmmm... non ho mai avuto a che fare con macro e programmazione su excel

Potresti darmi qualche diritta ? Grazie
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:29   #6
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
Tutti nella stessa colonna.
Se li devi mettere tutti in una colonna io risolverei con la powershell.
Ad esempio a questo link

http://www.hwupgrade.it/forum/showth...ght=powershell

trovi spiegato come installarla.

Una volta installata sarebbe sufficiente accedervi digitando powershell da esegui, raggiungere come col classico prompt dei comandi la cartella contenente il file di testo e digitare mezza riga di codice

gc tuo_file.txt | % {$_.split(",")} | out-File incolonnati.txt

Avresti così il tuo file pronto per l'importazione.
Comunque il mitico MarcoGG ti risolverà il problema senza installare alcunchè.
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:25   #7
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Beh, se vanno tutti nella stessa colonna ( ad es. A ) è ancora più semplice :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
In questo caso si può anche omettere la Function LetteraColonna() dell'esempio precedente.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:38   #8
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Beh, se vanno tutti nella stessa colonna ( ad es. A ) è ancora più semplice :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
In questo caso si può anche omettere la Function LetteraColonna() dell'esempio precedente.

Grazie mille , ma non ho conoscenze in vba , sono riuscito a capire dove inserire codice in excel ma vorrei capire a cosa deve essere legat questo codice e come fare poi per scegliere il file....
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:48   #9
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
OK ci sono riuscito Ho creato una macro e vi ho associato il tuo codice. Ora dato che non devo usarlo io ma un amico che non capisce nulla di programmazione, volevo chiederti :

- c'è un modo per fargli scegliere il file a da una finestra? e non inserirlo nel codice?

- come dovrà fare lui per eseguire la macro ?

Grazie.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 17:42   #10
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Codice:
Function BrowseForFolder(Optional OpenAt As Variant) As Variant 
     'Function purpose:  To Browser for a user selected folder.
     'If the "OpenAt" path is provided, open the browser at that directory
     'NOTE:  If invalid, it will open at the Desktop level
     
    Dim ShellApp As Object 
     
     'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _ 
    BrowseForFolder(0, "Please choose a folder", 0, OpenAt) 
     
     'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next 
    BrowseForFolder = ShellApp.self.Path 
    On Error Goto 0 
     
     'Destroy the Shell Application
    Set ShellApp = Nothing 
     
     'Check for invalid or non-entries and send to the Invalid error
     'handler if found
     'Valid selections can begin L: (where L is a letter) or
     '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1) 
    Case Is = ":" 
        If Left(BrowseForFolder, 1) = ":" Then Goto Invalid 
    Case Is = "\" 
        If Not Left(BrowseForFolder, 1) = "\" Then Goto Invalid 
    Case Else 
        Goto Invalid 
    End Select 
     
    Exit Function 
     
Invalid: 
     'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False 
     
End Function
Ho trovato questa funzione che visualizza un explorer ma solo per directory , come posso modificarlo per vedere i file e quindi ottenere il path del file da aprire?
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 18:16   #11
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Grazie a tutti , soprattutto a te MarcoGG , ho risolto. Ecco il codice, magari serve a qualcuno...

Codice:
Option Explicit

Function RetrieveFileName()

Dim sFileName As String
 
 RetrieveFileName = Application.GetOpenFilename

    'They have cancelled.

    If RetrieveFileName = "False" Then Exit Function

  
  

End Function

Sub txtToExcel()
Dim result As String
    result = RetrieveFileName
    Select Case result
        Case Is = False
            result = "an invalid file"
        Case Else
            'don't change anything
    End Select

    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open result For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
End Sub
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 21:03   #12
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
Codice:
Option Explicit

Function RetrieveFileName()

Dim sFileName As String
 
 RetrieveFileName = Application.GetOpenFilename

    'They have cancelled.

    If RetrieveFileName = "False" Then Exit Function

  
  

End Function
Non mi è molto simpatica quella Function...
sFileName viene dichiarato e mai usato.
Inoltre è buona regola aggiungere un filtro, in questo caso per restringere il campo di scelta ai soli files di testo .txt :

Codice:
    Dim nomeFileTxt As Variant
    Dim filtroFiles As String
    filtroFiles = "File di testo (*.txt),*.txt"
    nomeFileTxt = Application.GetOpenFilename(filtroFiles, 1, "Scegli un file di testo", "Apri File", False)
    
    If nomeFileTxt = False Then
        MsgBox "Nessun file valido"
    Else
        'Continua l'elaborazione...
        '...
    End If
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 21:39   #13
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non mi è molto simpatica quella Function...
sFileName viene dichiarato e mai usato.
Inoltre è buona regola aggiungere un filtro, in questo caso per restringere il campo di scelta ai soli files di testo .txt :

Codice:
    Dim nomeFileTxt As Variant
    Dim filtroFiles As String
    filtroFiles = "File di testo (*.txt),*.txt"
    nomeFileTxt = Application.GetOpenFilename(filtroFiles, 1, "Scegli un file di testo", "Apri File", False)
    
    If nomeFileTxt = False Then
        MsgBox "Nessun file valido"
    Else
        'Continua l'elaborazione...
        '...
    End If
Sei semplicemente un grande oserei un amico Grazie mille
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2009, 18:25   #14
ses4
Member
 
Iscritto dal: Aug 2008
Messaggi: 178
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
SAlve ragazzi ho un file txt formattato in questo modo

Codice:
1,2,3,4,5
6,7,8,9,10

vorrei importarlo in excel mettendo i numeri per colonna e non per riga.


Ps. per riga ci sono riuscito tramite la funzione di importazione dati.
In alternativa potresti importarlo normalmente, poi dopo aver copiato l'intero intervallo, potresti fare un incolla speciale>valori>trasponi in un nuovo foglio.
Ciao
ses4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
10 anni di DirectX 12: Microsoft festegg...
Bose QuietComfort Ultra (2ª Gen) scendon...
Malware su un traghetto italiano: indagi...
Virtualizzazione: arriva Nutanix with Fl...
Apple applica commissioni ancora troppo ...
AGCOM: il colpo di grazia al telemarketi...
Bari punta sull'elettrico: arrivano 42 a...
Prezzi in salita di 200 dollari in 6 ann...
Google introduce CC: l'AI che riassume l...
Samsung potrebbe produrre il chipset Z99...
Bose Smart Ultra Soundbar è un pr...
Wallbox trifase a prezzo minimo: ricaric...
Digitalizzazione e stampa, i flussi di l...
Samsung ha trovato un modo per produrre ...
SK hynix ottiene la certificazione Intel...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v