Ajouter une nouvelle ligne avec valeurs dans une autre feuille

Bonjour à tous !

Je souhaite ajouter une ligne sur une autre feuille (Feuil1) si la valeur de la cellule A1 de ma feuille active (Feuil2) est supérieure à 0. Pour se faire, j'appelle ma fonction depuis ma cellule A2 en renseignant 2 paramètres : nom de la feuille (où je souhaite ajouter une ligne); valeur (56,3 dans mon exemple).

Voici la formule en A2 :

=SI($A$1>0;ajout_ligne("Feuil1";56,3);"aucune action")

Et ma macro >> Module >> Module1 :

Function ajout_ligne(nom_feuille, valeur)

Dim ligne As Long, y As Single
Dim x As String

x = nom_feuille
y = valeur

ligne = Sheets(x).Range("A65000").End(xlUp).Offset(0, 0).Row

MsgBox ligne
MsgBox x

Sheets(x).Range("A" & ligne) = Now
Sheets(x).Range("B" & ligne) = y

End Function

Ma fonction est bien appelé mais malheureusement, aucune ligne ne s'insère dans ma Feuil1... De plus en A2 (si A1>0), j'ai une erreur #VALEUR?

Je joins à ce post un fichier d'exemple qui sera sans doute plus parlant. Merci d'avance pour votre aide et soutien !

12exemple03.xlsm (15.17 Ko)

Salut aargol,

Voilà ce que j'ai fait, ça change un peu de ce que tu avais proposé, à toi de me dire si ça te convient.

Zapsalis

47exemple03.xlsm (17.97 Ko)

Merci de ton retour Zapsalis ! Ta solution marche parfaitement. Néanmoins, afin de conserver la "contexture/assemblage" de mon document, j'ai besoin d'appeler cette fonction dans une formule et lui transmettre des arguments, de cette façon :

=SI($A$1>10;ajout_ligne("Feuil1";56,3);"aucune action")

J'ai eu beau chercher et essayer plusieurs méthodes je n'ai pas réussi. Je ne sais même pas si cela est possible.

Cependant si je peux te donner un conseil, si tu fais une fonction il faut que ta fonction renvoie une valeur sinon ce n'est pas une fonction mais une procédure.

Zapsalis

Merci Zapsalis !

Je débute sur Excel et me suis un peu perdu dans ma "logique". D'un premier abord, je trouvais pratique et réalisable de concatener l'appel d'une fonction dans les conditions mêmes de ma formule.

Un peu dans ce genre de raisonnement :

SI($A$1>0;(CONCATENER((ajout_ligne("Feuil1";56,3)); "une ligne a été ajoutée !");"aucune action")

Mais visiblement, c'est un peu plus complexe que ça...

Je garde ta solution sous le coude, j'y reviendrai plus tard ! ça m'aide en tout cas ! ;) Encore merci !!

Rechercher des sujets similaires à "ajouter nouvelle ligne valeurs feuille"