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)