Problème de valeurs
Bonjour,
J'utilise un code VBA qui fait une rechercheV de valeur absolue et arrondie d'une cellule. Le code se présente ainsi:
Sub Erreur()
Dim i As Integer
Dim R As Variant
For i = 2 To 10001
If Range("Y" & i) = 0 Then
Sheets("teliway").Range("AH" & i).Value = "Erreur saisie"
ElseIf Range("F" & i) Like "Genas" Then
R = Application.VLookup(Round(Abs(Sheets("teliway").Range("AG" & i).Value), 2), Sheets("Grille").Range("F49:G130"), 2, False)
If IsError(R) Then
Sheets("teliway").Range("AH" & i).Value = ""
Else
Sheets("teliway").Range("AH" & i).Value = R
End If
End If
Next
End SubMon problème est que la fonction VLOOKUP ne trouve pas les valeurs recherchées, je m'explique:
J'ai écris mon VBA en formules pour vérifier chaque étape mais le résultat est le même
Imaginons en la cellule A1 avec une valeur de -5,478931
La cellule A2 a pour valeur ABS(A1) donc 5,478931
La cellule A3 a pour valeur ARRONDI(A2,2) donc 5,47
La cellule B3 a pour valeur (sans passer par des fonctions) 5,47
En A4 je pose la formule =SI(A3=B3;"OUI";"NON")
Bizarrement, la fonction me renvoie "NON", donc que les valeurs des cellules A3 et B3 serait différentes. Ainsi ma rechercheV ne peut aboutir, à mon avis la fonction arrondi est à blâmer. Quelqu'un aurait-il une idée pour régler ce problème?
Merci
PS: Si l'on peut m'indiquer comment fermer un sujet que j'avais crée hier, cela serait super. Je ne souhaite pas flooder le forum de posts à peu près identiques.
Bonjour Sothin
En A3 a pour valeur ARRONDI(A2,2) donc 5,47... ERREUR !
L'arrondi de 5,478931 ne peut être égal qu'à 5,48
@+
Bonjour Bruno,
Mince je me suis trompé bêtement dans mon exemple... Disons alors que A1 vaut -5,47398.
Ma question reste donc la même ^^
De plus, la cellule arrondie affiche bien la valeur à deux décimales mais lorsque je clique dessus, la valeur réelle reste celle avec toutes les décimales. Une idée pour changer ceci?
J'ai sinon eu l'idée d'utiliser RechercheX afin de faire une recherche approximative supérieure et une autre inférieure et prendre la différence la plus petite mais je n'utilise pas la version 365 malheureusement. Existe-il un code qui permettrait de palier à ce problème?
Re,
Perso à la base je me demande le pourquoi de l'utilisation du VBA
N'ayant pas compris le but, je n'irais pas plus en avant.
Bonne chance
Que cela soit avec VBA ou formules Excel, le problème reste le même mais bon...
Je veux juste comprendre pourquoi la cellule arrondie ne prends pas sa valeur arrondie et garde sa valeur initiale, et s'il existe une combine pour contourner cela. J'estime avoir été assez clair
Voici un fichier retravaillé pour rester confidentiel. La formule Excel que j'ai trouvée est en B16 et le code VBA dans l'éditeur. Je souhaiterais passer par un code VBA qui ferait gagner pas mal de temps et que ce n'est que juste une étape dans un code plus grand, cela serait dommage de devoir stopper le code a ce moment la et de le relancer ensuite. D'autres informations sont annotées dans le fichiers
Re,
Un code VBA ne fait pas forcément gagner du temps surtout dans les calculs
Ceci dit votre VLOOKUP() va droit à l'échec puisque vous cherchez une valeur arrondi à 2 décimales dans une liste de valeur ou aucune n'est arrondi (juste visuellement)
De plus pourquoi avoir plusieurs lignes identiques de tarif ?
| 14,75 | 12,13 | 12,77 | 11,73 | Différence Poids |
| 14,75 | 12,13 | 12,77 | 11,73 | Différence Poids |
| 14,75 | 12,13 | 12,77 | 11,73 | Différence Poids |
Mais un des contributeurs de ce forme vous donnera certainement une réponse
Bon courage