dopo lutilizzo delle collection
Hai un problema con Excel? 
di scossa data: 24/03/2015 10:33:11
Ciao,
in ComboBox1_Change devi spostare l'istruzione
Me.ComboBox2.Clear
prima di
Set sh = ThisWorkbook.Worksheets("Foglio2")
in ComboBox2_Change sposta
Me.ComboBox3.Clear
prima di
Set sh = ThisWorkbook.Worksheets("Foglio2")
Questo perché l'istruzione .Clear fa eseguire la routine di evento _Change che contiene alla fine l'istruzione set sh = nothing e poiché hai dichiarato sh come privata, l'istruzione
Set sh = ThisWorkbook.Worksheets("Foglio2") va eseguita dopo .Clear altrimenti sh è nothing.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di efarre data: 24/03/2015 12:00:26
Grazie della risposta al primo quesito.
adesso l'errore non compare più.
per il secondo quesito rimango in attesa di aiuto.
Ancora grazie
Enzo Farre
di scossa data: 24/03/2015 14:31:13
Sostituisci la Sub ComboBox3_Change con il codice sottostante.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Private Sub ComboBox3_Change()
Dim nRow As Long
Dim rng As Range
Set sh = ThisWorkbook.Worksheets("Foglio2")
With sh
nRow = .Range("C" & .Rows.Count).End(xlUp).Row
Set rng = .Range("C2:C" & nRow).Find(ComboBox3.Value)
If Not rng Is Nothing Then TextBox1 = rng.Offset(0, 1).Value
End With
Set sh = Nothing
Set rng = Nothing
End Sub
|
di efarre data: 24/03/2015 16:09:12
Ok funziona benissimo, ma non la capisco.
qui conto il numero delle righe in colonna C
---- nRow = .Range("C" & .Rows.Count).End(xlUp).Row
qui imposto il range sul quale cercare il valore della ComboBox3
---- Set rng = .Range("C2:C" & nRow).Find(ComboBox3.Value)
questa non la capisco (SE IL RANGE NON E' NOTHING allora TextBox1 deve essere popolato dal valore presente nella cella stessa riga colonna successiva)
---- If Not rng Is Nothing Then TextBox1 = rng.Offset(0, 1).Value
me la puoi spiegare?
Grazie mille per l'aiuto.
Enzo Farre
di scossa data: 24/03/2015 16:22:24
cit. efarre: "questa non la capisco (SE IL RANGE NON E' NOTHING allora TextBox1 deve essere popolato dal valore presente nella cella stessa riga colonna successiva) "
A me pare che tu l'abbia capita, visto che fa esattamente quello che hai scritto tra le parentesi
Se il metodo .Find non trova una corrispondenza restituirà Nothing, mentre se trova una corrispondenza restituirà la cella a destra della cella dove il valore è stato trovato ......
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di efarre data: 24/03/2015 16:27:50
era il not con nothing che mi confondeva.
Comunque grazie ancora
chiudo la discussione
Enzo
Vuoi Approfondire?