Sviluppare funzionalita su Microsoft Office con VBA Mancato prelevamento dati da ListView

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

    FROST220684
    Partecipante

      Ciao a tutti, 

      Spero come sempre possiate darmi una mano a mettere apposto alcune cose che non vanno sul file che vi allegherò. Vi racconto cosa fa il file:

      1. è un compilatore con un pannello di controllo (tramite userform inserisce in ogni foglio dedicato le note che vado ad inserire creando nuove righe e ordinandole per data e numerazione riga - es. inserisco dei dati: lui crea una nuova riga la riposiziona in ordine di data (ogni riga come prima cella ha una data) ed in più effettua un ricalcolo per numerare le righe in ordine ad ogni nuovo inserimento.

      è un file utilissimo che serve per inserire tante note ogni giorno e non fare il tipico taglia/incolla - inserisci riga etc (anche se può sembrare banale aiuta tantissimo nel mio lavoro)

      Passiamo alle cose che non riesco a sistemare:

      1. In ogni userform sono presenti delle listview che mi permettono tramite le textbox di effettuare delle ricerche nelle righe e visualizzare i risultati. Tramite le textbox se effettuo una ricerca i dati mi vengono presentati nella listview e fin qui tutto bene. Ma facendo un doppio clic sui risultati mi permette anche di prelevare i dati - immetterli nuovamente nelle textbox e se voglio modificare i dati ed anche fin qui tutto bene. Il problema deriva dall'ultimo risultato in listview:

      Es. Apro un userform qualunque faccio una ricerca e mi restituisce 3 risultati. Riesco a prelevare i dati dalle prime due righe ma non dall'ultima e questo accade per tutti gli userform anche perche il codice è lo stesso (tranne per il foglio transfer che però anche se in maniera diversa dovrebbe mantenere lo stesso concetto) ed è questo:

      Public Sub form_listview_dblclick(frm As Object)
      Dim i As Integer
      Dim f As Range
      Dim r As Range
      Dim LI As ListItem
          
          Set LI = frm.ListView1.SelectedItem
          
          If LI Is Nothing Then Exit Sub
          
          Set r = active_table(frm)
          Set r = r.Resize(r.Rows.Count - 1)
          
          Set f = r.Columns(1).Find(LI, LookIn:=xlValues, LookAt:=xlWhole)
          f.EntireRow.Select
          f.EntireRow.Hidden = False
      
          For i = 1 To r.Columns.Count - 1
              frm.Controls("Textbox" & i) = f.Offset(, i)
          
              
          Next
          frm.TextBox1.Tag = 1
      End Sub

      Ci tengo a precisare che tutto funziona molto bene ci sono solo queste piccole cose che non vanno e che vorrei sistemare per tutto il resto il funzionamento è perfetto e vorrei che rimanesse tale senza alterare il linguaggio presente.

      Ci tengo a ringraziare Vecchio_frac che mi ha sopportato nella creazione di questo file è senza di lui non esisterebbe.

      Allego un file di prova con alcuni dati già inseriti e per qualsiasi domanda sono sempre attivo e disponibile.

      Inoltre penso che condividere questo file possa essere d'aiuto al forum (magari non ai più navigati) per vedere alcune cose ed imparare cose nuove.

      Grazie a tutti per l'aiuto

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

      FROST220684
      Partecipante

        a corredo di quanto scritto sopra invio un immagine dell'errore che viene fuori quando cerco di prelevare l'ultima riga della listview ed un immagine dove si vede il corretto prelevamento della prima riga come di tutte le altre tranne l'ultima

        naturalmente preciso che essendo il codice comune a tutti gli userform il problema è presente su tutti gli userform

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

        Raffaele53
        Partecipante
          23 pts

          Non sono bravo, se ho capito il problema prova a togliere il -1
          >>>Set r = r.Resize(r.Rows.Count -1)

          Ps. Dovresti eliminare gli oggetti prima d'uscire
          Set r = Nothing
          Set f = Nothing
          Set LI = Nothing
          End Sub

          #44475 Score: 0 | Risposta

          FROST220684
          Partecipante

            sembra funzionare vi aggiorno....grazie milleeeeeee

            #44510 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              C'era un motivo se avevo resizato  il range a una riga di meno e probabilmente era per evitare di acchiappare la riga di intestazione. Siccome e' passato un po' troppo tempo e non ricordo cosa avevo combinato, sono contento che ci sia chi concorre a risolvere i problemi di un progetto interessante, elaborato e non del tutto banale. Per me questo e' un periodo pesante in cui ho la testa su altri fronti e non riesco a essere ovunque. 

              Comunque appena riesco ci do un occhio volentieri...   

              #44514 Score: 0 | Risposta

              FROST220684
              Partecipante

                Ciao Fra, 

                ci tengo a precisare come già 1000 volte ho detto che anche se per i più esperti possa sembrare qualcosa di non troppo complicato per me che ci lavoro è un progetto fantastico. 

                Detto questo, spezzo due lance:

                1. Io ricordo (anche io un po vagamente essendo passato tempo) che tutto funzionava, poi quando ho ripreso il file è uscito questo errore ed anche io sinceramente avevo pensato che essendo che funzionava tutto era strano che adesso non funzionasse ma non vorrei sinceramente tra il milione di email che ci siamo scambiati abbia preso un file con una progettazione precedente alle finali.

                2. Effettivamente la soluzione di Raffaele53 mi permette di prendere tutte le righe (almeno al momento con poche prove) e per ora non mi sembra che ci sia nessun problema con l'intestazione.

                Mi farà molto piacere se anche tu gli darai un occhiata come tutti coloro che mi daranno una mano a completare questo bel progetto che vorrei far funzionare prima dell'estate ma questo dipende anche da me.

                Grazie a tutti e vi aggiorno prima possibile e ribadisco il concetto che chi vuole può scaricare il file e prendere spunto per i propri progetti almeno a chi è un po più indietro come me.

              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Mancato prelevamento dati da ListView
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: