Condividi:        

Excel: riferimento ultima riga piena da 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

Excel: riferimento ultima riga piena da file esterno

Postdi Eko1 » 27/09/23 18:05

Ciao a tutti e buonasera,
ho bisogno di un vostro aiuto.
Io ho due file; nel file master ho un foglio con 5 colonne e una sola riga (riga numero 2).
Nel secondo file ho moltissime colonne e moltitudine di righe piene cui inserisco dati all'occorenza.
Sarebbe possibile tramite formula, riportare nel file master l'ultima riga piena del secondo file anche se il secondo file è chiuso?
Io vorrei che quando apro il file master, nonostante il secondo file sia chiuso, ci siano gli ultimi valori riportati del secondo file.
Le colonne interessate (del secondo file) che vorrei che riportasse nel file master sono: colonna C, D, E, AD e AF.
Spero possiate aiutarmi e vi ringrazio in anticipo per l'attenzione.
Buona serata a tutti :)
Eko1
Newbie
 
Post: 4
Iscritto il: 25/09/23 15:31

Sponsor
 

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Anthony47 » 27/09/23 20:42

Intanto Benvenuto nel forum

Non credo che quanto chiedi sia fattibile via formula, bisognerebbe ricorrere a una macro.
Ad esempio, all’apertura del file Master una macro di tipo Workbook_Open apre automaticamente il file Slave, copia i dati che ti interessano, chiude il file Slave
Qualcosa del tipo:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Dim SlavePnN As String, mySplit, sWSh As Worksheet
Dim isOpen As Boolean, SlaveN As String, SlaveSh As String
'
SlavePnN = "D:\DDownloads\Media oraria_2.xlsx"          '<<< Percorso e nome del file slave
SlaveSh = "Foglio1"                                     '<<< Il nome del foglio da cui prelevare
'
mySplit = Split(SlavePnN, "\", , vbTextCompare)
SlaveN = mySplit(UBound(mySplit))
'Eventualmente apre file Slave:
On Error Resume Next
    isOpen = Workbooks(SlaveN).Name = SlaveN
On Error GoTo 0
If isOpen = False Then
    Workbooks.Open SlavePnN
End If
Set sWSh = Workbooks(SlaveN).Sheets(SlaveSh)
'Stop
'Preleva le info che servono e scrivile sul Master:
Me.Sheets("Foglio12").Range("A2").Value = sWSh.Cells(Rows.Count, "A").End(xlUp).Value      '<<< Il tuo indirizzo di destinazione e la colonna da cui prelevare
Me.Sheets("Foglio12").Range("B2").Value = sWSh.Cells(Rows.Count, "B").End(xlUp).Value      '<<< idem
Me.Sheets("Foglio12").Range("C2").Value = sWSh.Cells(Rows.Count, "C").End(xlUp).Value      '<<< idem
'... altre istruzioni analoghe
'... altre
'
If Not isOpen Then Workbooks(SlaveN).Close False
Me.Activate
End Sub

Il codice va inserito nel modulo vba QuestaCartellaDiLavoro /ThisWorkbook del file Master; per altre informazioni, vedi viewtopic.php?f=26&t=103893&p=647675#p647675
Le righe marcate <<< vanno personalizzate come da commenti con le tue informazioni.

Completato l’inserimento del codice torna su Excel, salva e chiudi il file Master e riaprilo; poi controlla se le informazioni richieste sono state raccolte correttamente.

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Eko1 » 28/09/23 10:13

Ciao Anthony47,
grazie mille per il codice.
L'ho adattato alle mie esigenze grazie alle tue istruzioni e funziona in parte purtroppo :-?
Non mi riporta l'ultima riga piena in quanto ho fatto la prova e riporta la penultima.
In tre colonne ho dei prezzi che sono con decimali. Ho settato le celle ma riporta sempre valore 0.00 anche se nella colonna della penultima riga (quella che prende) ci sono dei prezzi.
Avrei dovuto dirlo prima, ma pensavo che non ci fosse il problema ecco.. me ne scuso :(
Come posso procedere?
Grazie mille in anticipo :)
Eko1
Newbie
 
Post: 4
Iscritto il: 25/09/23 15:31

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Anthony47 » 28/09/23 12:30

Il tipo di dati da prelevare non e' importante.
Mi lascia perplesso il fatto che l'ipotesi che importi la penultima riga compilata, al massimo mi sarei aspettato di importare delle righe successive nel caso che in realta' le colonne da importare contengano delle formule anche dopo l'utima riga con un dato visibile.
Facciamo così:
- modifica le righe che dovrebbero copiare gli ultimi valori in modo da vedere il numero di riga; modifica le relative istruzioni come segue:
Me.Sheets("Foglio12").Range("A2").Value = sWSh.Cells(Rows.Count, "A").End(xlUp).Row
La parte modificata e' in rosso (.Row invece che .Value)

Fai la procedura, poi controlla quale riga verrebbe importata, e segnala le discrepanze.

Ne approfitto anche per suggerirti di modificare l'istruzione che apre il file Master, in modo da aprirlo in SolaLettura e senza l'aggiornamento di eventuali collegamenti esteri; la nuova riga, in sostituzione della precedente:
Codice: Seleziona tutto
    Workbooks.Open Filename:=SlavePnN, ReadOnly:=True, UpdateLinks:=0

Fai sapere
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Eko1 » 28/09/23 15:25

Ciao Anthony47,
grazie mille del codice, funziona alla perfezione! 8) 8) 8)
Vorrei chiedere solo una cosina piccina picciò..
il codice opera nell'evento "quando si salva, si chiude e si riapre il file allora aggiorna".. è possibile avere l'aggiornamento nell'esatto momento in cui inserisco una nuova riga nel secondo file?
Grazie ancora
Eko1
Newbie
 
Post: 4
Iscritto il: 25/09/23 15:31

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Anthony47 » 28/09/23 15:47

Dovresti spiegare perchè prima non funzionava e ora funziona...

Vorrei chiedere solo una cosina piccina picciò..
il codice opera nell'evento "quando si salva, si chiude e si riapre il file allora aggiorna".. è possibile avere l'aggiornamento nell'esatto momento in cui inserisco una nuova riga nel secondo file?
Posta così la domanda, la risposta è No. Però, così come si usa l'evento Workbook_Open del file Master per andare a importare dal file Slave, si può usare l'evento "Workbook_AfterSave" del file Slave per andare a esportare nel file Master. Magari dopo aver visto la logica della Sub Workbook_Open sai gia' impostare il contenuto della Sub Workbook_AfterSave?

Tuttavia devi tener presente che a Master basta aprire in sola lettura il file Slave, mentre a Slave necessita che il file Master sia disponibile per essere scritto: non e' un problema se tutto avviene sullo stesso Pc, mentre e' un pò più complicato se i file vengono gestiti su Pc diversi
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Eko1 » 29/09/23 11:01

Buongiorno a tutti,
ciao Anthony47.. il fatto che funziona è.. non lo so.. ma funziona :lol: :lol: :lol:
comunque studierò bene la logica del codice che mi hai proposto.
Grazie mille per l'aiuto e buona continuazione 8)
Eko1
Newbie
 
Post: 4
Iscritto il: 25/09/23 15:31

Re: Excel: riferimento ultima riga piena da file esterno

Postdi Anthony47 » 29/09/23 15:05

Speravo che avessi trovato la gabola e l'avessi risolta; ma se funziona va bene a tutti :D
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel: riferimento ultima riga piena da file esterno":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti