Recherche de valeur et la copier

Résolu
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.

4 réponses

  1. 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
    1. je dois modifier Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row ?
      désolé je ne mis connais pas trop
      0
    2. voulez vous mon fichier? pour vous rendre compte et le faire directement dessus?
      0
    3. http://cjoint.com/13jn/CFmpcr5osrB.htm
      0
    4. 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
    5. 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
  2. j'ai essayer avec la fonction RECHERCHEV mais ça ne fonctionne pas ou je m'y prend mal.
    aidez moi SVP
    0
    1. c'est exactement ça je test ça de suite.
      merci
      0
      1. la macro ne fonctionne pas je ne connais pas la raison.
        aidez moi SVP
        0
        1. Autant pour moi, sur la ligne :
          Nb_Ligne = Sheets(1).Cells(1000000, 8).End(xlUp).Row
          remplace 1000000 par 65536
          0
        2. 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
        3. 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
        4. 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
        5. 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