Condividi:        

Sequenza introduzione dati

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

Sequenza introduzione dati

Postdi cd7019 » 18/02/14 22:40

ciao,

Ho fatto tanti tentativi e non ho risolto niente, quindi mi arrendo.
Ho bisogno di un vostro aiuto.

1) Scrivendo una sola lettera (non selezionando la tendina) non voglio che si sposti automaticamente in combobox2 (CB2), ma desidero spostarmi SOLO quando il testo è uguale all'array. certe volte scrive la prima scelta e si sposta: ad esempio digitando C, scrive "CA" e si sposta.
Codice: Seleziona tutto
MACC = Array("AB", "AC", "BA", "BB", "CA", "CB", "CCCC")
CB1.List = MACC
Private Sub CB1_CHANGE()
        CB1.SelStart = 0
        CB2.SetFocus
 End Sub

2) Vorrei inserire in textbox1 solo dei numeri (disattivo le lettere ecc...)

3) Desidero dopo il textbox1 (con invio) spostarmi nel combobox3
Tentativi falliti:
Private Sub TB1_Exit(ByVal Cancel As MSForms.ReturnBoolean) ' si sposta nel successivo textbox
CB3.SetFocus
End Sub
Private Sub TB1_change() ' dopo un n° si sposta
CB3.SetFocus
End Sub
Private Sub TB1_enter() ' non riesco inserire niente
CB3.SetFocus
End Sub

4) mi è successo una cosa stranissima: non modificando niente nella combobox(nessuna opzione nella proprietà VBA) scrive da destra verso sinistra, come i giapponesi. Come mai???

Grazie
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Sponsor
 

Re: Sequenza introduzione dati

Postdi Anthony47 » 19/02/14 00:53

Premettiamo che il combobox e' un oggettino abbastanza complesso, che ha una cinquantina di Proprieta', una decina di Metodi, e una quindicina di Eventi; quindi va inquadrato bene prima di poterlo usare a piacimento...
Veniamo ai tuoi punti:
1. Ma allora perche' metti CB2.SetFocus nella routine di CB1_Change, se vuoi che l' uscita da CB1 avvenga solo quando c' e' un match? E perche' metti SelStart = 0, cosi' se anche rimanessi nel combobox1 devi prima riposizionare il cursore dove vuoi scrivere la seconda lettera (questo a ogni lettera che scrivi)?
Inoltre personalmente non condivido che si esca da una selezione appena esce una combinazione valida: e se e' colpa di una digitazione andata male? Inoltre il risultato dipende dal valore delle proprieta' MatchEntry e MatchRequired del combobox. Insomma per me l' uscita dal combobox dovrebbe avvenire quando l' utente seleziona uno dei valori in elenco, aiutandosi con la scrittura per restringere il campo.
Insomma devi riguardare le proprieta' del combobox, partendo dalle due che ti ho menzionato prima, e capire come le possibili combinazioni combaciano col flusso che vuoi realizzare; flusso che deve tenere conto anche di possibili errori di battitura. Poi scriverai le macro di evento (es CB1_Change) in modo che concorrano alla gestione corretta del flusso.

2. Il textbox e' un oggetto che accetta "testi"; se vuoi che l' utente scriva un numero io ti suggerisco:
- usa CotrolTipText per dire all' utente che deve digitare solo numeri;
- all' uscita (evento TextBox1_Exit) controlla che quanto digitato sia convertibile in numero usando la funzione IsNumeric; se "No" allora segnalare l' errore all' utente con un msgbox e usa l' opzione Cancel per cancellare l' uscita dal controllo.

3. Per pilotare dove andare all' uscita di un controllo, devi impostare (e l' avevamo gia' detto) la sequenza di tabulazione: selezioni la form, tasto dx, scegli "Ordine di tabulazione", riposizioni la sequenza come desideri.

4. La scrittura a gambero ti e' venuta perche' la tua macro di CB_Change imposta SelStart = 0, che ho gia' criticato al punto 1.

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

Re: Sequenza introduzione dati

Postdi cd7019 » 19/02/14 18:13

Grazie mille.

ciao
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38


Torna a Applicazioni Office Windows


Topic correlati a "Sequenza introduzione dati":


Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti