You are here:--[RISOLTO] Visualizzare i dati di una tabella di un'altra cartella di lavoro
[RISOLTO] Visualizzare i dati di una tabella di un'altra cartella di lavoro2019-10-19T14:51:58+01:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Visualizzare i dati di una tabella di un'altra cartella di lavoro

  • Autore
    Articoli
  • AvatarKris_9951
    Partecipante
      Post totali: 110

      Buongiorno a tutti!

      Ho un problema abbastanza difficile da risolvere.

      Avrei bisogno che una ListBox visualizzi i dati di una tabella appartenente ad un’altra cartella di lavoro.

      Spiego il tutto per bene.

      Supponiamo che io sto lavorando su un file che si chiama Test1.xslm; la colonna A del Foglio1 contiene alcuni codici.

      – io seleziono (ad esempio) la cella A6 e successivamente premo il bottone che si trova lì vicino.

      – quel bottone apre una UserForm che all’interno contiene una ListBox

      – io vorrei che quella ListBox visualizzasse i dati contenuti in un’altra tabella di un’altra cartella di lavoro (la quale, se può essere utile ai fini della realizzazione, posso anche avere aperta e ridotta ad icona).

      La cartella in questione si chiama “GestioneMagazzino”, il foglio di lavoro interessato si chiama “DataBase” e la tabella si chiama “Tab_Magazzino”

      – vorrei che la ListBox visualizzasse i dati di quella tabella ma SOLO relativi al codice selezionato nella cella attiva prima di aprire la UserForm e nello specifico le colonne comprese tra la “C” e la “J” (8 colonne in totale)

       

      Sarebbe possibile?

      Lascio una cartella contenente entrambi i file in questione.

       

      Grazie a tutti per l’aiuto!

      https://www.dropbox.com/sh/9vx9r2qr6o8af4a/AADui2I8rHHFA8iilA03RTXva?dl=0

      • Questo argomento è stato modificato 1 mese, 2 settimane fa da sid sid.
    • BySalvBySalv
      Amministratore del forum
        Post totali: 547

        Ciao Kriss, ma deve visualizzare solo quelli disponibili? o tutti quelli dello stesso codice?

        Ciao By Sal (8-D

      • AvatarKris_9951
        Partecipante
          Post totali: 110

          <p style=”text-align: left;”>Ciao BySalv!!</p>
          Beh… visto che ho il privilegio di scegliere direi tutto ad eccezione dei “PRELEVATI” 👍

           

          Grazie per l’aiuto! 👍

        • BySalvBySalv
          Amministratore del forum
            Post totali: 547

            Ciao Eccoti il file, ho eliminato il tuo listbox, ne ho messo uno direttamente sul foglio, ho eliminato anche il pulsante per aprirlo

            ora basta fare DoppioClick sul codice che ti interessa e compare il listbox con i dati, poi scegli quale riportare sul foglio e fai DoppioClick sul Listbox.

            attenzione, non fa lo scarico del magazzino.

            attenzione che il file Magazzino e test1 devono stare nella stessa cartella.

            ecco il file
            http://www.filedropper.com/test1_4

            Ciao By Sal (8-D

          • AvatarKris_9951
            Partecipante
              Post totali: 110

              Ciao BySalv!

              Ho provato e funziona benissimo :-)

              Purtroppo però ho bisogno della userform perchè il doppio click sulla cella del vero file apre già una UserForm la quale contiene diversi pulsanti che svolgono diverse azioni sulla cella attiva ed io vorrei integrare la UserForm in questione con il pulsante “Verifica Disponibilità” (molte delle quali sono opera tua e di Sid)

              Ho provato ad adattare il codice alla mia esigenza ma ovviamente non ci sono riuscito :wacko:

              Mi aiuteresti? :whistle:

              P.s. Ho visto che nel codice fai riferimento a Foglio1 ma visto che ci sono diversi fogli in questione credo conviene fare riferimento ad ActiveSheet per quanto riguarda il foglio ed ActiveCell per quanto riguarda la cella da usare come riferimento per la ricerca dati sull’altra tabella

              Grazie ancora per tutto!! :bye:

            • BySalvBySalv
              Amministratore del forum
                Post totali: 547

                Ciao Kriss, ecco il file, ho avuto da fare, premi il pulsante e si apre il listbox, scegli il codice ed avrai i risultati, ti ho messo anche una selezione per il filtro.

                però non sarà possibile scrivere i dati sul foglio selezionando i dati nel listbox, questo perche, dove dovrebbe scriverli?

                nel tuo file Test1 come vedi ci sono 2 codici “AAA” e “BBB”, su quale di questi devono andare i dati.

                con il doppioclick riportavo in memoria la riga selezionata e di conseguenza sapevo dove dovevano andare i dati, ma con il pulsante non so quale sia la riga per inserire i dati, ecco perche avevo scelto tale sistema.

                il link al file
                http://www.filedropper.com/test1_7

                Ciao By Sal (8-D

              • AvatarKris_9951
                Partecipante
                  Post totali: 110

                  Ciao BySalv,

                  grazie per l’aiuto :-)

                  Direi che ci siamo quasi. Purtroppo non riesco a modificare quelle piccole sfaccettature che renderebberro il tutto funzionale per le mie esigenze.

                  Riassumo ciò che mi servirebbe e che non sono riuscito a modificare:

                  – Le ComboBox nella UserForm non servono perchè nel momento in cui la UserForm si apre, la ListBox deve visualizzare i dati relativi al contenuto della cella attiva del foglio attivo in quel momento; quindi supponiamo che la cella attiva prima di aprire la UserForm è la cella A9 ed il foglio attivo è il Foglio1, nel momento in cui si apre la userform la ListBox deve visualizzare i dati presi dalla cartella GestioneMagazzino in riferimento al valore contenuto in A9 del foglio attivo in quel momento.

                  Anche la ComboBox2 non serve perchè il criterio di ricerca è visualizzare tutto ad eccezione di “PRELEVATO”.

                   

                  I dati riportati dalla ListBox non vanno scritti da nessuna parte in quanto quella UserForm serve solo per visualizzare una disponibilità in magazzino in modo da evitare di “zompettare” tra una cartella e l’altra.

                   

                  Grazie mille per il supporto! :-)

                • BySalvBySalv
                  Amministratore del forum
                    Post totali: 547

                    Ciao Kriss ecco la modifica

                    http://www.filedropper.com/test1_8

                    Ciao By Sal (8-D

                  • AvatarKris_9951
                    Partecipante
                      Post totali: 110

                      Ottimo!

                      Funziona alla grande :-)

                      Dovrei mettere una If che faccia comparire una MsgBox nel caso il file GestioneMagazzino non sia presente nella cartella del file TEST per evitare la finestra di Debug.

                      Cosa e dove potrei scriverla? :whistle: :whistle: :-)

                      Grazie per l’aiuto :-)

                    • BySalvBySalv
                      Amministratore del forum
                        Post totali: 547

                        Ciao ecco la modifica da fare nel modulo della userform

                        Private Sub UserForm_Activate()
                        Dim r, c, x, n, sh, wb, fg, sPath, Ind, rng, sh1 As Worksheet
                        
                        If dd = "" Or Cc <> 1 Then
                            MsgBox "Attenzione! non si è selezionato un codice della colonna ""A""", vbCritical
                            FRM_DisponibilitaMagazzino.Hide
                            Exit Sub
                        End If
                        sPath = ActiveWorkbook.Path & "\"
                        wb = "GestioneMagazzino.xlsx"
                        fg = "Database"
                        ListBox1.Clear
                        Application.ScreenUpdating = False
                        Ind = sPath & wb
                        If Dir(Ind) = "" Then '---------------righe aggiunte
                            MsgBox "File o Cartella non trovata", vbCritical, "Controllo dati"
                            FRM_DisponibilitaMagazzino.Hide
                            Exit Sub
                        End If '---------------------------------------
                        Workbooks.Open Filename:=Ind
                        ActiveWorkbook.Worksheets(fg).Select
                        n = 0
                        For x = 6 To Cells(Rows.Count, 4).End(xlUp).Row
                            If Cells(x, 4) = dd And Cells(x, 10) <> "PRELEVATO" Then
                                With ListBox1
                                    .AddItem
                                    .List(n, 0) = Cells(x, 4)
                                    .List(n, 1) = Cells(x, 5)
                                    .List(n, 2) = Cells(x, 6)
                                    .List(n, 3) = Cells(x, 7)
                                    .List(n, 4) = Cells(x, 8)
                                    .List(n, 5) = Cells(x, 9)
                                    .List(n, 6) = Cells(x, 10)
                                    n = n + 1
                                End With
                            End If
                        Next x
                        ActiveWorkbook.Close
                        End Sub

                        devi aggiungere solo le righe aggiunte.

                        Ciao By Sal (8-D

                      • AvatarKris_9951
                        Partecipante
                          Post totali: 110

                          Ciao BySalv!

                          Grazie mille per l’aiuto.

                          Problema risolto 😊 :good:

                        Devi essere loggato per rispondere a questa discussione.

                        Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                        Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                        Chiudi