Macro per copiare valori di una tabella dopo selezione menu a tendina

Anonimo
2017-03-06T10:25:22+00:00

Ciao a tutti,

mi trovo a dover copiare in automatico i valori presenti in una tabella (quindi con numero di celle impostate) da un foglio a un altro in seguito alla decisione presa da un menu a tendina.

Mi spiego meglio.

Nel foglio 1 (chiamato Confronto) avrò una tabella vuota in cui i dati dovranno essere copiati in automatico (in base alla selezione) dagli altri fogli. Il secondo foglio ( foglio 2 = Revisione1) contiene una tabella (con le stesse dimensioni in termini di numero di celle) e con nome della tabella "Revisione1".

Nel foglio "Confronto" dovrò inserire un elenco a discesa (menu a tendina) in cui poter selezionare la revisione (ad esempio Revisione1). Selezionando, ad esempio, Revisione1 in automatico vorrei che la tabella (vuota) del foglio Confronto si riempisse con i dati presenti nella tabella Revisione1 editata nel foglio corrispondente.

Questo procedimento dovrebbe essere disponibili per N revisioni (quindi N fogli revisioni).

Non so se sono stato chiaro, nel caso rimano disponibile per qualsiasi chiarimento.

Grazie mille.

ciao ciao

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
2017-03-06T14:47:41+00:00

Ciao Antani_27,

Benvenuto alla Community!

mi trovo a dover copiare in automatico i valori presenti in una tabella (quindi con numero di celle impostate) da un foglio a un altro in seguito alla decisione presa da un menu a tendina.

Mi spiego meglio.

Nel foglio 1 (chiamato Confronto) avrò una tabella vuota in cui i dati dovranno essere copiati in automatico (in base alla selezione) dagli altri fogli. Il secondo foglio ( foglio 2 = Revisione1) contiene una tabella (con le stesse dimensioni in termini di numero di celle) e con nome della tabella "Revisione1".

Nel foglio "Confronto" dovrò inserire un elenco a discesa (menu a tendina) in cui poter selezionare la revisione (ad esempio Revisione1). Selezionando, ad esempio, Revisione1 in automatico vorrei che la tabella (vuota) del foglio Confronto si riempisse con i dati presenti nella tabella Revisione1 editata nel foglio corrispondente.

Questo procedimento dovrebbe essere disponibili per N revisioni (quindi N fogli revisioni).

Prova qualcosa del genere:

  • Fai clic dx sulla linguetta del foglio Confronto
  • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
  • Incolla il seguente codice:

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

Option Explicit

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

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim srcSH As Worksheet

    Dim RngMenu As Range

    Dim rngDest As Range, RngSrc As Range

    Dim sStr As String

    Const sCellaMenu As String = "F1"                     '<<=== Modifica

    Const sTabella As String = "A1:D20"                   '<<=== Modifica

    Set RngMenu = Me.Range(sCellaMenu)

    If Not Intersect(RngMenu, Target) Is Nothing Then

        Set rngDest = Me.Range(sTabella)

        sStr = RngMenu.Value

        If SheetExists(sStr) Then

            Set srcSH = ThisWorkbook.Sheets(sStr)

            Set RngSrc = srcSH.Range(sTabella)

            rngDest.Value = RngSrc.Value

        End If

    End If

End Sub

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

  • Alt+IM per inserire un nuovo modulo di codice
  • Nel nuovo modulo vuoto, incolla il seguente codice:

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

Option Explicit

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

Public Function SheetExists(sSheetName As String, _

                            Optional ByVal WB As Workbook) As Boolean

    On Error Resume Next

    If WB Is Nothing Then

        Set WB = ThisWorkbook

    End If

    SheetExists = CBool(Len(WB.Sheets(sSheetName).Name))

End Function

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

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
  • Salva il file con l'estensione xlsm.

Ora, modificando la selezione di voce del menu a tendina. i dati della tabella sul foglio corrispondente verranno copiati nella tabella sul foglio Confronto.

Potresti scaricare il mio file di prova Antani20170306.xlsm  a:

https://www.dropbox.com/s/y5cpkv7hhhhstqz/Antani20170306.xlsm?dl=0

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-03-06T16:40:45+00:00

    Ciao Norman,

    sfrutto ancora la tua conoscenza e disponibilità per chiederti un piccolo upgrade alla macro di cui sopra.

    Nello stesso foglio "Confronto" vorrei poter inserire in due tabelle diverse valori di Revisioni diversi, sfruttando sempre lo stesso sistema/processo descritto precedentemente.

    In pratica vorrei poter avere la possibilità di confrontare due tabelle uguali in dimensioni ma con valori diversi, copiati in automatico da diversi fogli scelti in base al menù a tendina.

    Grazie ancora.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-03-06T15:11:44+00:00

    Ciao Antani_27,

    Grazie mille Norman, ho provato e funziona benissimo!!!

    Grazie mille davvero!!!

    Ti ringrazio per il cortese riscontro.

    Per chiudere questo thread, vorrei chiederti gentilmente di contrassegnare la mia risposta come Risposta preferita. In questo modo, tu aiuterai anche coloro che potessero cercare soluzioni ai problemi simili negli archivi della Community.

       

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-03-06T14:59:54+00:00

    Grazie mille Norman, ho provato e funziona benissimo!!!

    Grazie mille davvero!!!

    La risposta è stata utile?

    0 commenti Nessun commento