Condividi tramite

Macro Excell 2007 - Copia valore somma Foglio 1 come risultato su Foglio 2 su riga variabile.

Anonimo
2015-10-26T15:54:44+00:00

Ciao Ragazzi, ho seguito i vostri consigli su conversazioni precedenti per quanto riguarda la funzione Macro di Excel con specifica copiare attraverso una macro un risultato specifico di un Foglio 1 chiamato MASCHERA INPUT su una cella apposita del Foglio 2 chiamato ARCHIVIO con la condizione che sia la prima riga vuota.

Fin qui funziona tutto alla grande.

So che per alcuni casi Excel potrebbe non essere opportuno ma è snello e molto funzionale (sempre che tu conosca il linguaggio di Visual Basic) 

Veniamo a noi. Sto creando un foglio di lavoro che mi possa tener conto della contabilità giornaliera.

Nel Foglio 1 inserirò tutti i dati tipo incassi e spese giornaliere la cui somma verrà salvata giornalmente tramite una macro su di una riga variabile nel Foglio 2.

Ho creato nel Foglio 1 una cella N26 con funzione =SOMMA(E5:E34) e riesco ad ottenere il risultato.

Il problema sta nella macro, ovvero quando clicco sulla macro, nel Foglio 2 mi appare come risultato #RIF!

La macro che ho utilizzato per questa è la seguente:

--

Sub salva()

'

' salva Macro

'

Dim lr As Long

'

    lr = Sheets("ARCHIVIO").Cells(Rows.Count, "A").End(xlUp).Row + 1

    Sheets("MASCHERA INPUT").Range("N26").Copy Sheets("ARCHIVIO").Range("A" & lr)

End Sub

--

Vorrei che mi riportasse il risultato della somma del Foglio 1 e risolvere il problema #RIF!

Mi aiutate???????

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
  1. Anonimo
    2015-10-27T15:18:35+00:00

    Ciao Cristian,

    Ciao Norman e grazie per il tempo dedicato.

    Ho provato a scaricare il file che mi hai invitato me senza alcun risultato, è privo di macro :(

    Colpa mia, ho caricato un file con un nome simile!

    Prova il seguente link:  http://1drv.ms/1RzkQ22

    Io uso Excel su Mac (non so se possa influenzare o meno) ma ti allego un link che ti darà sicuramente una mappa più dettagliata:

    https://onedrive.live.com/redir?resid=81E50BA9403919D6!13

    Non so nulla dei mac ma, se il tuo problema non dovessi essere risolto, darò uno sguardo al tuo file più tardi.

    ===

    Regards,

    Norman

    0 commenti Nessun commento

18 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Anonimo
    2015-10-26T21:26:46+00:00

    Grazie Norman, sei stato veramente rapidissimo e molto professionale!

    La macro funziona perfettamente e di per se è ok.

    Adesso vorrei ampliare un po di più il discorso, dopo di che avrò completato il mio foglio di lavoro.

    Ho diversi risultati da dover inserire nelle varie celle, ovvero dei risultati di somme del Foglio 1 che dovranno essere inserite nel foglio 2 riga per riga.

    Per intenderci, ogni giorno, cliccando sulla macro, dovrei riportare sul foglio seguente dei risultati provenienti da diversi calcoli.

    Potrei applicare la macro che hai riportato modificandola un po, ma sono un po' imbarcato con questa!

    La macro che ho modificato è la seguente:

    Option Explicit

    Public Sub salva()

        Dim WB As Workbook

        Dim lr As Long

        Set WB = ThisWorkbook

        With WB

         lr = .Sheets("ARCHIVIO").Cells(Rows.Count, "B", "C", "D", "E", "F").End(xlUp).Row + 1

            .Sheets("ARCHIVIO").Range("B" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("N26").Value

            .Sheets("ARCHIVIO").Range("C" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("N28").Value¨

            .Sheets("ARCHIVIO").Range("D" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("N30").Value¨

            .Sheets("ARCHIVIO").Range("E" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("N22").Value¨

            .Sheets("ARCHIVIO").Range("F" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("O22").Value¨

    '

        lr = Sheets("ARCHIVIO").Cells(Rows.Count, "A").End(xlUp).Row + 1

        Sheets("MASCHERA INPUT").Range("I1").Copy Sheets("ARCHIVIO").Range("A" & lr)

        End With

    End Sub

    Mi da un debug su questa linea:

    lr = .Sheets("ARCHIVIO").Cells(Rows.Count, "B", "C", "D", "E", "F").End(xlUp).Row + 1

    ma probabilmente sarà un problema generale. 

    Potresti darmi una mano a risolvere????

    Te ne sarei grato infinitamente.

    0 commenti Nessun commento
  3. Anonimo
    2015-10-26T16:22:59+00:00

    Ciao Cristian,

    Se tu volessi che il valore copiato fosse dinamico, anziche' un valore statico, prova invece:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub salva()

        Dim WB As Workbook

        Dim lr As Long

        Set WB = ThisWorkbook

        With WB.Sheets("ARCHIVIO")

         lr = .Cells(Rows.Count, "A").End(xlUp).Row + 1

            .Range("A" & lr).Formula = "='MASCHERA INPUT'!N26"

        End With

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    0 commenti Nessun commento
  4. Anonimo
    2015-10-26T16:02:33+00:00

    Ciao Cristian,

    Prova qualcosa del genere:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub salva()

        Dim WB As Workbook

        Dim lr As Long

        Set WB = ThisWorkbook

        With WB

         lr = .Sheets("ARCHIVIO").Cells(Rows.Count, "A").End(xlUp).Row + 1

            .Sheets("ARCHIVIO").Range("A" & lr).Value = _

            .Sheets("MASCHERA INPUT").Range("N26").Value

        End With

    End Sub

    '<<=========

    Nota che ho modificato il codice.

    ===

    Regards,

    Norman

    0 commenti Nessun commento