Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Caricare Listbox con dati dalla terza riga

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 11/01/15 18:42

Buonasera a tutto il forum. Ho inserito una listbox che dovrei popolare
con i dati presenti nel foglio "Riepilogo" a partire dalla terza riga e soltanto le prime 10 righe.

io sono arrivato a questo... ma non funziona...

Codice: Seleziona tutto
Private Sub mCaricaListBox()

Dim lRiga As Long
Dim lng As Long
Dim lCont As Long


lCont = 0

Me.ListBox1.Clear

With WS1
lRiga = .Range("A" & .Rows.Count).End(xlUp).Row
For lng = lRiga - 9 To lRiga
Me.ListBox1.AddItem
Me.ListBox1.List(lCont, 0) = .Range("A" & lng).Value
Me.ListBox1.List(lCont, 2) = .Range("C" & lng).Value
Me.ListBox1.List(lCont, 6) = .Range("G" & lng).Value
Me.ListBox1.List(lCont, 7) = CDate(.Range("H" & lng).Value)
Me.ListBox1.List(lCont, 12) = .Range("M" & lng).Value
Me.ListBox1.List(lCont, 23) = CDbl(.Range("X" & lng).Value)
lCont = lCont + 1
Next
End With
       
End Sub
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Sponsor
 

Re: Caricare Listbox con dati dalla terza riga

Postdi ricky53 » 11/01/15 20:36

Ciao,
con "non funziona" non ci hai detto nulla.
Cosa ti aspettavi e cosa ottieni?

Controlla con il debug, eseguendo passo passo il codice, quali istruzioni vengono eseguite e quali dati vengono impostati e da dove.
Per esempio la variabile "lng" viene impostata correttamente ?
Controlla tutte le variabili
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 12/01/15 09:05

ricky53 ha scritto:Ciao,
con "non funziona" non ci hai detto nulla.
Cosa ti aspettavi e cosa ottieni?

Controlla con il debug, eseguendo passo passo il codice, quali istruzioni vengono eseguite e quali dati vengono impostati e da dove.
Per esempio la variabile "lng" viene impostata correttamente ?
Controlla tutte le variabili

Buongiorno Ricky,
dunque, la Listbox viene caricata all'avvio del file e quindi del form. L'errore che rileva è il seguente:
"Errore di run-time '380' . Impossibile impostare la proprietà List. Valore della proprietà non valido"
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Caricare Listbox con dati dalla terza riga

Postdi Zer0Kelvin » 12/01/15 10:43

Ciao.
Naturalmente hai ritenuto superfluo indicare anche la riga in cui si verifica l'errore,vero?
Presumo che la riga sia questa:
Codice: Seleziona tutto
Me.ListBox1.List(lCont, 12) = .Range("M" & lng).Value

L'errore è dovuto a questo: quando si utilizza il metodo AddItem, non è possibile caricare più di dieci colonne nella ListBox (da 0 a 9).
Non c'è motivo di fare riferimento allo stesso numero di colonna della cella e devi impostare il numero di colonne da visualizzare nella ListBox; la variabile lcont è superflua, in questi casi si fa affidamento sulla proprietà ListCount della ListBox.
Codice: Seleziona tutto
Me.ListBox1.ColumnCount = 6
For lng = lRiga - 9 To lRiga
    Me.ListBox1.AddItem .Range("A" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Range("C" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Range("G" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = CDate(.Range("H" & lng).Value)
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Range("M" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = CDbl(.Range("X" & lng).Value)
Next
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 305
Iscritto il: 08/04/12 11:23

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 12/01/15 11:38

Zer0Kelvin ha scritto:Ciao.
Naturalmente hai ritenuto superfluo indicare anche la riga in cui si verifica l'errore,vero?
Presumo che la riga sia questa:
Codice: Seleziona tutto
Me.ListBox1.List(lCont, 12) = .Range("M" & lng).Value

L'errore è dovuto a questo: quando si utilizza il metodo AddItem, non è possibile caricare più di dieci colonne nella ListBox (da 0 a 9).
Non c'è motivo di fare riferimento allo stesso numero di colonna della cella e devi impostare il numero di colonne da visualizzare nella ListBox; la variabile lcont è superflua, in questi casi si fa affidamento sulla proprietà ListCount della ListBox.
Codice: Seleziona tutto
Me.ListBox1.ColumnCount = 6
For lng = lRiga - 9 To lRiga
    Me.ListBox1.AddItem .Range("A" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Range("C" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Range("G" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = CDate(.Range("H" & lng).Value)
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Range("M" & lng).Value
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = CDbl(.Range("X" & lng).Value)
Next


Ciao ZeroKelvin, grazie per la spiegazione. Quindi per specificare che i dati da visualizzare devono essere
quelli presenti nelle colonne A, C, G, H, M, X a partire dalla riga 3 quali coordinate devo inserire nella riga di comando che mi hai postato? Scusami, ma non sono bravo con vba, sto cercando di apprendere "On the job"...
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 12/01/15 12:11

Dunque ZK, ho inserito il codice che mi hai suggerito. Non appena faccio partire il file mi da' questo errore:
Errore di run-time '13':
Tipo non corrispondente. Se faccio il debug mi porta alla riga Userform1.show della cartella Workbook.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Caricare Listbox con dati dalla terza riga

Postdi Zer0Kelvin » 12/01/15 20:39

Difficile dare una risposta certa senza vedere il file ma, in base all'errore, l'istruzione che lo provoca potrebbe essere una di queste
Codice: Seleziona tutto
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = CDate(.Range("H" & lng).Value)
    ...
    Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = CDbl(.Range("X" & lng).Value)
L'errore da te citato può verificarsi quando una funzione di conversione del tipo (in questo caso CDate o CDbl) non riesce a convertire il valore passato come parametro alla funzione, ad esempio la cella indicata non contiene un valore valido per una data (per CDate) o non è un numero (per CDbl).
Per scoprire l'istruzione che effettivamente provoca l'errore, dopo che il debug ti ha portato sull'istruzione Userform1.show, dovresti proseguire l'esecuzione passo-passo (tasto F8).
Oppure più semplicemente controlla che siano corretti i valori che si trovano in colonna H ed in colonna X.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 305
Iscritto il: 08/04/12 11:23

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 13/01/15 10:48

Buongiorno ZK, ho seguito il tuo suggerimento e proseguito con F8 fino a dove nasce l'errore. Mi sono accorto che in alcune celle della colonna X manca il valore (questa e un'eventualità che potrebbe capitare). Potrebbe essere dovuto a questo?
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Caricare Listbox con dati dalla terza riga

Postdi Zer0Kelvin » 13/01/15 22:58

Non credo, il valore vuoto verrebbe convertito in uno zero.
Forse è meglio se alleghi il file.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 305
Iscritto il: 08/04/12 11:23

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 14/01/15 09:50

Zer0Kelvin ha scritto:Non credo, il valore vuoto verrebbe convertito in uno zero.
Forse è meglio se alleghi il file.


Ciao ZK, si, credo sia meglio. Ti allego il file.

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Caricare Listbox con dati dalla terza riga

Postdi fastbike73 » 14/01/15 10:40

fastbike73 ha scritto:
Zer0Kelvin ha scritto:Non credo, il valore vuoto verrebbe convertito in uno zero.
Forse è meglio se alleghi il file.


Ciao ZK, si, credo sia meglio. Ti allego il file.

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0


Scusa ZK, per sbaglio ti ho linkato il file originale quello prima delle modifiche che mi avevi fatto apportare...
di seguito ti giro il link a quello successivo alle modifiche. Scusami ancora....

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54


Torna a Applicazioni Office Windows


Topic correlati a "Caricare Listbox con dati dalla terza riga":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti