› Sviluppare funzionalita su Microsoft Office con VBA › Ricerca del massimo in un area
-
AutoreArticoli
-
Buongiorno a tutti, sono nuovo nel forum e ho una domanda:
Nel foglio1 ho i seguenti dati:
A B C D
Articolo Pr1 Pr2 Pr3
Apple 175 176,5 175Se la larghezza della colonna C è 3,71 (in modo che in C2 si vede 177 e non più 176,5 che è il valore inserito nella cella) la seguente macro mi da "non trovato", invece se la larghezza della colonna C è 5,57 (in modo di visualizzare in C2 il valore 176,5) la macro scrive nella cella F2 l'indirizzo della cella contenente il massimo dell'area (cioè C2).
Qualcuno sa spiegarmi perché questo è così e se si può evitare questo problema. Grazie in anticipo e cordiali salutiSub SearchMax1()
Dim rng As Range
Dim search1 As RangeSet rng = Range(Cells(2, 2), Cells(2, 4))
Set search1 = rng.Find(Application.WorksheetFunction.Max(rng), LookIn:=xlValues, lookAt:=xlWhole)
If Not search1 Is Nothing Then
Range("F2") = search1.Address
Else
Range("F2") = "Non trovato"
End IfEnd Sub
Ciao
In tutta sincerità non capisco perchè si comporti così.
Se la tua non è pura curiosità ma ti serve ottenere l'indirizzo della cella contenente il valore massimo (diverso da quello che appare) prova con la tua macro leggermente implementata
Sub SearchMax1() Dim rng As Range Dim search1 As Range Set rng = Range(Cells(2, 2), Cells(2, 4)) Set search1 = rng.Find(mx, LookIn:=xlValues, lookAt:=xlWhole) mx = Application.Max(rng) If Not search1 Is Nothing Then Range("F2") = search1.Address Else Range("F2") = "Non trovato" cn = Application.WorksheetFunction.Match(mx, rng, 0) + 1 LC = Replace(Cells(1, cn).Address(False, False), "1", "") Range("F3") = "$" & LC & "$" & 2 End If End SubFai sapere. Ciao,
Mario
Ciao ho fatto un minimo di ricerca in Google e mi pare di aver capito che
LookIn:=xlValues cerca nei valori come visualizzati
basta sostituire LookIn:=xlValues con LookIn:=xlFormulas
Ciao
Luca
xlValues cerca nei valori come visualizzati
Questa è una (brutta) sorpresa anche per me. Grazie per l'informazione
E' proprio vero: non si finisce mai d'imparare.
Grazie Luca73
Ciao,
Mario
Complimenti, gentilissimi e velocissimi, funzionano tutte e due le soluzioni!
Grazie mille e cordiali saluti.
Un ultima domanda come devo fare per chiudere la discussione come risolta?come devo fare per chiudere la discussione come risolta?
Nel tuo primo post, accanto al titolo, c'è una combobox con le due voci pertinenti.
-
AutoreArticoli
