Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Aggiornamento lista combobox in caso di inserimento dato non in elenco

Ultimo Aggiornamento: 18/01/2018 13:54
Post: 844
Registrato il: 24/04/2004
Città: TERAMO
Età: 63
Utente Senior
2010
OFFLINE
12/01/2018 12:20

Ciao a tutti.
Spero di aver capito bene l'esigenza: vuoi aggiornare l'elenco visualizzato dalla ComboBox nel caso si inserisca un valore non presente in Elenco.
Riguardo al secondo codice che hai allegato, non mi sembra c'entri nulla con quello che vuoi fare.
A proposito di questo commento
Dim Riga As Long (se ho capito bene, viene dichiarata una variabile Long perchè permette di inserire numeri contenuti in un intervallo troppo grande rispetto ad Integer.non capisco perchè usare Long se io devo inserire delle parole e non numeri)
Riga = ActiveCell.Row (viene individuata la riga selezionata)  
La variabile è Long perchè deve contenere il Numero di Riga della cella interessata, non il suo valore.
=========================================================
=========================================================
Per inserire un dato non presente nella Combobox, ti conviene usare una subroutine a parte che puoi usare per tutte e quattro le combo.
La routine va inserita nel modulo della userform
Private Sub AggiornaCombo(Combo As Object)
Dim C As Long
    With Combo
        For C = 0 To .ListCount - 1
            If .List(C) = .Text Then Exit Sub 'se il valore è gia in lista non aggiunge nulla
        Next C
        .AddItem .Text 'aggiunge alla lista il valore inserito nella Combo
    End With
End Sub
Questo è AfterUpdate per combobox 1
Private Sub ComboBox1_AfterUpdate()
Dim risp As Integer
Dim ur As Long
Dim rng As Range
With Sheets("Elenchi").Range("b:b")
    Set rng = .Find(What:=ComboBox1.Value, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
    If Not rng Is Nothing Then
        'Application.Goto Rng, True
    Else
        'il Select Case non serve, i casi sono solo due
        If MsgBox("Voce non trovata" & Chr(10) & "Vuoi aggiungerla?", vbYesNo) = vbYes Then
            ur = Sheets("elenchi").Cells(Rows.Count, "b").End(xlUp).Row
            Sheets("elenchi").Cells(ur + 1, "b").Value = ComboBox1.Value
            AggiornaCombo ComboBox1 '<<======== inserisce il nuovo dato nell'elenco
        Else
            Me.ComboBox1.Value = ""
'                    Exit Sub 'questo non serve
        End If
    End If
End With
End Sub
[Modificato da Zer0kelvin 12/01/2018 12:26]
__________________________
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:52. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com