Excel e gli applicativi Microsoft Office Help per file tutorial online

Login Registrati
Stai vedendo 25 articoli - dal 1 a 25 (di 106 totali)
  • Autore
    Articoli
  • #36848 Score: 0 | Risposta

    bitphone
    Partecipante
      1 pt

      Salve ragazzi, non sono esperto, anzi e' da poco e sporadicamente, che mi sono avvicinato a questo mondo di programmazione VBA. Sto seguendo un tutorial online ( in inglese ) dove mostra passo passo come creare una userform per tenere un inventario. Mi sono bloccato al codice Vlookup, e non so come uscirne. Se visionate il file in allegato ( che non e' finito ) noterete degli appunti personali ( in inglese ) per cercare di capire come poter risolvere da solo....

      Premetto che tutta la programmazione non e' farina del mio sacco, ma come riportato in oggetto e' frutto di un tutorial online che sto seguendo passo passo, fedelmente. Ed e' per quello che non riesco a capire come mai non va, visto che ho controllato e ricontrollato se da qualche parte ho commesso qualche errore di battitura. A me sembra tutto uguale.

      Se qualcuno ha voglia di farmi capire dove sbaglio lo ringrazio anticipatamente.

      Poi se volete il link youtube da seguire anche voi, oppure una volta terminata la programmazione volete che vi condivido il file finito, basta chiedere. Con molto piacere. Mi dispiacerebbe mollare proprio adesso. Il video completo dura piu' di un ora e sono arrivato al minuto 48 in 5 giorni......sono quasi alla fine....help me please.

      Allegati:
      You must be logged in to view attached files.
      #36850 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        bitphone ha scritto:

        Mi sono bloccato al codice Vlookup, e non so come uscirne

        In pratica stai cercando di utilizzare nua funzione del foglio di lavoro trattandone l'equivalente via codice (e volendo aprire una parentesi enorme, suggerirei di utilizzare il metodo Find di un oggetto Range invece che una Worksheetfunction, ma visto che stai imparando, penso che possa andare bene 🙂 )

        Ho visto che ti sei trascritto la sintassi del comando.

        L'istruzione che hai scritto è:
        Me.txt_Rate.Value = Application.WorksheetFunction.VLookup(Me.cmb_Product, sh, Range("B:D"), 2, 0)
        e il tuo appunto di sintassi è:
        'VLOOKUP(search_value; lookup_table; column_num; [ match_type])

        Come vedi Vlookup accetta tre parametri obbligatori e uno opzionale, ma nella tua istruzione ci sono cinque parametri.
        Chiediti dunque cosa è "sh" e se non dovrebbe essere scritto invece sh.Range("B:D")
        (e chiediti perchè, naturalmente 🙂 )

        ... sempre ammesso che il problema sia qui, dal momento che non dici perché ti sei bloccato e non sai come uscirne. Ricevi un messaggio di errore? se sì, dove? e quale è il messaggio? se no, non ottieni il risultato desiderato? quale sarebbe il risultato? Come vedi ci son molte informazioni da dare quando si cerca aiuto 😉

         

         

        #36853 Score: 0 | Risposta

        bitphone
        Partecipante
          1 pt

          Buongiorno Vecchio frac e grazie per la tua risposta. Hai perfettamente ragione, preso da questo problema ho dimenticato di scrivere due righe riguardo il funzionamento. In pratica ( nella userform Inventory_Managment_System) quando seleziono un prodotto dalla cmb_Product e il tipo di transazione dalla cmb_Type, deve inserire il Rate in base al tipo di transazione ( acquisto o vendita) e aggiungerlo attraverso il Btn_Add nella scheda Product_Master una volta assegnata la quantita'. Questo comando ( Vlookup) e' un comando nuovo per me, ed e' la prima volta che lo incontro nei vari esercizi che ho fatto. Ovviamente mi rendo conto che avrei bisogno di seguire un corso almeno di quelli base, per ovviare ad alcune lacune che credo mi rimarranno se continuo a fare da solo. Ma, sai, il tempo da dedicarci non e' molto e quello che posso lo faccio. Ti allego l'errore che mi compariva prima di seguire il tuo consiglio e scrivere sh.range....Ora non compare piu' il messaggio in allegato( cattura.jpg), ma quando vado ad aggiungere il prodotto con il tasto Add mi da errore di run time 1004( cattura2.jpg e cattura3.jpg). Pero' , se vado nella scheda Sale_Purchase, noto che comunque il prodotto lo ha aggiunto.

          Allegati:
          You must be logged in to view attached files.
          #36859 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Ho ricostruito il flusso delle operazioni. Quando inserisci i valori richiesti (prodotto, tipo e quantità), la sub del pulsante Add inserisce correttamente nel foglio Master i valori di input e poi svuota i vari campi. Purtroppo svuotare i vari campi fa scatenare gli eventi _Change della combo Type e della combo Product.

            Per risolvere devi uscire dalla sub se cmb_product o cmb_type hanno valore nullo:

            ' nella routine Private Sub cmb_Product_Change()
            If Me.cmb_Product.Value = "" Or Me.cmb_Type.Value = "" Then Me.txt_Rate.Value = "": Exit Sub

            ' nella routine Private Sub cmb_Type_Change()
            If Me.cmb_Product.Value = "" Or Me.cmb_Type.Value = "" Then Me.txt_Rate.Value = "": Exit Sub

             

            #36864 Score: 0 | Risposta

            bitphone
            Partecipante
              1 pt

              Ciao, facendo questo pero' non mi fa piu' vedere il rate mentre compilo il form, me lo lascia vuoto e di conseguenza quando premo su Add mi restituisce un errore.

              #36865 Score: 0 | Risposta

              bitphone
              Partecipante
                1 pt

                Cmq, affascinante la sfida continua, rimedi ad un problema e ne spunta un altro da qualche altra parte. Credo sia lo sprone giusto per migliorarsi. Anche se ci sta che per andare avanti bisogna chiedere aiuto a chi ne capisce di piu'...  

                #36873 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  Mentre ci sto pensando su, mi sono accorto che c'è un'altra cosa che non va.

                  Nel codice della routine cmb_Product_Change dopo Else manca il corrispondente ElseIf che vedi nella successiva routine cmb_Type_Change (ed è logico che è più giusta questa).

                   

                  #36880 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Il punto è che quando azzeri le combobox si scatenano gli eventi _Change dei medesimi, ed essendo azzerati il Vlookup fallisce.

                    Ho trovato una soluzione ma implica costruire una variabile booleana visibile a livello di modulo che se è True esce dalla sub dell'evento Change delle due combobox Product e Type (viene impostata a True prima di azzerarle e poi impostata a False subito dopo per permettere l'elaborazione continua delle informazioni finchè non premi Add).

                    Vorrei anche osservare che sarebbe utile mettere sempre Option Explicit in testa ai moduli e quindi sarebbe necessario dichiarare sempre le variabili. Sarebbe utile anche indentare meglio il codice per la sua leggibilità.

                    Visto che stai imparando, è meglio imparare bene 🙂

                    Allegati:
                    You must be logged in to view attached files.
                    #36889 Score: 0 | Risposta

                    bitphone
                    Partecipante
                      1 pt

                      Sono le lacune di cui parlavo prima.....   Ho provato ad inserire la variabile da te suggerita, ma probabilmente avro' combinato qualche pasticcio mentre cercavo da solo di arrivare ad una soluzione, e mi restituisce lo stesso errore. Avevo annullato i clear datas ed effettivamente funzionava bene.Nel frattempo continuero' a capirci qualcosa di piu'.

                      Ho rivisto il video tutorial ed effettivamente ho notato che il tipo aveva scritto sh.range. Solo che l'ho notato mandando il video piu' avanti. Si vede che se ne era accorto e l'ha corretto dimenticandosi di riferirlo...  

                      Continuo a sbatterci la testa. E continuero' ad ultimare il tutorial. Se non ti crea problemi vorrei poterti disturbare una volta completato il progetto. Sicuramente ci saranno altri errori da sistemare.

                      Ti ringrazio per adesso e ti auguro un buon fine settimana.

                      #36894 Score: 0 | Risposta

                      vecchio frac
                      Senior Moderator
                        272 pts

                        bitphone ha scritto:

                        Se non ti crea problemi

                        Ma quando mai, siamo qui apposta. Ciao e buon lavoro 🙂

                        #36920 Score: 0 | Risposta

                        bitphone
                        Partecipante
                          1 pt

                          Ok, Vecchio frac.

                          Ho finito proprio in questo momento di trascrivere tutto il codice. Ho corretto delle cose andando a spulciare online. Da quello che posso aver constatato durante la prova finale del file, sembra che l'unico intoppo sia rimasto proprio quello dell'inizio di questo post. Se non dopo cena, domani riscrivo il codice che mi hai dato tu e poi riprovo. In ogni caso alleghero' il file completo, nel caso possa tornare utile a qualcun'altro.

                          #36925 Score: 0 | Risposta

                          vecchio frac
                          Senior Moderator
                            272 pts

                            Mi viene in mente di suggerirti anche di contattare l'autore del tutorial. Se tu hai copiato fedelmente il programma, e ci sono i problemi legati all'evento Change delle combobox che vengono svuotati e quindi la VLookup fallisce, saprà aiutarti meglio di me.

                            Comunque siamo qui per supportarti ancora, se hai bisogno 🙂

                            #36927 Score: 0 | Risposta

                            bitphone
                            Partecipante
                              1 pt

                              Buongiorno e buona Domenica. In effetti lo avevo contattato ma ovviamente non ho ricevuto risposta. Visto che ci siamo ti dico che ho inserito la tua variabile booleana ma restituisce sempre lo stesso errore. Dovrei rifare il codice dall'inizio, per i pulsanti Add e Update. Utilizzando il cerca.vert magari. Ho notato che essendo il mio excel in italiano, il tizio scriveva ad un certo punto SUMIFS e naturalmente quando lo andavo a trascrivere non me lo riconosceva, l'ho dovuto sostituire con SOMMA SE, come ad esempio lui usa le virgole sul .columnwidth mentre io ho dovuto sostituirle con il punto e virgola. Devo studiare.....  

                              #36928 Score: 0 | Risposta

                              vecchio frac
                              Senior Moderator
                                272 pts

                                bitphone ha scritto:

                                ho inserito la tua variabile booleana

                                Ok ma io non ho inserito solo la variabile a inizio modulo, l'ho anche utilizzata nel contesto, hai visto come? altrimenti è inutile 😀

                                bitphone ha scritto:

                                essendo il mio excel in italiano

                                Sì, la localizzazione delle formule è un altro problema di Excel. Trasformando Excel i italiano, hanno anche cambiato i simboli che identificano righe e colonne nelle formule, come hai notato. E ciò acca de con qualsiasi localizzazione di Excel nelle varie lingue. Hanno fatto un disastro.

                                Molti anni fa, prima di VBA, in Word c'era una specie di ibrido, un linguaggio di programmazione derivato dalle classiche macro, ma non ancora uno scripting strutturato come VBA. Era una traduzione in italiano dei comandi di Word. Si chiamava Wordbasic (esiste ancora come modello di linguaggio, per fortuna è ben nascosto in Word e nessuno lo sa). I comandi andavano scritti in italiano ma le strutture di controllo (if, loop, for) in inglese. Un miscuglio pazzesco (tipo ".InizioDocumento").

                                #36931 Score: 0 | Risposta

                                bitphone
                                Partecipante
                                  1 pt

                                  Per adesso ho disabilitato i codici per lo svuotamento delle box. Ho testato il file in tutte le sue funzionalita' e sembra andare bene. Il file e' completato e lo allego nel caso in cui qualcun'altro volesse divertirsi a capire come fare per farlo funzionare con la programmazione data attraverso il tutorial. ( non so se posso allegare il link youtube ). Nel caso lo allego volentieri. Io continuero' a sbatterci la testa per vedere se ne esco fuori. Volevo anche inserire un tasto a parte per svuotare le box ma si tratterebbe soltanto di raggirare il problema.

                                  Allegati:
                                  You must be logged in to view attached files.
                                  #37009 Score: 0 | Risposta

                                  bitphone
                                  Partecipante
                                    1 pt

                                    Buongiorno, sinceramente non ho avuto tempo in questi giorni per continuare a smanettare sul file. Poi oggi, cercando di inserire dei prodotti mi sono reso conto che e' piu' pratico per me utilizzare il form cosi' come l'avevo lasciato, evitando quindi di azzerare i parametri delle varie box, perche' a quel punto evito di dover ricompilare box che contengono il valore del prodotto caricato prima. Ora pero' mi piacerebbe poter inserire a fianco una immagine che ovviamente corrisponda al prodotto selezionato. Mi potreste indicare un link su questo forum dove attingere info in questo senso?  Grazie mille.

                                    #37010 Score: 0 | Risposta

                                    vecchio frac
                                    Senior Moderator
                                      272 pts

                                      bitphone ha scritto:

                                      dove attingere info in questo senso?

                                      C'è una listbox in fondo a questa pagina, "Cerca nel forum", che può aiutarti a ripescare le discussioni in cui compare una certa parola. E' lodevole l'iniziativa di arrangiarsi, cui non siamo abituati 🙂

                                      Comunque puoi aprire un nuovo thread sull'argomento, magari qualcuno che ti imbecca sulla strada giusta salta fuori 😉
                                      (inserisci un controllo immagine sul form, poi ci inserisci un'immagine con LoadPicture, il percorso dell'immagine è locale, il formato preferito è jpg, nella combobox ci sarà una colonna non visibile che contiene il nome dell'immagine, stabilito che il percorso sarà fisso).

                                       

                                      #37011 Score: 0 | Risposta

                                      bitphone
                                      Partecipante
                                        1 pt

                                        Grazie, come al solito velocissimo e gentilissimo. Diciamo che l'immagine deve essere dinamica, ad ogni prodotto selezionato dalla box Prodotto deve aggiornarsi l'immagine corrispondente al prodotto. Avevo gia' utilizzato il "Cerca" sul forum con la parola immagine ma fino ad ora non ho beccato quello che corrisponde alle mie intenzioni. Continuero' a cercare. Grazie ancora.

                                        #37012 Score: 0 | Risposta

                                        vecchio frac
                                        Senior Moderator
                                          272 pts

                                          Guarda, ho preparato per te un piccolo file di test. Avvialo e verifica se fa al caso tuo (cerca le immagini jpg in cartella Immagini, se non ne hai cercane qualcuna su internet o convertine una esistente). Purtroppo il limite del formato dipende dal controllo image.

                                          Allegati:
                                          You must be logged in to view attached files.
                                          #37014 Score: 0 | Risposta

                                          bitphone
                                          Partecipante
                                            1 pt

                                            Si, funziona benissimo. Questo test, una volta caricate le immagini nella cartella, mi fa vedere tutti i file nella listbox. Poi io con il doppio click la scelgo. Nel mio caso ho un magazzino nella userform frm_Inventory_Managment_System nella combo "Product". Quando seleziono il prodotto dovrebbe comparire di lato ( ancora da organizzare ) la foto corrispondente. Comunque lo start e' ottimo, grazie. Del resto per imparare bisogna studiare e sbagliare...  

                                            #37015 Score: 1 | Risposta

                                            vecchio frac
                                            Senior Moderator
                                              272 pts

                                              Come vedrai, sembra che la listbox abbia una colonna sola (quella che mostra il nome prodotto, "immagine 1" nel file di test), ma in realtà sono due. La seconda colonna, di larghezza zero e quindi non visualizzata, conserva il percorso completo del file jpg, pertanto una volta selezionato l'elemento, si può facilmente risalire al suo nome completo, con cui impostare la proprietà Picture del controllo Immagine.

                                              Concettualmente è semplice 🙂

                                              bitphone ha scritto:

                                              Del resto per imparare bisogna studiare e sbagliare

                                              Sì, giusto. Ma ormai non sei più "totalmente inesperto" e quindi abbiamo fiducia in te 😉

                                              #37130 Score: 0 | Risposta

                                              bitphone
                                              Partecipante
                                                1 pt

                                                Dunque, guardando un po in giro sul web mi sono imbattuto in un tutorial dove spiega esattamente come inserire una foto in una userform selezionando il nome da una combo box. Non e' difficile e l'ho fatto. Soprattutto perche' non riuscivo a capire dove sbagliavo facendo di testa mia.

                                                Private Sub ComboBox1_Change()
                                                myimg = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 3)
                                                Me.Image1.Picture = LoadPicture(myimg)
                                                Me.Label1 = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)
                                                End Sub

                                                In questo esempio, nelle proprieta' Rowsource della combobox1 ho associato una selezione del foglio1 - celle dalla B1 alla E4, giusto per fare dei test ( assegnandole un nome a piacere, nel mio caso l'ho chiamata bolla ). Se non si fa questo cambiamento ovviamente non funziona. Nel caso del file che vorrei migliorare, non posso fare allo stesso modo. Mi da errore sconosciuto, senza debug. Non posso dare un nome alla selezione e riportarlo nelle proprieta' rowsource della Cmb_Product perche' mi restituisce l'errore. Il principio dovrebbe essere quello del file di esempio ma non capisco come far leggere dalla lista cmb_Product.

                                                Allegati:
                                                You must be logged in to view attached files.
                                                #37137 Score: 0 | Risposta

                                                bitphone
                                                Partecipante
                                                  1 pt

                                                  Buongiorno, ieri avevo mandato un messaggio ma non so perche' non lo ha caricato. Quando andavo a rimandarlo mi diceva che era un duplicato. Ad ogni modo, oggi non sono a casa ma volevo giusto riportare cosa avevo fatto. Non ho un file da allegare da questo pc ma se serve lo invio una volta a casa. Quello che ho fatto e' seguire un tutorial su come inserire le foto in una userform dalla scelta su una combobox. L'unica cosa che dovevo fare prima di inserire il codice era quella di selezionare le celle del foglio dove erano inseriti i dati ed assegnare un nome a questa selezione. Il nome assegnato andava inserito nella proprieta' Rowsource della combobox, e tutto filava liscio. Ho provato a fare lo stesso con il file sul quale sto lavorando e ovviamente non me lo fa fare, mi restituisce un errore ma senza debug. Lo so che in questo modo e' difficile capire  e magari appena possibile alleghero' il file di test. Grazie

                                                  #37139 Score: 0 | Risposta

                                                  vecchio frac
                                                  Senior Moderator
                                                    272 pts

                                                    bitphone ha scritto:

                                                    ieri avevo mandato un messaggio

                                                    Forse era finito nello spam, devo controllare. In questi giorni si verificano problemi di falsi positivi.

                                                    Nel merito, sarebbe utile capire qual è l'errore segnalato. Come già hai ben intuito, quando puoi allega il file.

                                                    #37141 Score: 0 | Risposta

                                                    vecchio frac
                                                    Senior Moderator
                                                      272 pts

                                                      vecchio frac ha scritto:

                                                      Forse era finito nello spam

                                                      Infatti era finito nello spam e ho ripristinato il messaggio.

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 106 totali)
                                                    Rispondi a: Help per file tutorial online
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: