Fonctions match, index et indirect

Résolu
Laetitiayao Messages postés 54 Statut Membre -  
Laetitiayao Messages postés 54 Statut Membre -
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
A voir également:

1 réponse

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, pour le second:
range("BM3") = Range("y" & [AC2]) 

pourquoi veux-tu remplacer ces formules par du code vba?
1
Laetitiayao Messages postés 54 Statut Membre
 
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
yg_be Messages postés 24281 Statut Contributeur 1 584 > Laetitiayao Messages postés 54 Statut Membre
 
il 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
Laetitiayao Messages postés 54 Statut Membre
 
Oui je l'avais fait exactement pareil via l'enregistreur de macro, mais mon responsable ne veux pas de ça.
0
Laetitiayao Messages postés 54 Statut Membre
 
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
yg_be Messages postés 24281 Statut Contributeur 1 584 > Laetitiayao Messages postés 54 Statut Membre
 
voilà 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