Sviluppare funzionalita su Microsoft Office con VBA Errore runtime 13, tipo non corrispondente.

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

    Genci
    Partecipante

      Ciao tutti!

      Sono nuovo nel forum ed alle prime armi con il meraviglioso VBA di Excel.

      Con quanto ho imparato su YouTube, PDF e forum in giro per il web, sto cercando di crearmi il mio primo Form. Mi trovo già in difficoltà, perché non trovo soluzioni in merito, con un ostacolo. Il Form ha caselle di testo, combobox, pulsanti di opzione e di controllo, ed una multipla e dove sono distribuiti i suddetti strumenti. Ho anche i pulsanti "avanti" e " indietro" ed "aggiorna", "pulisci" ed "esci". Le combo box riprendono I valori da tabelle nel Foglio2 del file, mentre Foglio1 è riservato al database. Sono 24 record in tutto, cioè no "aggiungi" ma solo "aggiorna". Il problema è che, quando devo aggiornare qualche cosa su un record(p.es. checkbox), ma una o più combo box sono vuote, scatta l'allarme "errore runtime 13 tipo non corrispondente, sulla riga contenente l'elemento, evidenziato in giallo. Ed in effetti, quando vado con il mouse sopra la stringa in questione letteralmente FC = comboxfc.text, FC = 0, mentre sopra comboxFc.Text viene comboxFc.Text = "". Ho rigorosamente formattato a dovere le tabelle in numeri, e dichiarati come long, o integer, tanto succede lo stesso. La stringa ha il seguente sintassi:

      FC =ComboxFc.Text

      Cells(currentrow, 37).value = FC.

      Dim FC As Long all'inizio sub, comunque.

      Ed un leggero OT, se me lo permettete: un gruppo di pulsanti d'opzione "non si aggiorna" a dovere quando scorrono i record, quando si trovano in una cella vuota, ma mantengono la lettura dell'ultima cella con valore, però cambiano correttamente quando trovano una cella con valore. Perché?

      Grazie mille per chi avrà la cortesia ed il tempo di aiutarmi! E buona serata a tutti!

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

      patel
      Moderatore
        51 pts

        allega un file xlsm di esempio, non immagini

        #16650 Score: 0 | Risposta

        Genci
        Partecipante

          Grazie, Patel!

          Allego il file

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

          patel
          Moderatore
            51 pts

            Complimenti per l'ottimo lavoro fatto, hai dimensionato FC come long, quindi non può assumere un valore vuoto, hai 2 alternative, o lo dimensioni variant oppure correggi così

            `    If ComboxFc <> "" Then
                    FC = ComboxFc
                    Cells(currentrow, 37).Value = FC
                End If`
            #16658 Score: 1 | Risposta

            albatros54
            Moderatore
              89 pts

              oltre a quanto detto da Patel(saluto), il tutto funziona se tu hai attivo il figlio"foglio1",ma se tu non hai attivato il foglio in questione il tutto non funziona, quindi, secondo me, dovresti aggiungere qualche riga di codice nell'evento "Initialize" della tua userform, come il codiceche ti posto:

              `Private Sub UserForm_Initialize()
              Dim wb As Worksheet
              Set wb = Sheets("Foglio1")
              With wb
              currentrow = 2
              ' tutto il tuo codice
              ......
              ......
              ------
                      ElseIf Cells(currentrow, 38).Value = "" Then
                          Optsial = False And Optcond = False And Optacco = False And Optinpo = False And Optssl = False And Optdsal = False
                      End If
              End With
              
              End Sub`

               

              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
              Sempre il mare, uomo libero, amerai!
              ( Charles Baudelaire )
              #16659 Score: 0 | Risposta

              Genci
              Partecipante

                Grazie Patel! E sono un po' estasiato per i complimenti, mi fa un immenso piacere. Buona giornata!  

                #16660 Score: 0 | Risposta

                Genci
                Partecipante

                  Grazie Albatros54! Veramente un suggerimento essenziale!

                  E volevo chiedervi anche una dritta in merito all'ultimo quesito del mio primo post, la mancanza di "false" nei pulsanti di opzione, durante lo scorrimento dei record, quando ci sono celle vuote, mentre gli altri gruppi si "comportano" correttamente.

                  Buona giornata!

                  #16674 Score: 1 | Risposta

                  patel
                  Moderatore
                    51 pts

                    probabilmente il problema è lo stesso che ti ho indicato prima ma devi spiegarti meglio, cosa bisogna fare per incorrere nell'errore

                    #16676 Score: 0 | Risposta

                    Genci
                    Partecipante

                      Grazie Patel!

                      Quando scorrono i record, con i pulsanti "avanti" e "indietro", mentre tutti i pulsanti di opzione vanno in stato "false", quando non trovano il rispettivo valore nella cella di turno, e in "true", quando trovano il valore di propria assegnazione, solo gli pulsanti di deambulazione fanno i "capricci", va in "true", quello che trova il valore rispettivo nella cella di turno, ma, se la prossima cella(o celle) è vuota rimane in true il pulsante precedente, come se nella cella vuota adiacente a quella con un valore ci fosse lo stesso valore, per poi cambiare correttamente, quando trova un altra cella con un valore diverso. In pratica, selezionare la pagina con la deambulazione, ed osservare il comportamento dei pulsanti d'opzione, mentre si scorrono I record con i "avanti" e "indietro". Grazie, di nuovo, e Buona domenica!

                      #16681 Score: 1 | Risposta

                      albatros54
                      Moderatore
                        89 pts

                        Da quello che ho capito.

                        Modifica le righe di codice nell'evento "cmdNext_Click" e "cmdPrev_Click" con quelle che ti posto.(Oggi troppo caldo e spiagge troppo affollate )

                        Ciao

                        ..........
                        ElseIf Cells(currentrow, 38).Value = "Sed. sul letto" Then
                                    Optssl = True
                                ElseIf Cells(currentrow, 38).Value = "Deve stare a letto" Then
                                    Optdsal = True
                                ElseIf Cells(currentrow, 38).Value = "" Then
                                    Optsial = False
                                    Optcond = False
                                    Optacco = False
                                    Optinpo = False
                                    Optssl = False
                                    Optdsal = False
                                End If
                        

                         

                         

                        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                        Sempre il mare, uomo libero, amerai!
                        ( Charles Baudelaire )
                        #16682 Score: 0 | Risposta

                        Genci
                        Partecipante

                          Grazie Albatros54!

                          Proverò appena torno a casa. Gran caldo anche qua, noi abbiamo optato per la piscina, invece, c'è l'invasione dei entroterrani al mare nostrum.🤣  buona domenica!

                          #16683 Score: 0 | Risposta

                          Genci
                          Partecipante

                            Grazie Albatros54!

                            Proverò appena torno a casa. Gran caldo anche qua, noi abbiamo optato per la piscina, invece, c'è l'invasione dei entroterrani al mare nostrum.🤣  buona domenica!

                            #17141 Score: 0 | Risposta

                            Genci
                            Partecipante

                              Ciao tutti! Anzitutto vorrei ringraziarvi per l'aiuto prezioso ed esaudiente. In seconda battuta, vorrei segnalarvi una cosa strana che mi succede. Durante l'uso dell'userform, che ho già allegato nei post precedenti, quando clicco sullo spazio verde, per uscire da un campo con il cursore, mi compare un errore, che mi dice in sostanza, che non posso richiamare l'userform, in quanto già aperto. Non mi ricordo bene l'avviso, non posso aprire adesso il file. In modalità progettazione, doppio clickando sullo spazio verde, riporta sulla sub della apertura dell'userform. Se cancellassi quella sub non mi aprirebbe la form. E, sulla "visualizza macro" non compare nulla, da assegnare al pulsante adibito sul foglio. Non ho il controllo della cosa, e non vorrei trovarmi in difficoltà a gestire l'apertura della userform, che la devo studiare bene ed imparare ammodo. Grazie!

                              Genci

                              #17142 Score: 0 | Risposta

                              Genci
                              Partecipante

                                L'ultimo post è OT.

                                Grazie per l'aiuto fondamentale! Adesso funziona tutto.

                              Login Registrati
                              Stai vedendo 14 articoli - dal 1 a 14 (di 14 totali)
                              Rispondi a: Errore runtime 13, tipo non corrispondente.
                              Gli allegati sono permessi solo ad utenti REGISTRATI
                              Le tue informazioni: