Utilisation "SET" & "Range"
Bonjour à tous,
malgré la lecture de nombreux messages ici et là, je passe à oté de la solution de mon probleme sur l'utilisation de l'objet range.
L'idée de la macro est de trouver la valeur min d'une plage de données.
Pour cela :
il y a n paire de colonne (le nombre de ligne est variable)
- je saisi une valeur approximative (nombre entier) a chercher
- je cherche la valeur supérieur approchante (décimale) dans la première colonne de la paire.
- Je cherche la valeur min dans la seconde colonne de la paire sur une plage de 50 lignes avant et après la position de la valeur décimale
mais ça plante sur le Set maPlage=xxxxxx dans le code suivant.
Qu'est-ce que je loupe?
Et question subsidiaire pour les amateurs, est-ce la bonne méthode?
Merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
Sub Calculs()
Dim position_freq, valeur
Dim colonne_freq As Integer
Dim maPlage As Range
colonne_freq = 1
Nbr_séries = Worksheets("Calcul").Range("ZZ1").Value
For Nbr_freq = 1 To 4
Réponse = Worksheets("Calcul").Cells(Nbr_freq, 701).Value
For i = 1 To Nbr_séries
colonne_freq = 2 * i - 1
DerLigne = Worksheets("Résultats_Log").Cells(66000, colonne_freq).End(xlUp).Row
'trouve la position recherchée Worksheets("Résultats_Log").Select
Set maPlage = Worksheets("Résultats_Log").Range(Cells(1, colonne_freq), Cells(DerLigne, colonne_freq))
answer = Application.WorksheetFunction.Match(Réponse, myRange, -1)
'trouve le min dans une plage de autour de la fréquence recherché
Set maPlage = Worksheets("Résultats_Log").Range(answer.Offset(-50, 1), answer.Offset(50, 1))
answer = Application.WorksheetFunction.Min(myRange)
Next i
Next Nbr_freq
End Sub |