creare un foglio "master" o riepilogo" in automatico

Anonimo
2015-04-24T18:01:34+00:00

salve a tutti,

avrei bisogno di creare un foglio master, o riepilogo, contenente i dati prelevati da determinate celle di altri fogli anche su altri file .xls

ovviamente se inserisco un foglio intermedio a ad altri, contenente anch'esso, le determinate celle, nel foglio master queste celle dovranno essere inserite nella posizione giusta.

come posso fare?

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
Anonimo
2015-09-20T12:05:20+00:00

Ciao vitaliano, 

....E' proprio quello che cercavo.

Ti ringrazio per il cortese riscontro e mi fa piace se il codice sia utile.

Quindi, il codice nuovo da aggiungere, a cosa serve?

In risposta all'inserimento o modifica di qualsiasi delle celle della colonna A (tranne la cella A1) del foglio Riepilogo, formule appropriati vengono inserite nelle celle corrispondenti delle colonne B:N

Un collegamento ipertestuale viene creato e legato alla formula nella colonna A; in risposta a un clic del mouse su questo collegamento ipertestuale, viene aperto il file a cui fa riferimento la formula e vengono selezionati il particolare foglio e la cella indicati dalla formula.

In caso di necessità, i collegamenti ipertestuali e le formule in una o più celle della colonna A possono essere aggiornati o rinnovati effettuando una semplice operazione di copia /incolla sulle celle di interesse. 

Adesso, per chiudere questo thread, ti chiederei gentilmente di segnare la mia risposta come Risposta. In questo modo, tu aiuterai anche coloro che potessero cercare una soluzione ai problemi simili negli archivi della Community,

A questo proposito, dalla vecchia Guida Introduttiva

http://answers.microsoft.com/it-it/page/gettingstarted

Più in particolare, vedi la sezione:Promuovere i contenuti migliori 

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

Promuovere i contenuti migliori

L'utente riceverà una notifica tramite messaggio di posta elettronica quando qualcuno nella community risponde al post. Se si è posta una domanda e la risposta risolve il problema, aprire il thread e contrassegnarla come risposta.

Fare clic sul collegamento del thread nel messaggio di posta elettronica della notifica o trovare il thread nel proprio profilo.

Fare clic sull'opzione Contrassegna come risposta .

Fare clic sul collegamento del thread nel messaggio di posta elettronica della notifica o trovare il thread nel proprio profilo.

  1. Fare clic sull'opzione Contrassegna come risposta . 

'<<------------------

Alla Prossima!

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

