Moderatori: Anthony47, Flash30005
=SINISTRA(A1;RICERCA("Marca";A1)-1)
=SINISTRA(A5;RICERCA("P.Listino";A5)-1)
=SOSTITUISCI(SOSTITUISCI(A1;"Marca";1);"P";1)
=SE(DESTRA(A1)="P";SINISTRA(A1;LUNGHEZZA(A1)-1);SOSTITUISCI(A1;"Marca";1))
=SOSTITUISCI(SOSTITUISCI(A2;"Marca";"");"P.Listino";"")
=CERCA.ORIZZ(B2;'dati grezzi fornitore'!D2:E2;'dati grezzi fornitore'!D2)
- estrarre la quantità legata al codice prodotto del fornitore
- controllare l'associazione con il mio id
- associare la quantità al mio id
=CERCA.Vert(B2;'dati grezzi fornitore'!D:E;2;0)
Primo: il codice fornitore "forse" deve essere preceduta da una sigla che indica di quale fornitore parli; voglio dire che oggi hai un fornitore che usa il codice SCR008 per uno strano (per me) bene che si chiama 011-Edizione Italiana: sei sicuro che non avrai mai a che fare in futuro con un altro fornitore che allo stesso codice SCR008 non ha associato il vol 31 della Storia di Forli'? Quindi il mio suggerimento e' che crei uno standard di Codice che comprende Cod.Fornitore+Codice prodotto del fornitore. Possibilmente una "sigla parlante", cioe' interpretabile a colpo d' occhio e di lunghezza fissa con un separatore noto; es CF001-CP:SCR008
Ovviamente CF sta' per "codice fornitore", 001 e' il numero su una tua lista Fornitori (e se pensi di aver bisogno di piu' di 999 fornitori e' bene che usi subito CF0001), CP: e' il preambolo di Codice prodotto, e SCR008 e' il famoso bene "011-Edizione Italiana"
Secondo: ti sei fatto una associazione "Tuo codice 1" col prodotto SCR008; ma sei sicuro che quel bene non lo acquisterai anche da un fornitore2 il cui codice sara' PIPP321? Come pensi di gestire questa situazione? Non avendo idea di quale e' lo scopo finale del lavoro non ho un suggerimento "su misura" da dare; banalmente io aggiungerei una seconda riga con lo stesso "Tuo codice 1" che fa riferimento al codice di un secondo fornitore. Inoltre eviterei che il tuo codice sia un valore numerico, quindi userei non 1 ma (a mo' di esempio) WP0001 (se pensi a max 9999 codici).
=SE(VAL.ERRORE(CERCA.VERT(D2;'Comparazione Codici'!B:B;1;0));"###";"Ok")
Anthony47 ha scritto:Per la verifica dei codici fornitore vs il tuo: in una colonna libera di "dati grezzi fornitore" inserisci, in riga2, la formula(In col D ora hai il codice, vero?) Copia poi verso il basso anche oltre fine dell' attuale elenco.
- Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(D2;'Comparazione Codici'!B:B;1;0));"###";"Ok")
Se il codice e' presente nel tuo elenco avrai Ok, altrimenti ###
Per l' esportazione delle colonne, la cosa piu' semplice e' che ti registri una macro su un file nuovo, avendo aperto anche aperto il file Dati.xlsm, mentre esegui diligentemente, partendo dal file nuovo:
-seleziona il file Dati.xlsm
-seleziona foglio "dati grezzi fornitore"
-salvi il file col suo nome e formato excel
-seleziona il foglio "Comparazione Codici"
-copialo in un nuovo foglio: tab Home /Celle /Formato /Sposta o copia foglio; spunta Crea copia e (sposta alla fine); Ok
-seleziona tutte le colonne che ti interessano, Copia, IncollaSpeciale-Valori (nelle stesse posizioni)
-elimina le colonne che non ti interessano
-File /Salva con nome; come formato scegli CSV, dai il nome che ti piace; Salva.
-Rispondi Ok ai messaggi che ti da'
-chiudi il file XYZ.csv anche senza salvarlo (ti dara' dei warning che puoi ignorare)
-apri il file Dati.xlsm
Interrompi la registrazione.
Copia il codice prodotto e pubblicalo in un prossimo messaggio, lo varieremo per migliorare l' automatismo.
=CONCATENA(A2; "|"; C2;)
Sub esportadati()
Workbooks.Add
Windows("Dati.xlsm").Activate
Sheets("dati grezzi fornitore").Select
ActiveWorkbook.Save
Sheets("Comparazione Codici").Select
Sheets("Comparazione Codici").Copy After:=Workbooks("Cartel1").Sheets(1)
Columns("D:D").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("A:C").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Rows("1:1").Select
Selection.Delete Shift:=xlUp
ActiveWorkbook.SaveAs Filename:="C:\estrazione\update.csv", FileFormat:= _
xlCSV, CreateBackup:=False
ActiveWindow.Close
End Sub
Nel messaggio precedente ho dimenticato di dirti di variare nella Function estrai_cifre la riga Application.Volatile True in Application.Volatile False
Eviterai di ricalcolare in continuazione le Disponibilita' se non cambia la cella richiamata (colonna Disponibilita')
INFINE una domanda: ma i dati di prodotti, codice, disponibilita' sono accessibili in un sito del fornitore?
Ciao
'istruzioni precedenti
Selection.Delete Shift:=xlUp
Application.DisplayAlerts = False '<<<
ActiveWorkbook.SaveAs Filename:="C:\estrazione\update.csv", FileFormat:= _
xlCSV, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True '<<<
End Sub
Torna a Applicazioni Office Windows
Inserire add.in nella barra di avvio veloce in excel 2003 Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 4 |
Excel: problema con date se devo unirle a testi Autore: valle1975 |
Forum: Applicazioni Office Windows Risposte: 5 |
confrontare e evidenziare 2 fogli excel Autore: niccia |
Forum: Applicazioni Office Windows Risposte: 7 |
[EXCEL] controllo corrispondenza tra valori con un vincolo Autore: sbs |
Forum: Applicazioni Office Windows Risposte: 9 |
Visitano il forum: Nessuno e 17 ospiti