utilisation fonction perso sous excel

utilisation fonction perso sous excel - VB/VBA/VBS - Programmation

Marsh Posté le 10-11-2004 à 15:08:37    

Bonjour,
Je fais actuellement sous excel ceci :

=SI(Feuil1!C1="Machaine";A1;"" )


Quand "Machaine" de la feuille 1 est présente sur C1, cela affiche A1 sinon cela n'affiche rien.
J'aimerais remplacer le n'affiche rien, par un supprime ligne.
 
J'ai donc fais une fonction dans un module de mon classeur qui est la suivante :
 

Public Function SupprLigne()
ActiveCell.EntireRow.Delete
End Function


 
 
et je l'appel comme cela :

=SI(Feuil1!C1="Machaine";A1;SupprLigne())


 
Le probleme est que excel me renvoie #NOM? et j'arrive pas à comprendre pourquoi....... Il trouve pas ma fonction.......
 
Merci pour votre aide.

Reply

Marsh Posté le 10-11-2004 à 15:08:37   

Reply

Marsh Posté le 11-11-2004 à 23:38:00    

il faut que tu place ta fonction dans un module et non dans le code de la feuille

Reply

Marsh Posté le 13-11-2004 à 01:22:15    

C'est bien ce que j'ai fais  :heink:  

gothico a écrit :

J'ai donc fais une fonction dans un module de mon classeur qui est la suivante :

Public Function SupprLigne()
ActiveCell.EntireRow.Delete
End Function




Reply

Marsh Posté le 13-11-2004 à 01:31:58    

ah oui ,j'avait pas fait attention :D
 
ce que je comprend pas c'est que chez moi ca marche  [:croquignol]

Reply

Marsh Posté le 15-11-2004 à 09:31:16    

gargamail a écrit :

ce que je comprend pas c'est que chez moi ca marche  [:croquignol]


Ha bah, ca, c'est le bouquet   [:lezioul]  
 
Il me semblait bien pas avoir fait de conneries  [:mir45]

Reply

Marsh Posté le 15-11-2004 à 09:49:41    

Petite nouvelle, apparement, ca marche maintenant, mais je suis obligé de lancer l'execution de la macro (ca se fait pas tout seul?)
 
Deuxième probleme : ActiveCell.EntireRow.Delete supprimer la ligne seletionnée, or je voudrais que cela supprimer la ligne ou ce trouve la fonction, quand je peux faire ca?

Reply

Marsh Posté le 15-11-2004 à 17:41:18    

normalement si , ca se fait tout seul ( tu est bien en "calcul automatique" )
 
Range("A1" ).entirerow.delete puisque tu test la cellule A1

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed