Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion jul51
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jul51

Guest
Hello à tous,

Voila je suis en train de développer un pricer de cap, j'ai besoin d'aller chercher dans un table normale la valeur correspondante comme cela:

J'ai une table sous cette forme: Formulaire de Mathématiques : Table de la loi normale

J'ai tout transformer pour etre au forma excel (suppression des chr160 et des . à la place des virgules).

Par exemple, j'ai un nombre du type : 1,877423982

Le debut de mon code va chercher avec left le 1,8 et va me le chercher dans la table.

Et là, impossible d'obtenir un resultat?

Avec la fonction recherche de excel, il me trouve bien dans la colonne A la valeur 1,8 mais pas la formule find?

Voici mon code:

Code:
Worksheets("Feuil1").Activate
     
    
        For Each MaCel In Worksheets("Feuil1").Range("K1:K50")
        If Not MaCel = "" Then
        If IsNumeric(Cells(MaCel.Row, 11)) Then
        
        MsgBox MaCel
        val1 = Left(MaCel, 3)
        val2 = "0.0" & Mid(MaCel, 4, 1)
        
        MsgBox val1
        MsgBox val2
        
        Worksheets("Feuil2").Activate
        
        Set mot = Range("A2:A41").Find(What:=val1, LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
        If val1 = "" Then Exit Sub
        
        If Not mot Is Nothing Then

Ce n'est que le debut, val1 prend bien la valeur voulue mais find ne me la trouve pas dans la colonne A?????

Merci de votre aide
 
Dernière modification par un modérateur:
Re : Pb avec find

Bonjour Jul51 et le forum,

Pour avoir 1,8 à partir de 1,877423982 tu fais :

Code:
valeur= (cint(1,877423982*10)/10

si tu multiplies :

Code:
Ligne= 1,8*10+1

tu auras le numéro de ligne

et si tu prends:

Code:
Colonne=cint((valeur-cint(valeur))*10)+1

tu auras le numéro de colonne ceci aux offsets prés.

bon test.
 
Re : Pb avec find

Merci de ta réponse mais 1.8 tombe en ligne 20 chez moi, pas en ligne 19? ((1.8*10)+1)

J'ai finalement fait autrement, find ne marche pas bien pour aller chercher des chiffre donc j'ai utilisé ça:

Code:
For Each MaCel In Range("A2:A41")
        If MaCel.Value = val1 Then
        LL = MaCel.Row
        End If
        Next

et il me donne la ligne, je fais la meme pour la colonne et ça roule.


Encore merci
 
Re : Pb avec find

Bonjour Jul, Jyll

ci dessous avec l'utilisation de "find", me renvoie bien la bonne cellule. Mon séparateur décimal est le point, à privilégier si utilisation vba, enfin c'est juste mon avis.

Code:
Sub test()
Dim x As Range, z As Double
'cellule h2 renseignée par 1.877423982, x me renvoie la bonne cellule
z = 1.8
Set x = Range("2:2").Find(z, , xlValues, xlPart, , , False)
If Not x Is Nothing Then MsgBox "la date du jour est en " & x.Address
End Sub

@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
521
Réponses
4
Affichages
586
Réponses
2
Affichages
411
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…