Condividi:        

[EXCEL] Macro per sostituzioni valori da elenco

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

[EXCEL] Macro per sostituzioni valori da elenco

Postdi freeword » 16/07/09 10:26

Buongiorno a tutti,

provo a spiegare il mio problema, periodicamente devo importare su excel un file in formato txt, il file contiene i dati delle spedizioni della mia azienda, tra i vari dati che contiene il foglio è presente anche il corriere ma questo viene indicato esclusivamente con il codice, rendendolo poco funzionale.
Ho creato, così, un foglio aggiuntivo che contiene la codifica di tutti i corrieri (Codice Corriere - Ragione Sociale).

A questo punto vorrei realizzare una macro che cerchi il codice corriere nel foglio delle spedizioni, e lo sostituisca con la ragione sociale che si trova nel secondo foglio e tenga in considerazione anche l'aumento dei corrieri.

Purtroppo non ho le conoscenze per poterlo fare, qualche anima pia mi può aiutare?

Grazie
freeword
Newbie
 
Post: 4
Iscritto il: 16/07/09 09:51

Sponsor
 

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi Flash30005 » 16/07/09 13:06

Ciao Freeword e benvenuto
prima che ci avventuriamo nell'importazione di dati da file testo e confrontare i codici esistenti su un foglio per "convertirlo" in Nome o Ragione sociale sarebbe opportuno che inviassi il tuo foglio excel di prova e almeno un file testo.
I dati sensibili li potrai chiaramente modificare con nomi inventati.

Ciao

P.s. per inviare uno o più file dovresti creare un archivio .zip o .rar e utilizzare server host come questo
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi freeword » 16/07/09 14:08

Grazie Flash,

ho uploadato il file excel con i dati importati dal file txt, e non ci sono informazioni sensibili; lo puoi trovare qui:

http://rapidshare.com/files/256452604/Sped.zip.html

Come puoi vedere il file è composto da 2 fogli: Corrieri e Spedizioni
In corrieri i dati sono suddivisi per le colonne CodCorr (Codice Corriere) e DescCorr (Ragione Sociale), Mentre in spedizioni nella colonna E troviamo gli stessi codici corrieri.
A questo punto vorrei realizzzare una macro che cerchi i valori di CodCorr nella colonna E di spedizioni e sostituisca il codice con la Ragione Sociale.
Inoltre vorrei puntualizzare il fatto che la lista dei corrieri non è fissa ma viene aggiornata prima di importare il file di testo.

Grazie per l'interessamento
freeword
Newbie
 
Post: 4
Iscritto il: 16/07/09 09:51

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi Anthony47 » 16/07/09 15:13

Se ho capito bene, ti basta usare la funzione Cerca.Vert in col G del foglio Spedizioni; es in G2:
Codice: Seleziona tutto
=CERCA.VERT(E2;Corrieri!A:B;2;0)
poi copi questa formula in verticale quanto basta.

Se non e' cosi', posta ancora.
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi Flash30005 » 19/07/09 21:23

freeword ha scritto:... periodicamente devo importare su excel un file in formato txt, il file contiene i dati delle spedizioni della mia azienda, ...


Nel file da te postato non c'è alcun file testo e nemmeno il foglio excel con i dati del file testo importati,
cosa dovremmo fare con la tabella CodiceCorr DescrCorr?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi freeword » 20/07/09 11:17

Ciao Flash30005,

grazie per il tuo interessamento, prima di risponderti sono andato a scaricare su rapidshare quello che ho uploadato per verificare se ho commesso degli errori, nel file .Zip c'è solamente il file di excel Spedizionil.xls composto da due fogli di lavoro: corrieri e spedizioni (con 1822 righe di dati importati dal foglio txt).
Nel Foglio Corrieri trovi le due colonne, che tu mi hai indicato, CodiceCorr (è il codice corriere) e DescrCorr (è la ragione sociale del corriere) mentre in Spedizioni nella colonna E è riportato solamente il codice corriere.
Per rendere + trasparente il file vorrei realizzare una macro che vada a sostituire il codice corriere con la relativa ragione sociale.

io ho scritto:
sub
Sheets("ElencoDDT").Select
Range("D2").Select 'CANONICI
Cells.Replace What:="V0002", Replacement:="Canonici", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False
....
end sub

ma questa macro non tiene in considerazione l'eventuale aggiornamento del foglio corrieri...
qualcuno mi sa aiutare?
freeword
Newbie
 
Post: 4
Iscritto il: 16/07/09 09:51

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi Flash30005 » 20/07/09 12:22

Allora puoi agire in due maniere:
1) con formula
2) con macro

Se vuoi usare la formula va benissimo quella consigliata da Anthony,
Anthony47 ha scritto:
Codice: Seleziona tutto
=CERCA.VERT(E2;Corrieri!A:B;2;0)

copi il codice lo incolli nella cella G2 del foglio Spedizioni, dopo fai doppio click sul quadratino in basso a destra della cella (in pratica copi la formula per tutte le righe interessate)
Se invece vuoi sostituire i codici della colonna E con i rispettivi nomi corrieri
inserisci in un modulo questa macro
Codice: Seleziona tutto
Sub Compila()
UC = Worksheets("Corrieri").Range("A" & Rows.Count).End(xlUp).Row
US = Worksheets("Spedizioni").Range("E" & Rows.Count).End(xlUp).Row
For I = 2 To US
    CS = Worksheets("Spedizioni").Cells(I, 5).Value
        For Sped = 2 To UC
        On Error Resume Next
            If CS = Worksheets("Corrieri").Cells(Sped, 1).Value Then Worksheets("Spedizioni").Cells(I, 5).Value = Worksheets("Corrieri").Cells(Sped, 2).Value
       On Error GoTo 0
        Next Sped
Next I
End Sub


Qunado aggiungerai i corrieri riesegui la macro e avrai l'elenco aggiornato
La macro può avviarsi anche in automatico se inserisci questo codice nel foglio spedizioni
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F2:F65000")) Is Nothing Then Exit Sub
Call Compila
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Macro per sostituzioni valori da elenco

Postdi freeword » 20/07/09 16:00

Grazie Flash,

Macro perfetta...e grazie anche per la tua disponibilità e di avermi insegnato il metodo utilizzando le variabili.

Ciao Freeword
freeword
Newbie
 
Post: 4
Iscritto il: 16/07/09 09:51


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Macro per sostituzioni valori da elenco":


Chi c’è in linea

Visitano il forum: Nessuno e 108 ospiti