Il problema dei 3 corpi: Attraverso continenti e decadi, cinque amici geniali fanno scoperte sconvolgenti mentre le leggi della scienza si sgretolano ed emerge una minaccia esistenziale. Vieni a parlarne su TopManga.
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Facilitare il codice per OptionButton

Ultimo Aggiornamento: 07/01/2016 12:01
Post: 34
Registrato il: 16/10/2015
Città: ROMA
Età: 54
Utente Junior
2010
OFFLINE
05/01/2016 14:31

Salve a tutti,
il codice sotto è un pezzo di un progetto che sto portando avanti con il 90% del vostro aiuto sopratutto di By Sal.
Ho dovuto modificarlo perchè non riconosce lbx
Set Sh0 = Worksheets(lbx) in quanto la voce Listino non è presente.
In rosso quello che ho scritto che a mia merviglia funziona.
La domanda è:
quando poi inserirò altri listini devo per forza continuare a scrivere separatamente le righe oppure esiste il modo come in originale con il controllo
For x = 1 to .... ?
======================================================================
'----TEXTBOX PER LA RICERCA DA DESCRIZIONE

Private Sub TextBox2_AfterUpdate()
Dim lbx As String, x As Integer, R As Long, n As Long

' If TextBox1 = "" Then MsgBox "ATTENZIONE! SCEGLI UNA MARCA": TextBox2 = "": Exit Sub
'For x = 1 To 3
'If Controls("OptionButton" & x) = True Then lbx = "Listino_" & x
'Next x
If Me.OptionButton1.Value = True Then lbx = "B-TICINO"
If Me.OptionButton2.Value = True Then lbx = "VIMAR"
If Me.OptionButton3.Value = True Then lbx = "ABB"

Set Sh0 = Worksheets(lbx)
Sh0.Activate
Label5.Visible = True
ListBox1.RowSource = ""
ListBox1.ColumnWidths = "100;100;300;100;300"

etc.... etc...
===============================================================

Grazie
[Modificato da Ghibly69 05/01/2016 14:31]
Post: 1.348
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
05/01/2016 16:54

Ciao Marco come va?

Ora sono senza pc quindi quello che scrivo lo scrivo a memoria senza porer testare.

Comunque potresti provare con un codice di questo tipo

Dim ctrl as Control
For Each ctrl in Me.Controls
     If Typename(ctrl) = "OptionButton" Then
          ctrl.Value = True
     End If
Next ctrl


Credo che tu non abbia bisogno di spiegazioni sul codice [SM=g27829]

Ma se tu, come nell'esempio che hai fatto devi inserire una stringa diversa per ogni OptionButton non credo tu possa usare un ciclo.

Altro esempio di ciclo:

For i = 1 to n
     Me.Controls("OptionButton" & i).Value = True
Next i
[Modificato da alfrimpa 05/01/2016 17:00]

Alfredo
Post: 34
Registrato il: 16/10/2015
Città: ROMA
Età: 54
Utente Junior
2010
OFFLINE
06/01/2016 03:07

ciao Alfredo,

da errore di run time 438

credo sia dovuto al fatto che il ciclo non definisce lbx
e di conseguenza non da direttive alla worksheets di essere caricata.

Set Sh0 = Worksheets(lbx)
Sh0.Activate

....oppure non ci ho capito niente! [SM=g27823]
Post: 4.641
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
06/01/2016 08:58

Worksheet
Ciao Marco, ci sono macro che creano nomi in base ad i fogli, ne avevo ma è andata persa.

io però creo una macro con tutti i fogli, quindi lancio la macro ed ho tutti i nominativi dei fogli, una cosa del genere: la scrivo a mano

la prima cosa dichiaro pubblico tutti i nomi dei fogli, nel modulo1

Public Sho as worksheet, Sh1 as worksheet, sh2 as worksheet, etc...

sub FG()

set sh1 = worksheets("Archivio")
set Sh2 = worksheets("Dati")
set shx........
..........
end sub


quindi quando creo un altra macro tipo "ricerca" o altro nome

sub Ricerca()
dim wa' foglio attivo

FG
wa = activesheet.name
set sh0 = worksheets(wa)

..........
..........

end sub


in questo modo hai tutti i fogli disponibili inserendo solo "Shx" davanti all'oggetto che serve in base al foglio che serve.

ma ciò è sempre dipendente che se crei un nuovo foglio dovrai aggiungerlo nella macro FG

ma come ho detto all'inizio, avevo una macro che automaticamente si adeguava se creavi nuovi fogli.

Ciao By Sal [SM=x423051]




se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 35
Registrato il: 16/10/2015
Città: ROMA
Età: 54
Utente Junior
2010
OFFLINE
06/01/2016 16:07

Ciao Sal e alf
grazie dela risposta..

codice perso? ...sono sempre i migliori che se ne vanno... [SM=g27828]

anche con questo devo inserire le singole stringhe per dare i nomi ai fogli, tipo come ho fatto io modificando il tuo codice originale, e quando inserirò i nuovi listini dovrò mettere le mani al codice per aggiornarlo.

Altro problema poi è che ad ogni optionbutton inserito in più devo aggiungere il codice per la gestione Listbox...

'----OPTIONBUTTON 1 <--- ripetuto per ogi optbutton

Private Sub OptionButton1_Click()
Dim R As Long, x As Long, d As Variant, cbx As New Collection

ComboBox1.Clear
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
Application.ScreenUpdating = False
Set Sh0 = Worksheets("B-TICINO")
Sh0.Activate
R = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To R
d = Cells(x, 1)
On Error Resume Next
cbx.Add d, CStr(d)
On Error GoTo 0
Next x
For x = 1 To cbx.Count
ComboBox1.AddItem cbx(x)
Next x
ListBox1.ColumnWidths = "100;100;300;100;300"
ListBox1.RowSource = "A2:E" & R
Label5.Visible = True
Set cbx = Nothing
End Sub

speravo di non dover mettere mano ogni volta!
[Modificato da Ghibly69 06/01/2016 16:24]
Post: 36
Registrato il: 16/10/2015
Città: ROMA
Età: 54
Utente Junior
2010
OFFLINE
06/01/2016 16:22

Sempre legato a optbutton ho un altro quesito che non sto riuscendo a risolvere. Capisco che è legato ai cod che gestiscono i singoli optbutton (quello del post precedente) ma non so come modificarlo.
Il codice è di Sal che in base a quello che ho imparato è stato modificato alla mia esigenza.

Ho notato che alla scelta del listino la colonna 4 della listbox si popola con simbolo € , ma quando poi intereaggisci dalla ComboBox1 , Texbox5 , TextBox2 si popola senza € .
In ogni caso se nel listino il prezzo è inferiore ad €1 in lista lo riporta come 0 .
Esempio: ABB ..... € 0,63 in foglio lista ...... € 0

Il multiselect in listbox non è necessario, se si potesse usare la rotella del mouse per scorrere la lista sarebbe l'ideale.

Grazie ancora e spero in un altro aiuto/spiegazione.
Marco

Allego il file completo di mie modifiche.
Post: 41
Registrato il: 16/10/2015
Città: ROMA
Età: 54
Utente Junior
2010
OFFLINE
07/01/2016 12:01

..help!!
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 08:42. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com