Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

import articoli

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

import articoli

Postdi anima77 » 19/11/12 00:59

SAlve a tutti,
vorrei un aiuto riguardo all'importazione di alcuni articoli da txt a xls

vi allego cmq un esempio:

Cod art | Campo | Valore |
0003049|AN_00001|DEscrizione articolo|
0003049|AN_00002||
0003049|AN_00004|0003049 |
0003049|AN_00005|004|
0003049|AN_00006|00400|
0003049|AN_00007|00|
0003049|AN_00008|0021|
0003049|AN_00009|0001|
0003049|AN_00010|0000|
0003049|AN_00011| |
0003049|AN_00012|CT|
0003049|AN_00013|S|
0003049|AN_00014|001000|
0003049|AN_00015|013|
0003049|AN_00016|052|
0003049|AN_00017|02075| |
0003049|AN_00018|C|
0003049|AN_00019|000000|
0003049|AN_00020|001000|
0003049|AN_00021|00|
0003049|AN_00022|C|
0003049|AN_00023|00000000|
0003049|AN_00024|0011|0016|0115|901160|
0003049|AN_00025|OS|
0003049|AN_00026| |
0003049|AN_00027||
0003049|AN_00030|000000|
0003049|AN_00031| |
0003049|AN_00032|-02000|
0003049|AN_00033|+03080|
0003049|AN_00034|00|
0003049|BIL_00000|00|000|000000|000000|000|
0003049|LC01_00000|20120730|00000000|000000220|
0003049|BC_00001|8000390009883| |
0003049|AF_00001|002075|

considerando che ho un file txt vorrei importarmi questa lista su un file excel, le colonne dovrebbero essere in totale 38.

potete aiutarmi con una macro almeno i primi 2 righi ( colonne ) ?

saluti.
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Sponsor
 

Re: import articoli

Postdi Flash30005 » 19/11/12 01:09

Ciao Anima77 e benvenuto nel Forum

puoi registrare una macro in una cartella vuota e aprire il file in formato Txt indicando il percorso poi, durante l'importazione, inserirai l'opzione che la tabulazione è determinata dal simbolo "|" (che trovi sul primo tasto a sinistra della tastiera, sotto a Esc)
Ottieni una macro di questo tipo (il mio percorso è C:\Temp ma puoi cambiarlo secondo le tue esigenze)

Codice: Seleziona tutto
Sub ImportaTxt()

    ChDir "C:\Temp"
    Workbooks.OpenText Filename:="C:\Temp\MioTxt.txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
        ), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
    Range("A1").Select
End Sub


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: import articoli

Postdi anima77 » 19/11/12 01:24

ti ringrazio infinitamente per avermi risposto, la macro funziona in parte, e fin qui c'ero arrivato ahce con la classica importazione con delimitato il fatto e che :
0003049|AN_00001|DEscrizione articolo|
0003049|AN_00002||
0003049|AN_00004|0003049 |

dovrebbero andare cosi

colonna 1 colonna 2 colonna 3
codice articolo descrizione barcoe
0003049 testo carticolo 003049

in pratica AN_00001 e una colonna AN_00002 e un'altra colonna.

non so se riesco a farmi capire....
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Flash30005 » 19/11/12 03:10

anima77 ha scritto:non so se riesco a farmi capire....

Non proprio....

Perché non compili almeno due o tre colonne e posti l'immagine?

Potrei non sapere quale sia l'articolo, la descrizione e il barcode

inoltre mi sembra che con un semplice "trasla dati" potresti ottenere quello che desideri ma non ne sono certo fino a quando non vedo come vorresti avere quei dati

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: import articoli

Postdi anima77 » 19/11/12 10:46

si certo, allora :

AN_00001-------------AN_00002--------AN_00004--------AN_00005--------AN_00006
DEscrizione articolo|vuoto............|0003049........|004 |00400 |

e chiaro ? spero.
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Anthony47 » 19/11/12 11:45

Per allegare un file o uno "screenshot" guarda qui: viewtopic.php?f=26&t=80395

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: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: import articoli

Postdi anima77 » 19/11/12 13:38

ma non c'e bisogno che allego un file , nel post di prima e spiegato come deve essere importato, escludendo la prima colonna del tracciato originale, dalla seconda colonna an_0001 fa riferimento a una descrizione di articolo solo che e messo in verticale e non in orizzontale come dovrebbe essere.
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Flash30005 » 19/11/12 13:53

Proviamo così

Codice: Seleziona tutto
Sub ImportaTxt()

    ChDir "C:\Temp"
    Workbooks.OpenText Filename:="C:\Temp\MioTxt.txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
        ), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1:O41").Select
    Selection.Copy
    Range("R1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Columns("A:Q").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select

End Sub


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: import articoli

Postdi anima77 » 19/11/12 14:05

CI SIAMO! E QUASI PERFETTO, L'UNICA COSA E CHE IL FILE E COSI.

0003049|AN_00001|FLORA RISO BELL'INSALATA KG.1|
0003049|AN_00002||
0003049|AN_00004|0003049 |
0003049|AN_00005|004|
0003049|AN_00006|00400|
0003049|AN_00007|00|
0003049|AN_00008|0021|
0003049|AN_00009|0001|
0003049|AN_00010|0000|
0003049|AN_00011| |
0003049|AN_00012|CT|
0003049|AN_00013|S|
0003049|AN_00014|001000|
0003049|AN_00015|013|
0003049|AN_00016|052|
0003049|AN_00017|02075| |
0003049|AN_00018|C|
0003049|AN_00019|000000|
0003049|AN_00020|001000|
0003049|AN_00021|00|
0003049|AN_00022|C|
0003049|AN_00023|00000000|
0003049|AN_00024|0011|0016|0115|901160|
0003049|AN_00025|OS|
0003049|AN_00026| |
0003049|AN_00027||
0003049|AN_00030|000000|
0003049|AN_00031| |
0003049|AN_00032|-02000|
0003049|AN_00033|+03080|
0003049|AN_00034|00|
0003049|BIL_00000|00|000|000000|000000|000|
0003049|LC01_00000|20120730|00000000|000000220|
0003049|BC_00001|8000390009883| |
0003049|AF_00001|002075| | | |
0003051|AN_00001|FLORA RISO CLASSICO KG.1|
0003051|AN_00002||
0003051|AN_00004|0003051 |
0003051|AN_00005|004|
0003051|AN_00006|00400|
0003051|AN_00007|00|
0003051|AN_00008|0021|
0003051|AN_00009|0001|
0003051|AN_00010|0000|
0003051|AN_00011| |
0003051|AN_00012|CT|
0003051|AN_00013|S|
0003051|AN_00014|001000|
0003051|AN_00015|013|
0003051|AN_00016|052|
0003051|AN_00017|02075| |
0003051|AN_00018|C|
0003051|AN_00019|000000|
0003051|AN_00020|001000|
0003051|AN_00021|00|
0003051|AN_00022|C|
0003051|AN_00023|00000000|
0003051|AN_00024|0011|0016|0115|901160|
0003051|AN_00025|OS|
0003051|AN_00026| |
0003051|AN_00027||
0003051|AN_00030|000000|
0003051|AN_00031| |
0003051|AN_00032|-02000|
0003051|AN_00033|+03080|
0003051|AN_00034|00|
0003051|BIL_00000|00|000|000000|000000|000|
0003051|LC01_00000|20121109|00000000|000000245|
0003051|BC_00001|8000390008589| |
0003051|AF_00001|002075| | | |
0016002|AN_00001|CONI BIGUSTO x6 PANNA/CIOCCOLATO GR.400|
0016002|AN_00002||
0016002|AN_00004|0016002 |
0016002|AN_00005|010|
0016002|AN_00006|01000|
0016002|AN_00007|00|
0016002|AN_00008|0339|
0016002|AN_00009|0008|
0016002|AN_00010|0333|
0016002|AN_00011|SISA|
0016002|AN_00012|CT|
0016002|AN_00013|S|
0016002|AN_00014|000420|
0016002|AN_00015|011|
0016002|AN_00016|055|
0016002|AN_00017|52739| |
0016002|AN_00018|C|
0016002|AN_00019|000000|
0016002|AN_00020|000600|
0016002|AN_00021|00|
0016002|AN_00022|C|
0016002|AN_00023|00000000|
0016002|AN_00024|0017|0051|0263|900887|
0016002|AN_00025| |
0016002|AN_00026| |
0016002|AN_00027||
0016002|AN_00030|000000|
0016002|AN_00031| |
0016002|AN_00032|+00000|
0016002|AN_00033|+01000|
0016002|AN_00034|00|
0016002|BIL_00000|00|000|000000|000000|000|
0016002|LC01_00000|20120608|00000000|000000185|
0016002|BC_00001|8013038007912| |
0016002|AF_00001|052739| | | |

E QUINDI CI DOVREBBERO ESSERE LE TRE RIGHE CONTENENTE 3 PRODOTTI DIVERSI.
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Flash30005 » 19/11/12 14:46

Se continui a cambiare le specifiche non finiamo più

prova questa

Codice: Seleziona tutto
Sub ImportaTxt2()

    ChDir "C:\Temp"
    Workbooks.OpenText Filename:="C:\Temp\MioTxt.txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
        ), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
    Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Sheets.Add.Name = "Destinaz"
    Sheets("MioTxt").Select
    Range("A1:AZ200").Copy
    Sheets("Destinaz").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
    Range("A1").Select
        Application.CutCopyMode = False
    Range("A1").Select

End Sub


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: import articoli

Postdi anima77 » 19/11/12 19:19

salve flash io ti chiedo scusa ma non vorrei far capire male, ti allego un esempio : http://www.sicilypos.com/download/esempio.jpg
di come dovrebbe venire....
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Flash30005 » 19/11/12 19:42

Potrebbe anche venire così ma non vedo nessuna di quelle descrizioni e poi mi sembra anche molto lontana rispetto a come hai impostato il quesito iniziale e successivamente.

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: import articoli

Postdi anima77 » 20/11/12 01:13

Sub ImportaTxt2()

ChDir "C:\Temp"
Workbooks.OpenText Filename:="C:\Temp\MIOTXT.txt", Origin:=xlMSDOS, _
StartRow:=6, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Sheets.Add.Name = "Destinaz"
Sheets("MioTxt").Select
Range("B1:AI34").Copy
Sheets("Destinaz").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
Range("A1").Select
Application.CutCopyMode = False
Range("A1").Select

End Sub

Sub Macro2()
'
' Macro2 Macro
'

'
Rows("2:6").Select
Selection.ClearContents
End Sub

Sub Macro6()
'
' Macro6 Macro
'

'
Sheets("MioTxt").Select
ActiveWindow.SmallScroll Down:=30
Range("B36:B66").Select
Selection.Copy
Sheets("Destinaz").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("MioTxt").Select
ActiveWindow.SmallScroll Down:=15
Range("B106:B139").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Destinaz").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("MioTxt").Select
ActiveWindow.SmallScroll Down:=18
Range("B141:B174").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Destinaz").Select
Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub


salve sono riuscito a mettere questa macro, per importare tutte le altre colonne, ma cosi come strutturata mi importa solo 3 righe, quando invece sono un totale di oltre 35.000
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Anthony47 » 20/11/12 10:01

Forse era meglio se allegavi un file quando te lo suggerivamo.
Comunque, lavorando sul test pubblicato qui: viewtopic.php?f=26&t=97639#p560695 ho prodotto la seguente macro:
Sub animaz()
Codice: Seleziona tutto
Dim I As Long, JJ As Long, myColS, ExRow, aaa, bbb, ccc
'
Sheets("Foglio1").Select
For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(I, 1) <> "" Then
    myColS = Split(Cells(I, 1), "|")
    ExRow = Application.Match(CDbl(myColS(0)), Sheets("Foglio2").Range("A1:A65000"), 0)
    If IsError(ExRow) Then
        ExRow = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row + 1
        Sheets("Foglio2").Cells(ExRow, 1) = CDbl(myColS(0))
    End If
For JJ = 2 To UBound(myColS, 1)
    Sheets("Foglio2").Cells(ExRow, Columns.Count).End(xlToLeft).Offset(0, 1) = myColS(JJ) '& " "
Next JJ
   
End If
Next I
End Sub

Copia il contenuto del tuo file di origine in col A di Foglio1, senza nessun "Testo in colonna".
Inserisci la macro in un Modulo standard del vba e mandala in esecuzione.
Ti verra' creato su Foglio2 (che e' meglio che sia vuoto) una lista che e' la mia interpretazione di quanto detto e non detto nella discussione: ho usato il primo campo per determinare l' appartenenza della riga a una voce, ho ignorato il secondo campo di ogni riga, ho ignorato i campi vuoti.
Se questa logica non e' corretta allora dovresti dire tu quale e' la "logica" (cioe' la regola) che si applica a quell' elenco.

Fai sapere, 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: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: import articoli

Postdi anima77 » 20/11/12 15:25

anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53

Re: import articoli

Postdi Anthony47 » 20/11/12 15:42

Questa immagine l' ho gia' vista (ed e' parziale...), e a me pare che il risultato che la macro produce sia coerente; a te no?

Comunque non vorrei essere io a capire il significato, nella tua organizzazione, dei campi presente sul sorgente; insomma mi aspetto che sia tu a descrivere che cosa importare e che cosa ignorare.

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: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: import articoli

Postdi anima77 » 22/11/12 00:01

salve, a tutti,
mi scuso per l'assenza e per il ritardo, l'utima macro funziona perfettamente , a quello che volevo, il risultato e soddisfacente, gli articoli sono stati importati corretamente.

ringrazio tutti per l'aiuto immenso che mi avete dato e ve ne sarò grato all'infinito.

saluti anima.
anima77
Utente Junior
 
Post: 11
Iscritto il: 19/11/12 00:53


Torna a Applicazioni Office Windows


Topic correlati a "import articoli":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti