Condividi:        

[Excel] Relazioni pericolose Combobox Textbox e Scrollbar

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

[Excel] Relazioni pericolose Combobox Textbox e Scrollbar

Postdi biancocandido55 » 26/03/12 22:34

Ciao ragazzi, un saluto a tutto il forum
ho aperto un nuovo topic per la problematica in questione, anche se fa parte del progetto precedente, si tratta di questo, come da titolo ho inserito questi 3 oggetti nel userform come da immagine:
Immagine
Nel foglio3 base dati da D9 a I19
Nell’userform
La griglia ha le stesse coordinate della base dati da D9:I19
CONTROLLI :
COMBOBOX per le ruote D9:D19 (TESTO)
TEXTBOX per i numeri, cella controllata della base dati G24 (FORMULA =INDICE($E$9:$I$19;$D$1;$D$2)
SCROLLBAR per scorrere i numeri del TEXTBOX i 5 numeri della ruota scelta.
I 3 componenti dovrebbero interagire in questo modo, scelgo la ruota con il combo box e nel textbox dovrebbe comparire uno dei 5 numeri della ruota di riferimento, che posso scegliere, cliccando poi sullo scrollbar, purtroppo non riesco a “collegarli” fra loro,
vi ringrazione per l'aiuto, in attesa,
un abbraccio
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Sponsor
 

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi Anthony47 » 26/03/12 23:07

Non capisco perche' vuoi realizzare quella interfaccia: se hai nella form la griglia delle estrazioni (nello Spreadsheet1) basta che selezioni il valore estratto e (se proprio ti servono) in due textbox della stessa form riporti il valore di colonna A della riga selezionata (la "ruota") e il valore della cella selezionata (il numero selezionato).
Corrisponde circa al codice
Codice: Seleziona tutto
Private Sub Spreadsheet1_SelectionChange()
If Spreadsheet1.Selection.Column > 1 And _
  Spreadsheet1.Selection.Column <= 7 And _
  Spreadsheet1.Selection.Row <= 10 Then
    TextBox1.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 1).Value
    TextBox2.Text = Spreadsheet1.Selection.Value
End If
End Sub
(e' un "concept", da adattare alle tue coordinate)

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

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi biancocandido55 » 27/03/12 00:30

Ciao Anthony,
ti ringrazio per il suggerimento, anche così sarebbe una buona soluzione, puoi modificare la macro in modo che mi dia
la possibilità di scegliere 2 Ruote e 2 numeri per ogni ruota, come da img:
Immagine
come sempre, GRAZIE.
Un abbraccio,
Bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi Anthony47 » 27/03/12 23:22

Queste operazioni le puoi fare abbastanza semplicemente sul foglio di lavoro; hai scelto di farlo su una form, ora devi solo sviluppare il suggerimento creandoti una sequenza di operazioni e di controlli che ipotizzi tutti i possibili comportamenti del mouse.
In alternativa torni alla tua impostazione di origine, e usi Combobox per tutte le scelte da fare; il RowSource dei combobox di scelta ruote sara' fisso (l' elenco delle ruote), mentre il rowsource dei numeri scelti lo imposti con l' evento ComboBoxN_Change (sulle combobox della scelta ruote).

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

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi biancocandido55 » 29/03/12 20:48

Ciao Anthony,
sono passati 2 giorni di prova e riprova, per avere più nozioni sull'argomento textbox, ho incominciato a leggere di tutto, pure in inglese, e mi sono ritrovato ad avere scarsi risultati, :cry: :cry: , usando i textbox sono riuscito a realizzare questo:
Immagine, con questo codice:
Codice: Seleziona tutto
Private Sub Spreadsheet1_SelectionChange()
If Spreadsheet1.Selection.Column > 3 And Spreadsheet1.Selection.Column <= 10 And Spreadsheet1.Selection.Row <= 20 Then
    TextBox4.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 4).Value
    TextBox5.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 5).Value
    TextBox6.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 6).Value
    TextBox7.Text = Spreadsheet1.Selection.Value
    TextBox8.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 8).Value
    TextBox9.Text = Spreadsheet1.Cells(Spreadsheet1.Selection.Row, 9).Value
End If
End Sub

non sono riuscito a selezionare quella benedetta 2 ruota, invece per i numeri, ho settato le colonne, (come conseguenza ho sempre i numeri della 5 - 6 - 8 e 9 colonna) ho provato pure ad inventarmi qualcosa sostituendo il .Value con .Next o con .Value2, niente da fare.
Non sono neanche più sicuro di quello che ho scritto nel codice :undecided: :undecided:, mi dici che nell'eventualità di tornare ad usare i combobox, sinceramente credo che se questa è la strada da percorrere, penso che sarebbe adesso come andare in macchina di notte a fari spenti.
Come sempre, spero in un tuo aiuto.
Un abbraccio
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi Anthony47 » 30/03/12 10:11

Ti avevo detto di considerare "tutti i possibili comportamenti del mouse" perche' dovresti ragionare su che cosa puo' fare l' utente davanti a quello schemino carino e colorato, e gestire ognuna delle situazioni, perche' questo e' cio' che deve fare una interfaccia...
Per cominciare, e' ovvio che l' utente potrebbe cliccare da qualsiasi parte, se proprio gli viene voglia di cliccare; quindi cominciamo a dire che forse una "guida" sarebbe opportuna, tipo un messaggio (sulla form) che gli dice "per favore scegli la prima ruota", e poi "..il primo valore", "..il secondo valore", etc etc.
Semplificando io lo farei usando come flag gli stessi textbox: il primo vuoto determina quale messaggio far uscire, partendo dall' ipotesi che allo show della form azzeri tutti i textbox e mostri il messaggio "Seleziona la prima ruota".
Poi all' interno della Sub Spreadsheet1_SelectionChange mi farei tanti blocchi di codice simili, del tipo
Codice: Seleziona tutto
If Textbox1.Text="" Then
   Controllo se colonna=Ruota
   TextBox1.Text= Spreadsheet1.Selection.Value
   TextBox1.BackColor=RGB(222, 222, 0)    'Colore per "evaso"
   TextBox2.BackColor=RGB(240, 80, 200)   'Colore del "prossimo dato"
   Label1.Caption="Cortesemente adesso seleziona un numero della ruota selezionata"
   Exit Sub
End If
'Segue blocco per TextBox2
'Segue blocco per TextBox3
'etc etc

Label1 e' una "label" in cui scrivo che cosa dovrebbe fare l' utente.
Alla voce "Controllo se ruota" dovrai fare quelle verifiche per accertarti che l' utente abbia veramente selezionato una tra le ruote presentate. Ovviamente nel blocco successivo controllerai che si tratti proprio di un numero di quella ruota; insomma e' un controllo mirato alla fase che ti sei preparato a gestire, e se l' esito e' negativo farai Exit Sub (se vuoi gli aggiungi un messagebox, o un messaggio piu' forte in Label1.
Ho immaginato (in modo arbitrario) che Textbox1 sia quello destinato a contenere la prima ruota e Textbox2 quello del primo numero.
Al momento dello Show i textbox vanno svuotati e il messaggio in Label1 chiedera' di selezionare una ruota.
Io metterei anche un pulsante Ricomincia, che ripristina tutto a zero.

mi dici che nell'eventualità di tornare ad usare i combobox, sinceramente credo che se questa è la strada da percorrere, penso che sarebbe adesso come andare in macchina di notte a fari spenti
Se tu che volevi mettere i combobox, quindi immagino (immaginavo) che sapessi accendere le luci

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

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi biancocandido55 » 31/03/12 01:19

Ciao Anthony,
ho ampliato ed adattato il codice ai 6 textbox interessati, un pulsante per pulirli successivamente con questo codice:
Codice: Seleziona tutto
Private Sub Svuota_celle_Click()
With Txt
TextBox4.SetFocus
TextBox4 = vbNullString
TextBox5.SetFocus
TextBox5 = vbNullString
TextBox6.SetFocus
TextBox6 = vbNullString
TextBox7.SetFocus
TextBox7 = vbNullString
TextBox8.SetFocus
TextBox8 = vbNullString
TextBox9.SetFocus
TextBox9 = vbNullString
End With
Call box3
Label7.Caption = "Ripeti Gioco"
TextBox20.SetFocus
End Sub

box3 è un messaggio di fine pulitura
e textbox20 è un textbox (dimensione 0) per togliere il focus dal texbox9 che mi rimaneva attivo dopo la pulitura.
Come sempre, GRAZIE, un abbraccio, alla prossima
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi Anthony47 » 31/03/12 15:16

Se funziona e' ok cosi', ma la prossima volta prova con
Codice: Seleziona tutto
Private Sub Svuota_celle_Click()
TextBox4.Value=""
TextBox5.Value=""
TextBox6.Value=""
TextBox7.Value=""
TextBox8.Value=""
TextBox9.Value=""
Call box3
Label7.Caption = "Ripeti Gioco"
TextBox20.SetFocus
End Sub


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

Re: [Excel] Relazioni pericolose Combobox Textbox e Scrollba

Postdi biancocandido55 » 31/03/12 23:03

Ciao Anthony,
come dice un detto "apprendo e metto da parte", per usi futuri.
come sempre, GRAZIE
alla prossima, CIAO, un abbraccio
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Relazioni pericolose Combobox Textbox e Scrollbar":


Chi c’è in linea

Visitano il forum: Nessuno e 91 ospiti

cron