Modifica codice VBA

Anonimo
2023-04-17T15:31:52+00:00

Buon pomeriggio,

sono a chiedere come posso modificare questo codice vba:

Private Sub UserForm_activate()

  cboTipo3.AddItem "Sferico"

  cboTipo3.AddItem "A Goccia"

End Sub

in pratica in un UserForm ho creato una ComboBox nella Combo come potete notare ho inserito dei valori così nell'UserForm quando clicco sul pulsante Combo mi compaiono i due valori ma se volessi appoggiare un elenco in una lista su un foglio denominato LISTA così da poter integrare l'elenco della Combo dal foglio LISTA come devo cambiare il codice??? Altresì vorrei aggiungere alla combo una ricerca nel senso che inserendo la prima lettere "A" la medesima filtra tutte le parole in elenco che iniziano con le lettere digitate nella Combo e man mano che digito la parola la stessa filtra. Esempio "A G" filtra tutte le parole in elenco con inizio A spazio e G e così via.

Grazie mille per l'aiuto.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

10 risposte

Ordina per: Più utili
  1. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2023-04-18T07:43:15+00:00

    Non voglio esimermi dalla risposta, ma mi stai costringendo a ricreare uf, struttura dati con la reale possibilità di non rispettare le tue condizioni.

    Se non puoi condividere un file la vedo difficile, considerando che devo farlo nel più semplice modo possibile.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-04-18T07:19:34+00:00

    Se la tua conoscenza è basilare, ti chiedo di condividere il tuo tentativo per poter circostanziare il codice da proporti.

    Ciao.

    Buongiorno,

    scusami ma ieri con il maltempo ho avuto diverse difficoltà di collegamento,

    questo è il form

    Di seguito ti inoltro i codici che ho scritto dopo diversi tentativi e varie letture sui post nella community, i codici per i checkBox sono semplici nel senso

    che all'attivazione di una casella di testo di un'altra pagina fleggo il check di cui necessito eseguire la modifica tranne per il codice che dev'essere univoco

    quindi per lo stesso codice posso modificare tutte le altre caselle di testo.

    Ora alla riga TIPO ho inserito una combo con i due valori predefiniti e come mi hai suggerito con la proprietà che mi hai indicato prenderà i valori da un secondo foglio, la mia richiesta è poter effettuare la ricerca su alcune colonne tranne che per Codice - Prezzo e Pezzi.

    Ho pensato a due metodi: 1 inserire un ulteriore combo a quelli già esistenti in questo caso a colore - diametro - tipo e all'attivazione della combo il codice mi permette di effettuare la ricerca; 2 inserire un ulteriore userform con relative caselle di testo dedicate alla sola ricerca.

    Credo che la prima soluzione sia quella più adeguata ed anche più snella. Forse non ho cercato bene tra le varie domande alla community perchè non ho trovato nulla per risolvere il mio quesito.

    Grazie mille e resto in attesa di una tua risposta.

    Private Sub UserForm_activate()

    cboTipo3.AddItem "Sferico" 
    
    cboTipo3.AddItem "A Goccia" 
    

    End Sub

    Private Sub cmdAggiungiProdotto_Click()

    Dim h As Integer

    Dim blnAggiungi As Boolean

    If txtCodice3.Text = "" Then 
    
        MsgBox "Attenzione! Non hai impostato un valore nella casella Codice!" 
    
        txtCodice3.SetFocus 
    
        Exit Sub 
    
    ElseIf txtColore3.Text = "" Then 
    
        MsgBox "Attenzione! Non hai impostato un valore nella casella Colore!" 
    
        txtColore3.SetFocus 
    
        Exit Sub 
    
    ElseIf IsNumeric(txtColore3.Text) Then 
    
        MsgBox "Attenzione! Nella casella Colore non puoi inserire un numero. Specifica un colore" 
    
        txtColore3.SetFocus 
    
        Exit Sub 
    
    ElseIf txtDiametro3.Text = "" Then 
    
        MsgBox "Attenzione! Non hai impostato un valore nella casella Diametro!" 
    
        txtDiametro3.SetFocus 
    
        Exit Sub 
    
    ElseIf Not IsNumeric(txtDiametro3.Text) Then 
    
        MsgBox "Attenzione nella casella Diametro devi scrivere un numero!" 
    
        txtDiametro3.SetFocus 
    
        Exit Sub 
    
    ElseIf cboTipo3.Value = "" Then 
    
        MsgBox "Attenzione! Non hai selezionato nessun valore della casella Tipo!" 
    
        cboTipo3.SetFocus 
    
        Exit Sub 
    
    ElseIf txtPrezzo3.Text = "" Then 
    
        MsgBox "Attenzione! Non hai impostato un valore nella casella Prezzo!" 
    
        txtPrezzo3.SetFocus 
    
        Exit Sub 
    
    ElseIf Not IsNumeric(txtPrezzo3.Text) Then 
    
        MsgBox "Attenzione nella casella Prezzo devi scrivere un numero!" 
    
        txtPrezzo3.SetFocus 
    
        Exit Sub 
    
    ElseIf txtPezzi3.Text = "" Then 
    
        MsgBox "Attenzione! Non hai impostato un valore nella casella Numero pezzi!" 
    
        txtPezzi3.SetFocus 
    
        Exit Sub 
    
    ElseIf Not IsNumeric(txtPezzi3.Text) Then 
    
        MsgBox "Attenzione nella casella Numero pezzi devi scrivere un numero!" 
    
        txtPezzi3.SetFocus 
    
        Exit Sub 
    
    End If 
    
    blnAggiungi = False 
    
    h = 1 
    
    Do Until blnAggiungi = True Or h = Range("A1").CurrentRegion.Rows.Count + 1 
    
        If Range("A" & h) = txtCodice3.Text Then 
    
            MsgBox ("Attenzione! esiste già un prodotto con questo codice") 
    
            txtCodice3.SetFocus 
    
            blnAggiungi = True 
    
            Exit Sub 
    
        ElseIf Range("A" & h) = "" Then 
    
            blnAggiungi = True 
    
        End If 
    
        h = h + 1 
    
    Loop 
    
    Range("A" & h) = txtCodice3.Text 
    
    Range("B" & h) = txtColore3.Text 
    
    Range("C" & h) = txtDiametro3.Text 
    
    Range("D" & h) = cboTipo3.Value 
    
    Range("E" & h) = CCur(txtPrezzo3.Text) 
    
    Range("E" & h).Select 
    
     Selection.NumberFormat = "\_-€ \* #,##0.00\_ " 
    
    Range("F" & h) = txtPezzi3.Text 
    
    MsgBox "L'articolo con codice " & txtCodice3.Text & " è stato inserito" 
    

    End Sub

    Private Sub cmdChiudi3_Click()

    Unload frm01GestisciMagazzino 
    

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2023-04-17T17:00:19+00:00

    Se la tua conoscenza è basilare, ti chiedo di condividere il tuo tentativo per poter circostanziare il codice da proporti.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-04-17T16:34:02+00:00

    sono alle prime armi e cerco di imparare ho utlizzato il metodo change per attivare un pulsante qualora in una casella di testo scrivo qualcosa quindi non è vuota. Se casella vuota allora il pulsante non si attiva Ti scrivo cosa ho scritto con il metodo change:

    Private sub txtCodice_Change()

    if txtCodice.Value <> "" Then

    cmdDati.Enabled = True

    else

    cmdDati.Enabled = False

    end if

    end sub

    come detto se scrivo qualcosa nella casella di testo txtCodice allora si abilita il pulsante di comando altrimenti resta disabilitato.

    Ok attiverò la proprietà RowSource

    Per il metodo Change ti chiedo aiuto.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2023-04-17T15:48:45+00:00

    Buon pomeriggio,

    sono a chiedere come posso modificare questo codice vba:

    Private Sub UserForm_activate()

    cboTipo3.AddItem "Sferico"

    cboTipo3.AddItem "A Goccia"

    End Sub

    in pratica in un UserForm ho creato una ComboBox nella Combo come potete notare ho inserito dei valori così nell'UserForm quando clicco sul pulsante Combo mi compaiono i due valori ma se volessi appoggiare un elenco in una lista su un foglio denominato LISTA così da poter integrare l'elenco della Combo dal foglio LISTA come devo cambiare il codice??? Altresì vorrei aggiungere alla combo una ricerca nel senso che inserendo la prima lettere "A" la medesima filtra tutte le parole in elenco che iniziano con le lettere digitate nella Combo e man mano che digito la parola la stessa filtra. Esempio "A G" filtra tutte le parole in elenco con inizio A spazio e G e così via.

    Grazie mille per l'aiuto.

    Se hai già un elenco nominato sul foglio, non è necessario che tu la alimenti con .AddItem, usa la proprietà RowSource:

    ma per la ricerca filtrata è necessario sfruttare l'evento Change, come te la cavi con il VBA, al fine di consigliarti al meglio?

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento