Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
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


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Oracle apre una seconda Region per il cl...
Euro NCAP 2026, cambiano completamente i...
In Russia centinaia di Porsche diventano...
Gli operatori mobile italiani offrono se...
realme GT 8 Pro in promo lancio con 100€...
Autostrade, dal 2026 arrivano i rimborsi...
Carenza di memoria flash NAND e prezzi a...
EA Sports FC 26 fa felici i fan: tornano...
Anthropic studia i suoi ingegneri: l'IA ...
Kioxia Exceria Plus G4: l'SSD PCIe 5.0 p...
HBO Max debutta in Italia: data, contenu...
Qual è lo smartphone Android pi&u...
Il camion elettrico Semi è davver...
Instagram limita gli hashtag a tre per p...
Le migliori offerte Amazon del momento: ...
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: 16:02.


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