You are here:--Assegnare alle variabili un valore estratto da una cella
Assegnare alle variabili un valore estratto da una cella2019-10-26T00:43:04+01:00

Home Forum Domande su Excel VBA e MACRO Assegnare alle variabili un valore estratto da una cella

  • Autore
    Articoli
  • AvatarTerradillo
    Partecipante
      Post totali: 9

      Ciao a tutti, in particolare a By Sal

      ho cercato di studiare un pò per creare una macro che inserisse i dati presenti in un elementare finestra di inserimento dati ( non un vero  e proprio userform per intenderci).

      La macro funziona bene, quello che vorrei fare è assegnare il valore delle variabili worksheets.select e sheets.select in base ad una coppia di celle con menu a tendina.

      In pratica in base a ciò che c’è nelle celle di riferimento, la macro dovrò inserire i dati raccolti nel foglio e nella tabella adatta.

      Allego un file di esempio dove la macro svolge il lavoro perfettamente ma in maniera statica ovvero sempre verso lo stesso foglio

      questa è la macro:

      Sub InserisciOperazioni()

      Dim DATA As Date

      Dim ACCOUNT As String

      Dim BANK As String

      Dim OPERAZIONE As String

      Dim DARE As Currency

      Dim AVERE As Currency

       

      With Sheets(“Home”)

      DATA = .Cells(13, 1).Value

      ACCOUNT = .Cells(13, 2).Value

      BANK = .Cells(13, 3).Value

      OPERAZIONE = .Cells(13, 4).Value

      DARE = .Cells(13, 5).Value

      AVERE = .Cells(13, 6).Value

       

      End With

       

      Call InsOper(DATA, ACCOUNT, BANK, OPERAZIONE, DARE, AVERE)

       

      End Sub

       

      e continua con il secondo modulo:

       

      Sub InsOper(DATA As Date, ACCOUNT As String, BANK As String, OPERAZIONI As String, DARE As Currency, AVERE As Currency)

      Dim riga As Integer

      Dim v As Variant

      riga = 12

      Worksheets(“Banca_1”).Select

      Do

      riga = riga + 1

      v = Sheets(“Banca_1”).Cells(riga, 2).Value

      Loop While Not IsEmpty(v)

      With Sheets(“Banca_1”)

      .Cells(riga, 2).Value = DATA

      .Cells(riga, 3).Value = ACCOUNT

      .Cells(riga, 4).Value = BANK

      .Cells(riga, 5).Value = OPERAZIONI

      .Cells(riga, 6).Value = DARE

      .Cells(riga, 7).Value = AVERE

      End With

      MsgBox (“Operazione aggiunta con successo”)

      End Sub

      Come si può vedere la macro punta sempre alla prima tabella “B3:G3” del foglio “Banca_1″

      io vorrei tramite due celle a tendina cambiare la tabella e il foglio a cui far puntare la macro.

      Una sorte di SE(CELLA AX=”UTENTE_1″ E SE CELLA AY=”BANCA_3” allora inserisci i dati in foglio banca_3 nella prima riga vuota utile della tabella Utente_1.

       

      Spero di essere stato chiaro.

      Ringrazio tutti coloro che vorranno aiutarmi a capire e trovare una soluzione.

    • Avatarpatel
      Partecipante
        Post totali: 10

        Assegna un nome ai range su cui vuoi operare, metti i nomi nel menu a tendina e poi utilizza la notazione

        Range(cellaDelMenu.Text)

        Se non riesci posta un link al tuo file

      • AvatarTerradillo
        Partecipante
          Post totali: 9

          Ciao grazie per la risposta,

          dato che quando chiedo aiuto principalmente tento di imparare dalle risposte che i più esperti mi danno, cerco di capire la soluzione proposta e provo ad applicarla. Posto un link del mio file di esempio per il risultato.

          https://www.dropbox.com/s/midriz6w38i00av/Esempio%20per%20nome%20della%20variabile%20foglio.xlsm?dl=0

          Grazie

        • Avatarpatel
          Partecipante
            Post totali: 10

            Però, se vuoi imparare potresti almeno provare a seguire i consigli, non vedo menù a tendina nel tuo file

          • AvatarTerradillo
            Partecipante
              Post totali: 9

              Campo Account e campo Bank

              infatti ci sto lavorando

              il file l’ho inviato senza fare le modifiche che mi ha suggerito.

               

              Ti tengo informato se faccio progressi.

              Grazie

            • AvatarTerradillo
              Partecipante
                Post totali: 9

                Purtroppo non riesco a capire il tuo consiglio, ho troppe scarse conoscenze.

                Avevo incrociato questa funzione leggendo in rete, Worksheet_SelectionChange e immaginavo potesse essere quella che cercavo, la stavo studiando mentre è arrivato il tuo consiglio, e adesso mi sono bloccato.

                Faccio fatica perché sono solo 3 settimane che ho approcciato al vba, abbi pazienza.

                 

                 

                 

              • Avatarpatel
                Partecipante
                  Post totali: 10

                  lascia perdere la gestione degli eventi per il momento, procedi per gradi seguendo il mio consiglio e poi modificando la macro che hai già, poi passeremo agli eventi, ma non Worksheet_SelectionChanga, ma  Worksheet_Change

                • AvatarTerradillo
                  Partecipante
                    Post totali: 9

                    Ciao purtroppo non riesco a realizzare ciò che ho in testa di fare.

                    Ho capito come cambiare i riferimenti al foglio e alla tabella in base all’utente e alla banca, ma non riesco a capire come assegnare un nome variabile. Non capisco la sintassi delle funzioni.

                    Ho provato ma no riesco, in verità sto procedendo per tentativi che non so se hanno un senso logico.

                    Fin qui ho assegnato il nome al range dei due campi con menu a tendina

                    ho anche capito come spostare il riferimenti della tabella dei vari utenti nei singoli fogli, ma proprio non riesco a dire che “il foglio selezionato è dato dal valore del campo bank ” e “la tabella è data dal nome del campo account.”

                    Se mi puoi aiutare ti sarei grato.

                    Grazie

                  • Avatarpatel
                    Partecipante
                      Post totali: 10

                      allega il file con le modifiche fatte

                    • AvatarTerradillo
                      Partecipante
                        Post totali: 9
                      • Avatarpatel
                        Partecipante
                          Post totali: 10

                          Con i menu a tendina scegli utente e banca, in base a questa scelta devi selezionare il foglio ed il range, quindi i nomi dei range devono essere det tipo Utente_1_Banca_2 ,Utente_2_Banca_3 ecc…. quindi unendo il contenuto delle celle B13 e C13 si ottiene il nome del range su cui copiare

                          • AvatarTerradillo
                            Partecipante
                              Post totali: 9

                              Sto provando a farlo.

                              Ho capito in linea di massima cosa dovrei fare, ma come ti dicevo sono alle primissime armi, quindi procedo per tentativi.

                              Purtroppo mi blocco sulla sintassi.

                          • Avatarpatel
                            Partecipante
                              Post totali: 10

                              Non mi sembra un problema di sintassi ma di strategia da usare, inoltre il tuo quesito non è affatto banale

                              • Questa risposta è stata modificata 3 settimane, 1 giorno fa da Avatar patel.
                            • Avatarpatel
                              Partecipante
                                Post totali: 10

                                Con i menu a tendina scegli utente e banca, in base a questa scelta devi selezionare il foglio ed il range, quindi i nomi dei range devono essere det tipo Utente_1_Banca_2 ,Utente_2_Banca_3 ecc…. quindi unendo il contenuto delle celle B13 e C13 si ottiene il nome del range su cui copiare

                                non mi sembra che tu abbia cambiato i nomi dei range in questo modo

                              • AvatarTerradillo
                                Partecipante
                                  Post totali: 9

                                  Purtroppo non sono riuscito e ho rinunciato. Farò in altro modo. Grazie per l’aiuto

                                • Avatarpatel
                                  Partecipante
                                    Post totali: 10

                                    prima di rinunciare potresti mostrare il punto a cui sei arrivato

                                  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