83 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-09-20T00:41:48+00:00

    Ciao vitaliano,

    Avrei dovuto aggiungere che, se fosse necessario contemporaneamente aggiungere più record , o se fosse necessario aggiornare o ripristinare tutti i collegamenti ipertestuali nella colonna A del foglio Riepilogo, al fine di mantenere l'utente al corrente della progresso del procedura, ho aggiunto un messaggio dinamico alla barra di stato, nella parte inferiore, sinistra della schermata Excel.

    Tu puoi controllare quando questo messaggio venga  visualizzato modificando il valore della costante  iLimiteDellaPazienza nella procedura Worksheet_Change nel modulo di codice del foglio Riepilogo:

        Const iLimiteDellaPazienza = 5

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-09-20T00:13:52+00:00

    Ciao vitaliano,

     Ecco come procedo, per inserire una nuova analisi.

    Sul foglio riepilogo del file master, determino dove inserire la nuova analisi. Sempre tra due già esistenti. Inserisco un rigo vuoto. vado sul foglio analisi...xlsm produco la nuova analisi su di un foglio dedicato. Torno sul riepilogo, nella cella A del rigo vuoto inserito prima. Inserisco il collegamento di cella con la cella A1 del foglio contenente la nuova analisi. Il tuo codice, attiva il collegamento di tutte le altre celle dello stesso rigo, da B a N. Il tuo codice si ferma qui. Poi, vado nella cella A, del rigo appena creato e inserisco il collegamento ipertestuale con il foglio contenente la nuova analisi.

    Sarebbe utile, se possibile, integrare il Tuo codice con il collegamento ipertestuale nella cella A del rigo appena creato, in modo da non doverlo eseguire "a mano".

    Prova qualcosa del genere:

    • Alt+F11 per aprire l'editor di VBA
    • Alt+IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

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

    Option Explicit

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

    Public Sub UpdateHyperlinks(srcRng As Range)

        Dim rCell As Range

        Dim sPath As String

        Dim aStr As String, bStr As String, sStr As String

        Dim iPos As Long, jPos As Long

        Dim OldFolder As String

        sPath = srcRng.Parent.Parent.Path

        OldFolder = CurDir

        ChDir sPath

        For Each rCell In srcRng.Cells

            With rCell

                sStr = .Formula

                iPos = InStr(sStr, "[")

                jPos = InStr(sStr, "]")

                If iPos = 0 Or jPos = 0 Then

                    GoTo XIT

                End If

                aStr = Mid(sStr, iPos + 1, jPos - iPos - 1)

                bStr = "'" & Mid(sStr, jPos + 1)

                .Hyperlinks.Delete

                .Hyperlinks.Add Anchor:=rCell, _

                                Address:=aStr, _

                                SubAddress:=bStr, _

                                TextToDisplay:=""

            End With

        Next rCell

    XIT:

        ChDir OldFolder

    End Sub

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

    • Fai clic dx sulla linguetta del foglio Riepilogo
    • Seleziona l'opzione Visualizza Codice dal menu contestuale risultante
    • Sostituisci il codice precedente con la seguente versione

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

    Option Explicit

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

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim Rng As Range, Rng2 As Range, rCell As Range

        Dim sStr As String

        Dim i As Long, j As Long, k As Long

        Dim arr As Variant

        Dim bFormula As Boolean

        Dim CalcMode As Long

        Dim bAvviso As Boolean

        Const iLimiteDellaPazienza = 5

        If Target.Row = 1 Then

            Exit Sub

        End If

        Set Rng = Intersect(Me.Range("A:A"), Target)

        If Not Rng Is Nothing Then

            On Error GoTo XIT

            With Application

                .EnableEvents = False

                CalcMode = .Calculation

                .Calculation = xlCalculationManual

                .ScreenUpdating = False

            End With

            j = Rng.Cells.Count

            bAvviso = j > iLimiteDellaPazienza

            Application.StatusBar = "Inserendo collegamenti ipertestuale "

            For Each rCell In Rng.Cells

                If bAvviso Then

                    k = k + 1

                    Application.StatusBar = "Elaborando record " _

                                          & k & " di " & j

                End If

                With rCell

                    arr = Split(.Formula, "!")

                    If UBound(arr) > 0 Then

                        Call UpdateHyperlinks(rCell)

                        .Offset(1).Copy

                        .PasteSpecial (xlPasteFormats)

                        On Error Resume Next

                        sStr = arr(0)

                        .Offset(0, 1).Formula = sStr & "!" & "H10"

                        For i = 2 To 11

                            .Offset(0, i).Formula = _

                            sStr & "!" & "I" & i - 1

                        Next i

                        .Offset(0, 12).FormulaR1C1 = _

                        "=SUM(RC[-9]:RC[-4])+RC[-2]"

                        .Offset(0, 13).FormulaR1C1 = "=RC[-1]-RC[-2]"

                    Else

                        .Hyperlinks.Delete

                    End If

                End With

                Err.Clear

            Next rCell

        End If

    XIT:

        With Application

            .StatusBar = False

            .Calculation = CalcMode

            .EnableEvents = True

            .ScreenUpdating = True

        End With

    End Sub

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

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-09-17T15:34:00+00:00

    Ciao, Regards.

    Ho eseguito i Tuoi passaggi. Funziona tutto, ma non è quello che cercavo, o forse lo utilizzo male. Chiedo scusa e provo a riformulare la richiesta. Ecco come procedo, per inserire una nuova analisi.

    Sul foglio riepilogo del file master, determino dove inserire la nuova analisi. Sempre tra due già esistenti. Inserisco un rigo vuoto. vado sul foglio analisi...xlsm produco la nuova analisi su di un foglio dedicato. Torno sul riepilogo, nella cella A del rigo vuoto inserito prima. Inserisco il collegamento di cella con la cella A1 del foglio contenente la nuova analisi. Il tuo codice, attiva il collegamento di tutte le altre celle dello stesso rigo, da B a N. Il tuo codice si ferma qui. Poi, vado nella cella A, del rigo appena creato e inserisco il collegamento ipertestuale con il foglio contenente la nuova analisi.

    Sarebbe utile, se possibile, integrare il Tuo codice con il collegamento ipertestuale nella cella A del rigo appena creato, in modo da non doverlo eseguire "a mano".

    Grazie ancora.

    A presto.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-09-17T14:22:06+00:00

    Ciao vitaliano,

    In questi mesi ho familiarizzato con l'utilizzo del Tuo codice relativo alla creazione dei collegamenti tra le celle del foglio riepilogo del file master e le celle di ogni singola analisi. Risparmio tanto tempo. Grazie mille!

    Non si potrebbe integrare questo codice con l'inserimento del collegamento ipertestuale singolo, nella cella A? l'inserimento del rigo vuoto, nella posizione desiderata, continuerei a farlo "a mano".

    • Alt+F11 per aprire l'editor di VBA
    • Alt+IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

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

    Public Sub AumentaTabella()

        Dim SH As Worksheet

        Dim Rng As Range

        Dim myTable As ListObject

        Const NomeDellaTabella As String = "Tabella1"           '<<=== Modifica

        Set SH = ActiveSheet

        On Error GoTo XIT

        Application.EnableEvents = False

        With SH

            Set myTable = SH.ListObjects(NomeDellaTabella)

            Set Rng = myTable.Range

            With Rng

                myTable.Resize .Resize(.Rows.Count + 1)

            End With

            With myTable.Range

                .Rows(.Rows.Count - 1).Copy

                .Rows(.Rows.Count).PasteSpecial (xlPasteFormats)

                .Cells(.Rows.Count, 1).Select

                Application.CutCopyMode = False

            End With

        End With

    XIT:

        Application.EnableEvents = True

    End Sub
    '<<=========

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
    • Inserisci un pulsante dai Controlli Modulo sul foglio Riepilogo
    • Fai clic dx sul pulsante
    • Fai clic su Collega macro
    • Seleziona AumentaTabella
    • OK
    • Seleziona una cella della tabella sul foglio Riepilogo
    • Premi Ctrl+T per creare una tabella Excel.
    • OK

    Ora, cliccando il pulsante, una nuova riga sarà inserita al fondo della tabella e la prima cella della nuova riga sarà selezionata per permettere l'inserimento di nuovi dati.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento