Moderatori: Anthony47, Flash30005
oggi Aridien ha scritto:per caricare i valori uso convalida dati - elenco cosi da avere menu a tendina..
ieri Aridien ha scritto: ho una combobox con una lista di nomi; mentre inserisco uno di quei nomi questo si sposta alla fine del menu a tendina. per evitare questo e mantenere il nome all'inizio ho letto che si deve modificare e portare a 0 la proprieta topindex
Private Sub ListBox1_Change()
Dim myInd, mySplit, myRan As Range
mySplit = Split(ListBox1.ListFillRange, "!")
'>>>
If UBound(mySplit, 1) > LBound(mySplit, 1) Then
Set myRan = Sheets(mySplit(LBound(mySplit, 1))).Range(mySplit(LBound(mySplit, 1) + 1))
Else
Set myRan = ActiveWindow.Range(mySplit(LBound(mySplit, 1)))
End If
'<<<
myInd = Application.Match(ListBox1.Value, myRan, 0)
ListBox1.TopIndex = myInd - 1
'[J1] = myInd
End Sub
Anthony47 ha scritto:....Con questo livello di dettaglio la mia migliore ipotesi e' che stai usando un ListBox, immagino dalla collezione "Controlli ActiveX", che visualizza l' elenco associato tramite la proprieta' ListFillRange e che ha associata anche una LinkedCell.
Nella stessa LinkedCell hai inserito una convalida da elenco, e l' elenco e' lo stesso elenco di origine del listbox (quello impostato tramite la ListFillRange).....
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
On Error GoTo errHandler
If Target.Count > 1 Then GoTo exitHandler
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
If cboTemp.Visible = True Then
With cboTemp
.Top = 100
.Left = 100
.ListFillRange = "Inserimento!$H$44:$H$47000"
.LinkedCell = ""
.Visible = False
.Value = ""
End With
End If
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
'if the cell contains a data validation list
Application.EnableEvents = False
'get the data validation formula
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
'show the combobox with the list
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width
.Height = Target.Height + 5
.ListFillRange = ws.Range(str).Address
.LinkedCell = Target.Address
End With
cboTemp.Activate
'open the drop down list automatically
Me.TempCombo.DropDown
End If
exitHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
errHandler:
Resume exitHandler
End Sub
Torna a Applicazioni Office Windows
Excel: formula automatica per evidenziare prodotto scaduto Autore: gamma_ray |
Forum: Applicazioni Office Windows Risposte: 3 |
Salvare file excel in formato html escludendo le immagini Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 10 |
formula excel non visualizza risultato Autore: tommasog |
Forum: Applicazioni Office Windows Risposte: 6 |
Excel 2016 - Funzione SCARTO + INDIRETTO Autore: pl1957 |
Forum: Applicazioni Office Windows Risposte: 2 |
Visitano il forum: Nessuno e 108 ospiti