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 : Sélectionner tout - Visualiser dans une fenêtre à part
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