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
Partager