Recherche de valeur et la copier

Résolu/Fermé
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018 - Modifié par jof.27 le 12/06/2013 à 14:25
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018 - 12 juin 2013 à 16:19
Bonjour,
je n'arrive pas a faire ma macro qui à l'air pourtant simple a l'écrit en français.
je souhaites chercher la valeur la plus proche de zéro dans colonne H a partir de la ligne 14, sur la ligne de la valeur proche de zéro je souhaites copier la valeur de la colonne C puis la coller dans la case E3.
si déjà ça c'est possible, je voudrais que la vérification se fasse automatiquement en vérifiant que la valeur sur la ligne trouvée du 0 de la colonne F soit alors égale à 0 après que la valeur en E3 soit collée.
merci de votre aide.

A voir également:

4 réponses

Bonjour,

On ne peux pas dire que soit clair dans tes propos j'ai pas tout pigé à ce que tu veux mais voici déjà une première macro :

Sub RECH_VAL_0()
Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row
For i = 1 To Nb_Ligne
x = 0
Resultat = Sheets(1).Cells(i, 8)

If Resultat < 0 Then
Resultat = Resultat * -1
x = 1
End If

If Valeur_0 = "" Then
If x = 0 Then
Valeur_0 = Resultat
Valeur_C = Sheets(1).Cells(i, 3)
Else
Valeur_0 = Resultat * -1
Valeur_C = Sheets(1).Cells(i, 3)
End If
Else
If Resultat < Valeur_0 Then
If x = 0 Then
Valeur_0 = Resultat
Valeur_C = Sheets(1).Cells(i, 3)
Else
Valeur_0 = Resultat * -1
Valeur_C = Sheets(1).Cells(i, 3)
End If
End If
End If
Next i

Sheets(1).Cells(3, 5) = Valeur_C
End Sub

Cette Macro Vas annalyser la colonne H et pour la ligne ou le montant est le plus proche de 0 il copie la valeur de la colonne C de cette ligne en cellule E3.

C'est bien ça que tu voulais ?
1
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 14:56
je dois modifier Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row ?
désolé je ne mis connais pas trop
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 14:58
voulez vous mon fichier? pour vous rendre compte et le faire directement dessus?
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 15:03
http://cjoint.com/13jn/CFmpcr5osrB.htm
0
Non tu n'a rien besoin de modifier excepter sur la ligne
For i = 1 To Nb_Ligne

tu remplace le 1 par 14 car les données de ton tableau commence à partir de la ligne 14

Apparement tu sais ou copier la macro.

Sur la page où se trouve ton tableau, ajoute un bouton et fais un clique droit dessus puis assigner macro. selectionne RECH_VAL_0 puis OK
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 15:26
il me dit toujours qu'il y a un problème sur la ligne
Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row
erreur d'exécution "1004"
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 14:43
j'ai essayer avec la fonction RECHERCHEV mais ça ne fonctionne pas ou je m'y prend mal.
aidez moi SVP
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 14:51
c'est exactement ça je test ça de suite.
merci
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 15:17
la macro ne fonctionne pas je ne connais pas la raison.
aidez moi SVP
0
Autant pour moi, sur la ligne :
Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row
remplace 1000000 par 65536
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 15:32
ok la macro fonctionne seulement il reporte la mauvaise valeur juste a modifier l'approche du zéro je penses. ce que je veut dire il copie bien la valeur mais cette valeur n'est pas celle de la ligne ou il y la valeur rechercher qui est zero ou le plus proche positif.
ou dois je faire la modification?
merci d'avance
0
La macro avait quelques petits soucis :
celle là devrait mieux fonctionner

Sub test()
Nb_Ligne = Sheets(1).Cells(65536, 8).End(xlUp).Row
For i = 14 To Nb_Ligne
Resultat = Sheets(1).Cells(i, 8)

If Resultat < 0 Then
Resultat = Resultat * -1
End If

If Valeur_0 = "" Then
Valeur_0 = Resultat
Valeur_C = Sheets(1).Cells(i, 3)
Else
If Resultat < Valeur_0 Then
Valeur_0 = Resultat
Valeur_C = Sheets(1).Cells(i, 3)
Ligne = i
End If
End If
Next i

Sheets(1).Cells(3, 5) = Valeur_C
End Sub
0
jof.27 Messages postés 79 Date d'inscription lundi 3 juin 2013 Statut Membre Dernière intervention 13 janvier 2018
12 juin 2013 à 16:07
ok c'est ça mais juste la valeur proche de zéro doit être positive donc la par exemple il prend la valeur -0.18 et moi je voudrais qu'il prenne la valeur pareil mais positive 0.24.
que dois-je modifier?
merci votre aide.
0
Eh, il faut mieux s'exprimer :-)
La valeur la plus proche de 0 c'est -0.18

Si je comprend bien, tout ce qui est inférieur à 0 je laisse tomber c'est ça ?
J'analyse que les montant compris entre 0 et l'infini. ?
0