Condividi:        

Cancella range da un listbox

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

Cancella range da un listbox

Postdi RaeleaR » 05/12/14 05:58

Salve a tutti,
premesso che sono un principiante, passo a spiegare il problema.

Ho predisposto un file di esempio qui:
http://www.filedropper.com/borrarrango

Ho una userform con 2 listbox e 5 textbox.
Listbox1 (di 5 colonne) attinge i dati da un range di riferimento in foglio3. I dati sono su 5 colonne, ma la quantitá delle righe del range varia.
La listbox2 riceve ció che ho selezionato in listbox1 con un dblclick e lo indirizza ai 5 textbox. Nel dblclick é prevista la cancellazione dalla listbox1 della riga appena selezionata.

Il vero problema é che avrei bisogno di poter ordinare alfabeticamente i dati delle colonne di listbox1.
Non so se esiste un metodo per ordinare alfabeticamente una colonna di una listbox e quindi ho cercato una soluzione diversa.

Ho pensato di fare in modo che ogni volta che seleziono una riga in listbox1 e che questa si cancella, venga cancellato anche il range corrispondente nel foglio3.
La sequenza attuale é: dblclick in listbox1, assegnazione della nuova riga a listbox2, rimozione della riga da listbox1, click in listbox2 che assegna i 5 valori della riga alle 5 textbox.

Utilizzo l'evento change del textbox che contiene il valore della prima colonna, passatogli dalla listbox2, e qui gli lancio la Sub che cancella il range dal foglio3.
Succede che peró il range venga cancellato solo uscendo dalla UserForm e non capisco perché.
Qualcuno puó illuminarmi?

Grazie in anticipo
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Sponsor
 

Re: Cancella range da un listbox

Postdi Flash30005 » 05/12/14 08:32

Ho scaricato il tuo file
avviando la userform e facendo doppio click sul record nel textbox1 la riga viene cancellata regolarmente nel foglio3 e non compare più nel textbox1, quindi sembra funzionare.

Reputo comunque il sistema macchinoso ma non ho ben capito l'esigenza iniziale per poter, eventualmente intervenire.

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Cancella range da un listbox

Postdi RaeleaR » 05/12/14 15:46

Salve Flash,

ma, a te cancella la riga dal foglio3 subito dopo il dblclick? cioé la vedi scomparire dal foglio mentre hai la userform aperta? perché anche a me la cancella, ma solo se esco dalla userform.
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: Cancella range da un listbox

Postdi Flash30005 » 05/12/14 17:56

Si la cancella al doppio click (Excel 2010)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Cancella range da un listbox

Postdi RaeleaR » 05/12/14 18:59

scusa Flash, ma esistono impostazioni che possa aver toccato per cui a me non lo fa?
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: Cancella range da un listbox

Postdi Anthony47 » 05/12/14 23:51

A me l' aggiornamento su Hoja3 si visualizza solo alla chiusura della form, sia su XL2003 che XL2010 che XL2013.
Ma questo e' ragionevole...
Infatti quando visualizzi una form in modalità "a scelta obbligatoria" le attivita' sul foglio di lavoro sono congelate fino alla chiusura della form; questa e' la modalita' standard di apertura di una form.
Se vuoi intergagire col foglio devi usare
Codice: Seleziona tutto
UserForm13.Show vbModeless

Devi valutare se questo modo e' compatibile col tuo processo, in quanto a quel punto sul foglio ci si puo' lavorare sia da form che da tastiera.

Non so quanto e' affidabile, ma senza usare la modalita' vbModeless ho ottenuto l' aggiornamento del foglio (e questo non me lo aspettavo) inserendo una ScreenUpdating a conclusione della Sub ListBox1_DblClick:
Codice: Seleziona tutto
'....
End With
Application.ScreenUpdating = True
End Sub


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cancella range da un listbox

Postdi RaeleaR » 06/12/14 04:54

Ciao Anthony,

ho risolto il problema peró devo usare il "credo" in relazione alla causa in quanto poi sono andato giú a capofitto nello sviluppo del resto del codice che mi sono davvero dimenticato qual'era la causa... quindi...
Credo che dipendesse dal fatto che utilizzo la dichiarazione di ctlAttivi come Boolean.. c'era una Sub (credo) dove avevo lasciato il valore su True.. in piú, nella risoluzione, ho spostato la Sub che cancella il range nel foglio3, nell'evento _Click di ListBox2..
Ad ogni buon conto e a beneficio di chi voglia darci un'occhiata posto qui il file completo:
http://www.filedropper.com/pruebaborrarrangocomplete

Ti ringrazio per il tempo che mi hai dedicato e per la tua chiarezza.
Alla prox

Ciao
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina


Torna a Applicazioni Office Windows


Topic correlati a "Cancella range da un listbox":


Chi c’è in linea

Visitano il forum: Nessuno e 123 ospiti