Condividi:        

Macro che cerca dei codici in un file esterno

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

Macro che cerca dei codici in un file esterno

Postdi tav » 10/04/18 20:51

Ciao a tutti,
nel file allegato ho bisogno un'evoluzione della macro esistente che mi permetta di mettere la x sulla colonna L ( del foglio SIM) solo se il codice che ho in colonna A è presente in un file che si trova in un percorso esterno.
Questo file esterno viene creato ogni giorno e prende come nome Alert-Min_10_apr-2018.xlsx ( la data cambia ogni giorno) Tutte le altre funzioni all'interno dei pulsanti rimangono invariate.
chi mi può aiutare?

https://wetransfer.com/downloads/2e9ffdb9d6053a21460d64dd85fa132620180410193635/fcb3694005c2a4e0154ab174957ca28120180410193636/565176
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Sponsor
 

Re: Macro che cerca dei codici in un file esterno

Postdi Anthony47 » 11/04/18 01:33

Perdona, non ho il tempo di andare a leggere le macro per capire la richiesta; visto che sai gia' come e' organizzato il tuo file spiega tu su che cosa stai cercando aiuto.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro che cerca dei codici in un file esterno

Postdi tav » 11/04/18 07:44

Io avrei bisogno di creare un pulsante nel foglio sim che faccia una ricerca in un altro file che viene creato ogni giorno e che prende come denominazione alert_min_la data ( che cambia ogni Giorno). Se il codice è presente in questo file, vorrei che sul foglio sim ( in corrispondenza del codice) nella colonna L venga messa una x
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: Macro che cerca dei codici in un file esterno

Postdi Anthony47 » 11/04/18 14:55

Non ho tutti gli elementi per procedere in proprio, ma e' meglio, cosi' ti insegno a fare quasi da solo...

Tu hai un file Principale (quello che contiene anche il foglio Sim) e un file Giornaliero (alert_min_la data.xlsx)
A) Apri i file Principale e poi Giornaliero; inserisci nel file Principale una copia del foglio che devi esaminare per creare le X nel foglio Sim. Supponiamo che questo foglio si chiami Giggiggi
Per questa "copia" userai il menu accessibile con tasto dx sul tab del foglio che devi copiare:
-tasto dx sul tab col nome del foglio, scegli Sposta o copia; scegli subito "Sposta alla cartella" "Principale" e "(sposta alla fine)"; spunta Crea una copia; ok
-chiudi il file Giornaliero

B) Lavorando su Sim, tramite formule crea le X nella posizione che ti interessa; ad esempio se vuoi verificare che il codice presente in A2 sia presente in colonna H di Giggiggi potresti usare
Codice: Seleziona tutto
=SE(E(A2<>"";CONTA.SE(INDIRETTO("Giggiggi!H:H");A2)>0);"X";"i")
Nota l'uso di Indiretto per creare l'indirizzo dell'area su cui guardare: serve per non "distruggere" la formula nel prosieguo delle cose da fare; quindi usa questa tecnica quando elabori la tua formula.

Copia questa formula verso il basso per quante righe ti interessa, anche oltre l'elenco che pensi di dover gestire.
Ora il file Giornaliero e' pronto per le successive operazioni; salvalo e tienilo aperto.

C) Registra una macro mentre, partendo dal foglio Sim, diligentemente esegui queste operazioni:
-elimini il foglio Giggiggi (lo puoi fare da tasto dx sul tab del nome foglio); e' questa la fase in cui la formula del punto B si sarebbe distrutta se non avessimo usato "Indiretto".
-apri il file Giornaliero
-sposti nuovamente il foglio Giggiggi sul file Principale
-chiudi il file Giornaliero senza salvarlo
-selezioni il foglio Sim
Interrompi la registrazione della macro.

Per le istruzioni e i primi suggerimenti su come registrare una macro:
viewtopic.php?f=26&t=103893&p=622593#p622593

Ora le X sono gestite dalla formula inserita, lavorando sui dati del file Giornaliero (foglio spostato in Principale).

A questo punto dobbiamo modificare il codice della macro affinche' lavori su un file "Giornaliero" aggiornato.
A questo scopo pubblica il codice della macro ottenuta tramite Registra macro e vedremo le modifiche da farsi.

Tuttavia dovresti anche chiarire se il file Giornaliero da prelevare ha la data di Oggi o quella di Ieri, o se invece vuoi poter scegliere "a mano" il file da aprire.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro che cerca dei codici in un file esterno

Postdi tav » 11/04/18 16:21

ciao
ho seguito passo passo ed ecco la macro

Sub Macro1()
'
' Macro1 Macro
'

'
Sheets("Foglio1").Select
ActiveWindow.SelectedSheets.Delete
Windows("Alert-Min_11_apr-2018.xlsx").Activate
Sheets("Foglio1").Select
Sheets("Foglio1").Copy After:=Sheets(3)
Sheets("Foglio1").Select
Sheets("Foglio1").Copy Before:=Workbooks("nuovo sim.xlsm").Sheets(10)
Windows("Alert-Min_11_apr-2018.xlsx").Activate
ActiveWindow.Close
Sheets("SIM").Select
End Sub


il file giornaliero ogni giorno prende la data del giorno in corso ( quindi oggi 11 aprile 2018), domani quindi il file sarà con la data 12 apirle e cosi via.

Quale è il next step?
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: Macro che cerca dei codici in un file esterno

Postdi tav » 11/04/18 17:01

Codice: Seleziona tutto
Sub Macro1()
'
' Macro1 Macro
'

'
 Sheets("Foglio1").Select
 ActiveWindow.SelectedSheets.Delete
 Windows("Alert-Min_11_apr-2018.xlsx").Activate
 Sheets("Foglio1").Select
 Sheets("Foglio1").Copy After:=Sheets(3)
 Sheets("Foglio1").Select
 Sheets("Foglio1").Copy Before:=Workbooks("nuovo sim.xlsm").Sheets(10)
 Windows("Alert-Min_11_apr-2018.xlsx").Activate
 ActiveWindow.Close
 Sheets("SIM").Select
End Sub



Scusa te lo metto in questo modo.
Il problema è adattarlo all'esigenza che il nome del file ( Windows("Alert-Min_11_apr-2018.xlsx").Activate) ogni giorno cambierà nome.
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: Macro che cerca dei codici in un file esterno

Postdi tav » 11/04/18 17:48

Codice: Seleziona tutto
Sub Alert_Fausto()
'
' Alert_Fausto Macro
'

'
    Sheets("Foglio1").Select
    ActiveWindow.SelectedSheets.Delete
    Workbooks.Open Filename:= _
        "N:\Divisione Buitoni\Supply Chain\Demand&Supply Planning\09 - NCE\09.1 Goal Alignment\DOR\Misura 4 Chilled_ Alert\Chilled\2018\Alert-Min_11_apr-2018.xlsx" _
        , UpdateLinks:=0
    Sheets("Foglio1").Select
    Sheets("Foglio1").Copy Before:=Workbooks("nuovo sim.xlsm").Sheets(10)
    Windows("Alert-Min_11_apr-2018.xlsx").Activate
    ActiveWindow.Close
    Sheets("SIM").Select
End Sub



Scusa il continuo cambio, ma ci sto smanettando :)

Il problema ora è che il nome del file nel percorso ogni giorno deve cambiare con il giorno della data odierna

ESEMPIO

il 12 aprile --> "N:\Divisione Buitoni\Supply Chain\Demand&Supply Planning\09 - NCE\09.1 Goal Alignment\DOR\Misura 4 Chilled_ Alert\Chilled\2018\Alert-Min_12_apr-2018.xlsx" _
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: Macro che cerca dei codici in un file esterno

Postdi Anthony47 » 11/04/18 20:51

Hai fatto bene a "smanettarci sopra", perche' nel primo codice mancava proprio la parte da modificare.

Le modifiche dovrebbero essere contenute in questa variante:
Codice: Seleziona tutto
Sub Alert_FaustoPCF()
'
' Alert_Fausto Macro
'
Dim cFn As String, dWb As Workbook
'
Application.DisplayAlerts = False
    Application.EnableEvents = False
        Sheets("Foglio1").Select
        ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    cFn = "N:\Divisione Buitoni\Supply Chain\Demand&Supply Planning\09 - NCE\09.1 Goal Alignment\DOR\Misura 4 Chilled_ Alert\Chilled\2018\Alert-Min_" & _
       Format(Now, "dd_mmm-yyyy") & ".xlsx"
    Workbooks.Open Filename:=cFn, UpdateLinks:=0
    Set dWb = ActiveWorkbook
    Sheets("Foglio1").Select
    Sheets("Foglio1").Copy Before:=Workbooks("nuovo sim.xlsm").Sheets(10)
    dWb.Close False
    Sheets("SIM").Select
End Sub

Prova con cautela e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro che cerca dei codici in un file esterno

Postdi tav » 12/04/18 11:02

Perfetto. Ho provato a farla girare e funziona :)

speriamo in bene
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57


Torna a Applicazioni Office Windows


Topic correlati a "Macro che cerca dei codici in un file esterno":


Chi c’è in linea

Visitano il forum: Marius44 e 56 ospiti