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

    ElleEsse
    Partecipante

      buongiorno a tutti

      pongo un problema relativo alla gestione di un comunissimo ListBox (di seguito le proprietà)

      il ListBox - un elenco di conti di cui propone i dati caratteristici più importanti - viene correttamente alimentato e visualizzato.. viene correttamente gestito - alla selezione del conto consegue la visualizzazione dei movimenti, etc. etc.

      ogni qualvolta vengono apportate modifiche ai saldi, una routine si preoccupa di aggiornare gli stessi sul ListBox allineandoli a quelli registrati sui fogli corrispondenti

      ora vengo al problema: alcuni elementi del ListBox così come mostrati a video NON risultano rinfrescati finchè non si procede ad uno scroll di almeno due pagine avanti o indietro  

      il controllo rimane al user form - NON viene più eseguita nessuna riga di codice - e solo dopo un paio di scroll tutti gli oggetti del ListBox risultano correttamente aggiornati

      il codice della routine di aggiornamento dei valori del ListBox è quello di seguito (poco fa ho aggiunto il codice che 'marca' ciascun elemento con un  carattere di segnatura differente ad ogni refresh successivo proprio per avere evidenza di quelli NON rinfrescati) ...

      Private Sub AggiornaLBConti()
      'aggiornamento dei soli saldi della lista LBConti, originariamente strutturata come segue:
      '0 - eventuale ">" per evidenziare livello di raggruppamento (20 pti)
      '1 - riga di CONTI in cui è reperito il conto (0 pti)
      '2 - identificativo di conto (0 pti)
      '3 - descrizione (170 pti)
      '4 - saldo quantità (quando significativa) (60 pti)
      '5 - unità di misura (quando significativa) (39 pti)
      '6 - saldo controvalore (quando significativo) (76 pti)
      '7 - divisa controvalore (quando significativo) (28 pti)
      '8 - saldo importo (76 pti)
      
      Dim riCto As Integer
      Dim indLBConti As Integer
      
      'INIZIO MODIFICA 2020 01 03
      hdCtrLBConti = hdCtrLBConti + 1
      'FINE MODIFICA
      With LBConti
         For indLBConti = 0 To LBConti.ListCount - 1
            riCto = LBConti.List(indLBConti, 1)
            If riCto <> 0 Then
      'INIZIO MODIFICA 2020 01 03 : si aggiunge un carattere di 'segnatura' del refresh per evidenziare a video eventuali "ritardi"
      'nella visualizzazione della occorrenza rinfrescata (si alternano volutamente caratteri di controllo evidentemente differenti
      'tra loro proprio per avere evidenza di eventuali differenze tra refresh successivi)
               .List(indLBConti, 0) = " " + Mid("*#°@^§", ((hdCtrLBConti - 1) Mod 6) + 1, 1)
      'FINE MODIFICA
               .List(indLBConti, 3) = .List(indLBConti, 3)
               If Sheets(shCto).Cells(riCto, 7) <> Sheets(shCto).Cells(riCto, 8) And _
                  Sheets(shCto).Cells(riCto, 7) <> divRif Then
                  'quantità significativa
                  .List(indLBConti, 4) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 13), "#,###,##0+;#,###,##0-", 10)
                  .List(indLBConti, 5) = Sheets(shCto).Cells(riCto, 7)
               End If
               If Sheets(shCto).Cells(riCto, 8) <> divRif Then
                  'controvalore significativo
                  .List(indLBConti, 6) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 14), "#,###,##0.00+;#,###,##0.00-", 13)
                  .List(indLBConti, 7) = Sheets(shCto).Cells(riCto, 8)
               End If
               .List(indLBConti, 8) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 15), "#,###,##0.00+;#,###,##0.00-", 13)
               riCto = riCto + 1
            End If
         Next
      End With
      
      End Sub

      purtroppo il risultato dopo il primo refresh è questo: alcuni elementi del ListBox NON sono caratterizzati dall'asterisco che ha contraddistinto quel primo refresh.. poi scrollando di un paio di pagine e ritornando sugli elementi 'incriminati' anch'essi risultano rinfrescati

      boh ... non è un problema insormontabile - con questa 'segnatura' ci si accorge immediatamente che la situazione non è fedelmente riprodotta e con un paio di scroll - senza più alcuna interazione col codice - tutto si sistema, però mi rimane la curiosità di capire dove sbaglio  

      mi è capitato più volte di leggere questo forum e trovare risposte interessantissime da parte di utenti senz'altro più preparati e più capaci di me, ora ne approfitto per porre un quesito che da qualche tempo mi 'tormenta' e sicuramente qualcuno saprà spiegarmi

      grazie mille per l'attenzione

      #22205 Score: 0 | Risposta

      albatros54
      Moderatore
        89 pts

        Non ho capito bene.

        Quando aggiungi una nuova voce alla listbox, sicuramente la aggiungi da una userform, che va ad aggiornare il foglio dove c'è il DataBase che carica la tua listbox, secondo me, se ho capito, dopo che tu hai aggiornato il DB con la nuova voce, devi dire alla listbox di ricaricare i dati del tuo foglio, cosi la listbox si aggiorna.

         

        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 )
        #22207 Score: 0 | Risposta

        ElleEsse
        Partecipante

          albatros54 ha scritto:

          Non ho capito bene.

          sicuramente sono io che non mi sono spiegato  

          NON vengono aggiunti elementi al ListBox

          l'unica informazione che può variare in quel ListBox - a seguito di movimentazione contabile dei conti (appunto elencati nel ListBox) - è il saldo del conto

          quando viene effettuata qualche movimentazione che va ovviamente ad aggiornare il saldo del conto, il ListBox viene allineato modificando le colonne relative ai saldi

          tutto funziona perfettamente da sempre - è qualche anno che utilizzo questa 'procedura' - eccetto  il problema già esposto: alcune righe del ListBox pur essendo aggiornate vengono proposte nella loro versione precedente finchè non si scrolla di un paio di pagine (quindi senza più alcun intervento del codice)

          ora la stessa procedura riadattata ad una nuova realtà dovrà essere utilizzata da un amico e avrei voluto risolvere questo inconveniente e non limitarmi semplicemente a evidenziarlo - come fatto - aggiungendo in testa ad ogni elemento della lista quella 'segnatura' - diversa ad ogni aggiornamento, alternando caratteri visivamente differenti tra loro ( * # ° @ ^ § ) - in modo da accorgersi del problema (e quindi a risolverlo facendo quel paio di scroll)

          ribadisco il problema - o perlomeno quello che ho rilevato io :

          il codice all'interno dello UserForm rivalorizza correttamente le colonne dei saldi di tutti i conti presenti nel ListBox riallinenadoli a quelli presenti sul foglio apposito, ma quando il controllo torna all'interazione UserForm-utente alcune righe del ListBox NON risultano visualizzate come in realtà dovrebbero finchè non si effettua uno scroll di un paio di pagine

          grazie per l'attenzione

          #22208 Score: 0 | Risposta

          albatros54
          Moderatore
            89 pts

            scusa potresti postare le righe di codice che caricano la listbox?

             

            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 )
            #22209 Score: 0 | Risposta

            ElleEsse
            Partecipante

              albatros54 ha scritto:

              scusa potresti postare le righe di codice che caricano la listbox?

              quelle che la aggiornano le ho già postate sopra - AggiornaLBConti()

              quelle che la popolano esclusivamente la prima volta sono qui di seguito

              Private Sub CaricaLBConti()
              '0 - eventuale ">" per evidenziare livello di raggruppamento (20 pti)
              '1 - riga di CONTI in cui è reperito il conto (0 pti)
              '2 - identificativo di conto (0 pti)
              '3 - descrizione (170 pti)
              '4 - saldo quantità (quando significativa) (60 pti)
              '5 - unità di misura (quando significativa) (39 pti)
              '6 - saldo controvalore (quando significativo) (76 pti)
              '7 - divisa controvalore (quando significativo) (28 pti)
              '8 - saldo importo (76 pti)
              
              Dim riCto As Integer
              Dim brkRgp As String
              Dim indLBConti As Integer
              
              'INIZIO MODIFICA 2020 01 03
              hdCtrLBConti = 0
              'FINE MODIFICA
              brkRgp = ""
              riCto = riPrimoConto
              indLBConti = -1
              With LBConti
                 .Clear
                 Do Until Sheets(shCto).Cells(riCto, 2) = ""
                    If Sheets(shCto).Cells(riCto, 4) <> brkRgp Then
                       brkRgp = Sheets(shCto).Cells(riCto, 4)
                       indLBConti = indLBConti + 1
                       .AddItem
                       .List(indLBConti, 0) = ">"
                       .List(indLBConti, 1) = 0
                       .List(indLBConti, 2) = 0
                       .List(indLBConti, 3) = brkRgp
                    End If
                    indLBConti = indLBConti + 1
                    .AddItem
                    .List(indLBConti, 0) = ""
                    .List(indLBConti, 1) = riCto
                    .List(indLBConti, 2) = Sheets(shCto).Cells(riCto, 1)
                    .List(indLBConti, 3) = Sheets(shCto).Cells(riCto, 2)
                    If Sheets(shCto).Cells(riCto, 7) <> Sheets(shCto).Cells(riCto, 8) And _
                       Sheets(shCto).Cells(riCto, 7) <> divRif Then
                       'quantità significativa
                       .List(indLBConti, 4) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 13), "#,###,##0+;#,###,##0-", 10)
                       .List(indLBConti, 5) = Sheets(shCto).Cells(riCto, 7)
                    End If
                    If Sheets(shCto).Cells(riCto, 8) <> divRif Then
                       'controvalore significativo
                       .List(indLBConti, 6) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 14), "#,###,##0.00+;#,###,##0.00-", 13)
                       .List(indLBConti, 7) = Sheets(shCto).Cells(riCto, 8)
                    End If
                    .List(indLBConti, 8) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 15), "#,###,##0.00+;#,###,##0.00-", 13)
                    If Sheets(shCto).Cells(riCto, 1) = pbCtoScadenzeId Then hdLBCtoScadenzeInd = indLBConti
                    riCto = riCto + 1
                 Loop
              End With
              
              End Sub
              #22210 Score: 0 | Risposta

              Marius44
              Moderatore
                58 pts

                Buon anno a tutti e scusate l'intromissione.

                Quando dici:

                ogni qualvolta vengono apportate modifiche ai saldi, una routine si preoccupa di aggiornare gli stessi sul ListBox allineandoli a quelli registrati sui fogli corrispondenti

                il "codice VBA" deve provvedere all'aggiornamento. Come?

                Da quanto so io, occorre "svuotare" la ListBox e "ricaricarla" attingendo ai nuovi dati. Con ciò non dovrebbe essere necessario lo scroll della Lista.

                Oppure mi son perso qualcosa per strada.

                Ciao,

                Mario

                #22211 Score: 0 | Risposta

                ElleEsse
                Partecipante

                  Marius44 ha scritto:

                  Buon anno a tutti e scusate l'intromissione.

                  ciao Mario

                  la routine AggiornaLBConti() - allegata al primo messaggio - avrebbe appunto l'obiettivo di aggiornare le sole colonne dei saldi, evitando quindi tutto quanto a quel punto superfluo.

                  normalmente - che io sappia - NON è necessario svuotare e ricaricare un ListBox per apportarne le modifiche, bensì è sufficiente agire sulle colonne che appunto si vogliono 'rinfrescare'.

                  sarà che scrivo codice da quarant'anni - e allora evitare inutili ripetizioni era un must anche perchè le risorse erano quelle che erano   - ma mi sembra del tutto inutile rialimentare tutto quando le variazioni sono circoscritte  

                  #22212 Score: 0 | Risposta

                  Marius44
                  Moderatore
                    58 pts

                    Ciao

                    Non ho assolutamente messo in dubbio la validità del tuo codice.

                    Intendevo solo quello che allego. Se selezioni un nome nella lista e cambi gruppo nella TextBox in basso e poi clicchi sul pulsante il gioco è fatto.

                    E' vero, si può fare in maniera più "professionale" ma ... funziona.

                     

                    Ciao,

                    Mario

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

                    ElleEsse
                    Partecipante

                      Marius44 ha scritto:

                      Ciao

                      ciao Mario

                      il "mio" codice è lì proprio per essere messo in dubbio  

                      ti ringrazio per l'esempio ma non è proprio quello che intendevo

                       

                      ps. tra l'altro nel tuo codice devi modificare l'inizializzazione di lRiga perchè così com'è NON lavora correttamente sugli ultimi due elementi della lista  

                      #22221 Score: 0 | Risposta

                      patel
                      Moderatore
                        51 pts

                        Ciao ElleEsse, potresti allegare un file di esempio con dati fittizi in modo da capire meglio ?

                        #22263 Score: 0 | Risposta

                        ElleEsse
                        Partecipante

                          patel ha scritto:

                          Ciao ElleEsse, potresti allegare un file di esempio con dati fittizi in modo da capire meglio ?

                          ciao Patel

                          innanzitutto.. grazie per l'interessamento  

                          il file di esempio con dati fittizi.. beh.. magari poi ci provo.. ma sto comunque parlando di una sorta di applicativo con migliaia di righe di codice

                          eventualmente provo a vedere se riesco a enucleare la parte che presenta il problema, ma richiederebbe tempo (e fatica ) probabilmente smisurati rispetto al beneficio - mera curiosità - di risolvere l'enigma

                          tra l'altro io sono nuovo di questo forum e ignoro quali siano i vincoli dimensionali in termini di upload  

                          #22265 Score: 0 | Risposta

                          patel
                          Moderatore
                            51 pts

                            i limiti di upload possono essere superati postando un link invece che direttamente il file, ma decidi tu se ne vale la pena, prima prova a fare il refresh con

                            ListBox1.ListIndex=ListBox1.ListIndex

                            #22300 Score: 0 | Risposta

                            albatros54
                            Moderatore
                              89 pts

                              prova ad aggiungere alla fine del codice della routine"CaricaLBConti" la chiamata alle routine"AggiornaLBConti""LBConti_Click", come nel codice che ti posto

                              Private Sub CaricaLBConti()
                              '0 - eventuale ">" per evidenziare livello di raggruppamento (20 pti)
                              '1 - riga di CONTI in cui è reperito il conto (0 pti)
                              '2 - identificativo di conto (0 pti)
                              '3 - descrizione (170 pti)
                              '4 - saldo quantità (quando significativa) (60 pti)
                              '5 - unità di misura (quando significativa) (39 pti)
                              '6 - saldo controvalore (quando significativo) (76 pti)
                              '7 - divisa controvalore (quando significativo) (28 pti)
                              '8 - saldo importo (76 pti)
                              
                              Dim riCto As Integer
                              Dim brkRgp As String
                              Dim indLBConti As Integer
                              
                              'INIZIO MODIFICA 2020 01 03
                              hdCtrLBConti = 0
                              'FINE MODIFICA
                              brkRgp = ""
                              riCto = riPrimoConto
                              indLBConti = -1
                              With LBConti
                                 .Clear
                                 Do Until Sheets(shCto).Cells(riCto, 2) = ""
                                    If Sheets(shCto).Cells(riCto, 4) <> brkRgp Then
                                       brkRgp = Sheets(shCto).Cells(riCto, 4)
                                       indLBConti = indLBConti + 1
                                       .AddItem
                                       .List(indLBConti, 0) = ">"
                                       .List(indLBConti, 1) = 0
                                       .List(indLBConti, 2) = 0
                                       .List(indLBConti, 3) = brkRgp
                                    End If
                                    indLBConti = indLBConti + 1
                                    .AddItem
                                    .List(indLBConti, 0) = ""
                                    .List(indLBConti, 1) = riCto
                                    .List(indLBConti, 2) = Sheets(shCto).Cells(riCto, 1)
                                    .List(indLBConti, 3) = Sheets(shCto).Cells(riCto, 2)
                                    If Sheets(shCto).Cells(riCto, 7) <> Sheets(shCto).Cells(riCto, 8) And _
                                       Sheets(shCto).Cells(riCto, 7) <> divRif Then
                                       'quantità significativa
                                       .List(indLBConti, 4) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 13), "#,###,##0+;#,###,##0-", 10)
                                       .List(indLBConti, 5) = Sheets(shCto).Cells(riCto, 7)
                                    End If
                                    If Sheets(shCto).Cells(riCto, 8) <> divRif Then
                                       'controvalore significativo
                                       .List(indLBConti, 6) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 14), "#,###,##0.00+;#,###,##0.00-", 13)
                                       .List(indLBConti, 7) = Sheets(shCto).Cells(riCto, 8)
                                    End If
                                    .List(indLBConti, 8) = StrQtaCtvImp(Sheets(shCto).Cells(riCto, 15), "#,###,##0.00+;#,###,##0.00-", 13)
                                    If Sheets(shCto).Cells(riCto, 1) = pbCtoScadenzeId Then hdLBCtoScadenzeInd = indLBConti
                                    riCto = riCto + 1
                                 Loop
                              End With
                              AggiornaLBConti
                              LBConti_Click
                              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 )
                              #22311 Score: 0 | Risposta

                              ElleEsse
                              Partecipante

                                ciao a tutti

                                è da stamane alle 8:00 che litigo col forum  

                                messaggi inviati che poii scompaiono se aggiornati.. messaggi inviati che non vengono caricati.. boh

                                ora provo a mettere qui di seguito quanto inerente alla tematica - e che appunto da stamane cerco di postare come risposta a petel

                                 

                                 

                                 

                                 

                                 

                                allora.. ho provveduto a sfrondare convenientemente il mio 'applicativo' lasciando esclusivamente la parte utile a mostrare il problema - sicuramente ci sarà ancora del codice ora superfluo, ma ho visto che non inficia in alcun modo l'operatività

                                la procedura viene attivata premendo il pusante 'GIOCO' cui corrisponde l'esecuzione di una macro che si preoccupa di attivare l'applicazione richiamando la routine Lancia()

                                la routine Lancia() - nella sua attuale versione sisntetica - non fa altro che ordinare i conti secondo il criterio più consono alla successiva operatività e attivare l'unico user form rimasto - UFCtb

                                l'inizializzazione dello user form UFCtb consiste semplicemente nel caricamento del list box LBConti tramite la routine CaricaLBConti() che banalmente recupera da data base le informazioni da mostrare e alimenta il list box

                                ora la procedura è stata modificata in modo che alla selezione di un Conto dall'elenco corrisponda semplicemente un incremento pari a 10 del suo saldo... in realtà la selezione di un Conto comportava poi una serie di attività che potevano poi impattare i saldi di più conti e quindi solo al termine di quelle attività veniva richiamata la routine di aggiornamento del list box..

                                alla selezione di un Conto corrisponde quindi l'incremento del suo saldo sul data base, quindi il richiamo della routine AggiornaLBConti() utile ad aggiornare sul list box i saldi di tutti i conti - riallineandoli a quelli sul data base - e a segnare con uno stesso carattere particolare ad ogni ciclo di aggiornamento (la sequenza è * # ° @ ^ §  ed è ripetuta ogni sei cicli di aggiornamento in modo da avere eventuale immediata evidenza visiva delle anomalie) ciascun elemento del list box che riferisce un conto, così da avere evidenza di eventuali mancati refresh a video

                                volendo chiarire con un esempio: mi sono spostato con 2 scroll sulla terza pagina del list box, ho selezionato il conto 0038 e immediatamente lo stesso è stato incrementato e tutti i conti visualizzati marcati dall' * caratteristico della prima esecuzione di AggiornaLBConti

                                se però salgo verso l'alto ritrovo una parte di elementi mancanti di quella segnatura (il carattere *)

                                facendo un paio di scroll verso il basso e poi riportandosi su quei conti, anch'essi risultano caratterizzati dalla segnatura  

                                boh .. l'unica cosa che riesco a ipotizzare è che possa dipendere dalle dimensioni del list box e/o dalla porzione di elementi visualizzati (quindi dal rapporto tra cardinalità del list box ed elementi visualizzati sulla singola videata) quasi come se VB considerasse rinfrescato un numero di elementi superiore a quelli visualizzati senza effettivamente averlo fatto.. ma siamo nel campo delle ipotesi fantascientifiche  

                                non vedo l'ora che mi diciate dove sbaglio  

                                come sempre.. grazie a tutti per l'attenzione    

                                ps. ribadisco che la segnatura ha in qualche modo risolto il problema funzionale: l'utilizzatore scorrendo la lista si accorge del mancato refresh e lo forza con un paio di scroll garantendosi la certezza di visualizzare il dato corretto e rinfrescato, però son proprio curioso di sapere come e perchè si verifichi una tale anomalia

                                #22312 Score: 0 | Risposta

                                ElleEsse
                                Partecipante

                                  vedo che finalmente dovrei essere riuscito a rispondere alla richiesta di patel...

                                  qui allego il file

                                  grazie ancora  

                                   

                                  ps. vedo che nel posto sopra ho scritto petel invece di patel .. mi scuso per il refuso .. ma quel messaggio non mi azzardo più a toccarlo  

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

                                  albatros54
                                  Moderatore
                                    89 pts

                                    se apporti la modifica come ti ho consigliato nel post 22300, la listbox si carica con gli asterischi.

                                     

                                    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 )
                                    #22315 Score: 0 | Risposta

                                    ElleEsse
                                    Partecipante

                                      albatros54 ha scritto:

                                      AggiornaLBConti

                                      ciao Albatros

                                      naturalmente non cambia nulla (se non per il fatto di eseguire inutilmente due routine)

                                      comunque ora dovrei essere riuscito ad inviare il file sfrondato utile a giochicchiare e ad avere evidenza dell'anomalia..

                                      qualche post sopra c'è anche la descrizione dettagliata di come utilizzarlo - per chi volesse cimentarsi, prendendo atto dell'anomalia e magari trovasse la soluzione più opportuna

                                       

                                      buona Epifania a tutti

                                      #22317 Score: 0 | Risposta

                                      ElleEsse
                                      Partecipante

                                        albatros54 ha scritto:

                                        se apporti la modifica come ti ho consigliato nel post 22300, la listbox si carica con gli asterischi.

                                        è ovvio che si carica con gli asterischi.. li mette AggiornaLBConti al primo ciclo

                                        non vorrei essere polemico.. ma.. hai letto quello che ho scritto sopra?

                                         

                                        #22320 Score: 0 | Risposta

                                        albatros54
                                        Moderatore
                                          89 pts

                                          vedi questo video

                                          https://www.dropbox.com/h?preview=Cattura+03.wmv

                                           

                                           

                                          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 )
                                          #22321 Score: 0 | Risposta

                                          albatros54
                                          Moderatore
                                            89 pts

                                            ElleEsse ha scritto:

                                            non vorrei essere polemico.. ma.. hai letto quello che ho scritto sopra?

                                            Ho letto. Si vede che non ho capito oppure non sei stata/to abbastanza chiara nell'esporre il tuo problema.

                                            Buon Epifania

                                             

                                             

                                            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 )
                                            #22322 Score: 0 | Risposta

                                            ElleEsse
                                            Partecipante

                                              albatros54 ha scritto:

                                              vedi questo video

                                              grazie Albatros

                                              ma .. chiede autenticazione ..

                                               

                                               

                                              #22323 Score: 0 | Risposta

                                              ElleEsse
                                              Partecipante

                                                albatros54 ha scritto:

                                                Ho letto. Si vede che non ho capito oppure non sei stata/to abbastanza chiara nell'esporre il tuo problema.

                                                certamente non sono stato abbastanza chiaro

                                                se posso esserlo di più ..  questa è la spiegazione che avevo allegato prima .. dimmi nel contesto dove non sono stato abbastanza chiaro in modo che io possa approfondire in maniera circostanziata

                                                 

                                                 

                                                la procedura viene attivata premendo il pusante 'GIOCO' cui corrisponde l'esecuzione di una macro che si preoccupa di attivare l'applicazione richiamando la routine Lancia()

                                                la routine Lancia() - nella sua attuale versione sisntetica - non fa altro che ordinare i conti secondo il criterio più consono alla successiva operatività e attivare l'unico user form rimasto - UFCtb

                                                l'inizializzazione dello user form UFCtb consiste semplicemente nel caricamento del list box LBConti tramite la routine CaricaLBConti() che banalmente recupera da data base le informazioni da mostrare e alimenta il list box

                                                ora la procedura è stata modificata in modo che alla selezione di un Conto dall'elenco corrisponda semplicemente un incremento pari a 10 del suo saldo... in realtà la selezione di un Conto comportava poi una serie di attività che potevano poi impattare i saldi di più conti e quindi solo al termine di quelle attività veniva richiamata la routine di aggiornamento del list box..

                                                alla selezione di un Conto corrisponde quindi l'incremento del suo saldo sul data base, quindi il richiamo della routine AggiornaLBConti() utile ad aggiornare sul list box i saldi di tutti i conti - riallineandoli a quelli sul data base - e a segnare con uno stesso carattere particolare ad ogni ciclo di aggiornamento (la sequenza è * # ° @ ^ §  ed è ripetuta ogni sei cicli di aggiornamento in modo da avere eventuale immediata evidenza visiva delle anomalie) ciascun elemento del list box che riferisce un conto, così da avere evidenza di eventuali mancati refresh a video

                                                 

                                                #22324 Score: 0 | Risposta

                                                albatros54
                                                Moderatore
                                                  89 pts

                                                  link nuovo

                                                  https://www.dropbox.com/s/q7r3nymdtod7q1v/Cattura%2003.wmv?dl=0

                                                   

                                                  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 )
                                                  #22329 Score: 0 | Risposta

                                                  ElleEsse
                                                  Partecipante

                                                    albatros54 ha scritto:

                                                    link nuovo

                                                    boh..  sono duro di comprendonio e non capisco cosa vuoi farmi vedere

                                                    o forse non è ben chiaro qual'è il problema

                                                    la routine AggiornaLBConti - richiamata ogni qualvolta che si seleziona un conto sul listbox dopo aver effettuato il suo incremento sul data base - oltre a recuperare il saldo di ciascun conto aggiunge alla sinistra dei conti un carattere - lo stesso per tutti i conti ogni volta che viene richiamata.. la prima volta *, la seconda volta #, la terza volta °, la quarta volta @, la quinta volta ^, la sesta volta §.. poi la settima volta riparte da *

                                                    ci si aspetterebbe che ad ogni selezione di un elemento, tutti i conti sulla lista siano caratterizzati dallo stesso carattere - in quanto aggiornati dalla stessa esecuzione di AggiornaLBConti() - mentre invece scorrendo la lista si evidenziano differenze

                                                    differenze che continuando a scrollare - quindi senza più alcuna interazione col codice - scompaiono

                                                    prova a fare pedestremente quanto esposto prima come esempio  

                                                    #22333 Score: 1 | Risposta

                                                    scossa
                                                    Partecipante
                                                      37 pts

                                                      @ ElleEsse: ho provato il file che hai allegato e a me (Excel 2010) funziona perfettamente (ho solo rimosso il riferimento alla libreria PDF Creator mancante da me): scrollando le righe sono tutte correttamente marcate e la marcatura cambia regolarmente ad ogni selezione di riga.

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 49 totali)
                                                    Rispondi a: REFRESH ListBox
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: