VBA - Function

Hub

XLDnaute Occasionnel
Bonjour à tous,

Comment réaliser une procédure « Function » très simple ne faisant théoriquement pas (pas obligé) appel à une Sub et qui permettrait d’effacer une cellule sélectionnée.

Par exemple
dans A1 il y a une valeur,
B1 est renseigné par 1 ou «vide»,
en C1 : procédure « Function MàZ (cellule)» si B1 = 1 alors Range(« A1 »).Clearcontents Sinon rien Fin

Cette fonction Mise à Zéro pourrait être ensuite reconduite dans les autres cellules de la colonne C

D’avance merci pour votre réponse

@+
 

Modeste geedee

XLDnaute Barbatruc
Re : VBA - Function

Bonsour®
Code:
'---------dans le module de feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target = 1 Then
Target.Offset(0, -1).ClearContents
End If
End Sub

nb :
le fait de repasser la valeur en colonne B à "vide" ou autre
ne ressuscitera pas la valeur effacée en A

nota :
1 - une formule ou fonction (en colonne C) renvoie une valeur et ne peut avoir d'action sur une autre cellule !!!
2 - une cellule (colonne A) ne peut contenir à la fois une saisie et une formule
 
Dernière édition:

Hub

XLDnaute Occasionnel
Re : VBA - Function

Merci pour cette réponse.
Ok pour les limites de performance de "Function", ça n'apparaît pas dans le tutoriel que j'utilise.

Par contre je ne comprends pas comment fonctionne la "Private Sub"
que représente "Target" dans les 3 cas suivants :
If Target.Column = 2 And Target = 1 Then
Target.Offset(0, -1).ClearContents

comment la procédure détecte t elle que B1 passe à 1 ou reste vide ?
quand la procédure est elle renseignée qu'elle doit effacer A1 quand B1 passe à 1 ?
et ainsi de suite pour les autres cellules de la colonne A et B

@+
 

eriiic

XLDnaute Barbatruc
Re : VBA - Function

Bonjour,

Met-toi dans un module feuille et en haut dans la liste de gauche choisis Worksheet.
Dans la liste de droite tu trouves les événements détecté par vba.
Le changement d'une cellule déclenche Worksheet_Change()
comment la procédure détecte t elle que B1 passe à 1 ou reste vide ?
C'est à toi de le tester :
Code:
If Target= "" then
'...
Else
'...
End If
eric
 

Hub

XLDnaute Occasionnel
Re : VBA - Function

Ok, j'ai compris comment cela fonctionne.

Je rencontre d'autres blocages et un Beug.
Je refais un nouveau cahier des charges et un fichier que je joindrai bientôt après un minimum de recherche perso

encore merci

@+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal