Autres Récupérer numéro de ligne

Co_Lac

XLDnaute Junior
Bonjour,
J'ai un soucis de formatage de nombres!
**********************
Dabord je recherche le Max et le Min (ça, ça marche bien)
***************************
Dim Max As Single
Dim Min As Single
Max = Application.WorksheetFunction.Max(Range("E101:E" & Range("E65530").End(xlUp).Row))
Min = Application.WorksheetFunction.Min(Range("E101:E" & Range("E65530").End(xlUp).Row))
**********************************
La variable "Max" trouvé est avec 3 décimales soit = 0.050
*********************************
A partir de là ça se gate! (Récupéré sur le net!)

Dim Trouve As Range
Dim PlageDeRecherche As Range
Dim Valeur_Cherchee As Single
Dim AdresseTrouvee As String

*************************************
A partir de là, la variable Max est avec seulement 2 décimales soit = 0.05
*************************************
Valeur_Cherchee = Max
Set PlageDeRecherche = Sheets("Donnees bourse").Range("E101:E65530") 'plage de recherche
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole, SearchFormat:=True)

If Trouve Is Nothing Then
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address

*************************************
la recherche ne trouve pas le Max ! donc je passe là
*************************************
Else
AdresseTrouvee = Trouve.Address
End If

MsgBox AdresseTrouvee

En conclusion j'ai un problème de formatage des nombres que je n'arrive pas à résoudre!
Merci pour votre aide
Claude
 

jmfmarques

XLDnaute Accro
Bonjour
Single, type de données Single, type de données
Lien supprimé Lien supprimé Lien supprimé
Les Lien supprimé (à virgule flottante en simple précision) sont stockées sous la forme de nombres à virgule flottante de 32 bits (4 octets) IEEE dont la valeur est comprise entre -3,402823E38 et -1,401298E-45 pour les nombres négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs. Le Lien supprimé Single est le point d'exclamation (!).
 

patricktoulon

XLDnaute Barbatruc
un petit exemple de ma facon de fonctionner
VB:
Sub test()
    Dim adresse$, celluletrouvée As Range
    With Sheets(1)    'sheets a adapter
        adresse = .Range("A1", Cells(Rows.Count, "A").End(xlUp)).Address(0, 0)'lettre de colonne a adapter
        Set celluletrouvée = .Range("A" & Evaluate("=MAX((" & adresse & "=MAX(" & adresse & "))*ROW(" & adresse & "))"))'lettre colonne a adapter 
    End With

    MsgBox celluletrouvée.Address
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
puisqu'il faut tout faire :rolleyes:

le max
VB:
Sub MAX()
    Dim adresse$, celluletrouvée As Range
    With Sheets(1)    'sheets a adapter
        adresse = .Range("A1", Cells(Rows.Count, "A").End(xlUp)).Address(0, 0) 'lettre de colonne a adapter
        Set celluletrouvée = .Range("A" & Evaluate("=MAX((" & adresse & "=MAX(" & adresse & "))*ROW(" & adresse & "))")) 'lettre colonne a adapter
    End With

    MsgBox celluletrouvée.Address
End Sub

le min
VB:
Sub MIN()
    Dim adresse$, celluletrouvée As Range
    With Sheets(1)    'sheets a adapter
        adresse = .Range("A1", Cells(Rows.Count, "A").End(xlUp)).Address(0, 0) 'lettre de colonne a adapter
        Set celluletrouvée = .Range("A" & Evaluate("=MAX((" & adresse & "=MIN(" & adresse & "))*ROW(" & adresse & "))")) 'lettre colonne a adapter
    End With

    MsgBox celluletrouvée.Address
End Sub

VERSION 2
COMPORTEMENT DE FIND

MAX 1 ere occurrence

VB:
Sub MAXFIRST()
    Dim adresse$, celluletrouvée As Range
    With Sheets(1)    'sheets a adapter
        adresse = .Range("A1", Cells(Rows.Count, "A").End(xlUp)).Address(0, 0) 'lettre de colonne a adapter
    Set celluletrouvée = .Range("A" & Evaluate("= MATCH(MAX(" & adresse & ")," & adresse & ",0)"))
      End With

    MsgBox celluletrouvée.Address
End Sub

MIN 1 ere occurence
VB:
Sub MINFIRST()
    Dim adresse$, celluletrouvée As Range
    With Sheets(1)    'sheets a adapter
        adresse = .Range("A1", Cells(Rows.Count, "A").End(xlUp)).Address(0, 0) 'lettre de colonne a adapter
       Set celluletrouvée = .Range("A" & Evaluate("= MATCH(MIN(" & adresse & ")," & adresse & ",0)"))
     End With

    MsgBox celluletrouvée.Address
End Sub
cette fois ci j'ai tout dis ;)
 
Dernière édition:

Co_Lac

XLDnaute Junior
Je vous remercie pour toutes ces informations!
Entre temps j'ai testé et réussi à trouver la solution, je ne connaissais pas ce principe, je débute en vba, j'ai 68 ans, je n'ai que le CEP, je trouve ça trés passionnant et j'ai besoin d'apprendre!
Je suppose qu'à un moment de votre expérience vous avez vous aussi du apprendre et j'espère pour vous que vous ne savez pas tout!!
Avant de savoir on ne savait pas!
Merci pour votre réactivité.
Bonne soirée
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Information. "0.05" n'aboutit pas à la même valeur selon qu'il est converti en Single ou en Double. En Double: 3602879701896397 / 2^56, en Single: 13421773 / 2^28
En Double : 0,05000000000000000277555756156289135105907917022705078125
En Single : 0,0500000007450580596923828125
 

Discussions similaires

Réponses
8
Affichages
878

Statistiques des forums

Discussions
312 109
Messages
2 085 386
Membres
102 880
dernier inscrit
ADEL N