XL 2010 Ajouter une nouvelle ligne avec valeurs dans une autre feuille

IxeX

XLDnaute Nouveau
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 :

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

Et ma macro >> Module >> Module1 :

Code:
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ée 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 ! 👍
 

Pièces jointes

  • exemple03.xlsm
    15.2 KB · Affichages: 15

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour IxeX,
Une fonction ne peut remonter qu'une valeur dans sa propre cellule. Elle ne permet pas de toucher à d'autres cellules que celle dont elle est appelée.
Il doit exister d'autre moyens mais il faudrait un fichier test plus "représentatif" en particulier comment est calculée la "valeur".
 

bbb38

XLDnaute Accro
Bonjour IxeX, sylvanu, le forum,
Un début de solution avec un bouton de commande sur la feuille 2.
A prévoir :
  • un formulaire pour saisir le nom de la feuille de destination (ou un InputBox),
  • Pour éviter d’effectuer la copie plusieurs fois, doit-on effacer le contenu de la ligne (Feuil2 ligne 1) ?
Autre possibilité, effectuer la copie à chacun changement de la valeur de la cellule B2 de la Feuil2.
Cordialement,
Bernard
 

Pièces jointes

  • exemple03.xlsm
    28.9 KB · Affichages: 6

IxeX

XLDnaute Nouveau
Merci pour vos réponses bbb38, sylvanu !

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 de ma formule.

Un peu dans ce genre de raisonnement :

VB:
=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 vos solutions et avis sous le coude, j'y reviendrai plus tard ! ça m'aide en tout cas ! ;) Encore merci !!
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 191
Membres
112 679
dernier inscrit
Yupanki