Fonctions match, index et indirect

Résolu
Bonjour à tous,
j'ai les formules suivantes sous excel, que je cherche à écrire en VBA mais je n'y arrive pas je galère depuis ce matin.

range("AC2")=MATCH(TRUE,INDEX((AC5:AC30<>0),0),0)+4

range("BM3")=INDIRECT("y"&AC2)

j'ai vraiment besoin d'aide, merci infiniment

1 réponse

  1. Contributeur Ambassadeur
    bonjour, pour le second:
    range("BM3") = Range("y" & [AC2]) 

    pourquoi veux-tu remplacer ces formules par du code vba?
    1
    1. Bonjour Yg_be, merci de ta réponse.
      je travaille sur un fichier existant ou tout les calculs étaient déja fait dans excel, ma mission (stagiaire) c'est d'écrire une macro avec bouton de commande pour que les cellules se remplissent automatiquement
      0
    2. Contributeur Ambassadeur
      @Laetitiayaoil est possible par vba de mettre des formules dans des cellules, par exemple:
      range("AC2").FormulaLocal = "=MATCH(TRUE,INDEX((AC5:AC30<>0),0),0)+4"
      0
    3. Oui je l'avais fait exactement pareil via l'enregistreur de macro, mais mon responsable ne veux pas de ça.
      0
    4. J'ai appliqué ta solution, mais je recois un message d'erreur, je crois qu'il y a un leger problème mais je n'arrive pas à determiner ou
      0
    5. Contributeur Ambassadeur
      @Laetitiayaovoilà ce que je ferais pour la première formule:
      Dim cl As Range
      For Each cl In [AC5:AC30]
          If cl <> 0 Then
              Range("AC2") = cl.Row
              Exit For
          End If
      Next cl
      0