Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide sur Fonction Excel...svp

  • Initiateur de la discussion Initiateur de la discussion ephemere77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

ephemere77

Guest
bonjour

je veux créer une fonction ou Excel me demanderait une valeur avant de l'exécuter. est ce possible?

par ex: =cellule A2*(X) (sachant que X est inconnu et qu'il faut la rentrer

je voudrait que Excel me demande la valeur quand je clique sur la cellule comportant la fonction. comme la fonction "input"

quelqu'un peux me décrire la marche à suivre?

Merci de votre aide
 
Re : Aide sur Fonction Excel...svp

Salut ephemere77 et le forum
Tu ne peux pas entrer une valeur dans une cellule sans effacer la formule qu'elle contient.

Mais tu peux contourner la difficulté en désignant une cellule pour la saisie, et une pour la formule (et le résultat).
A3 : =A2*B2
Si A2 et B2 servent à entrer des inconnues, tu auras le résultat de la multiplication en A3 qui contient la formule.

Une autre solution est de passer par les macros à lancement uatomatique.
En utilisant Worksheet_Change (par exemple), tu peux te servir de la valeur au moment du changement manuel, la modifier, et mettre le résultat dans la cellule de départ. Ce n'est pas très compliqué, avec un minimum de pratique.
A+
 
Re : Aide sur Fonction Excel...svp

Salut phlaurent55 et le forum
Sur le module lié à feuil1 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_Change

If Target.Interior.ColorIndex <> 6 Or Target.Cells.Count > 1 Then GoTo Sort_Change
Application.EnableEvents = False
Target = Target * [A2]

Sort_Change:
Application.EnableEvents = True
Exit Sub
Err_Change:
MsgBox Err.Description, , "Erreur Excel n°" & Err.Number
Resume Sort_Change
End Sub
Si on sort d'un mode édition d'une cellule (après un double-clic, F2 ou un changement directe de valeur de la cellule).
S'il n'y a plus d'une cellule modifiée ou qu'elle n'a pas le fond jaune, alors, aller à l'adresse de sortie.
Blocage des évènements
Cellule modifiée =cellule modifiée * valeur de A2
adresse de Sortie
Remettre les évènements en route
sortir de la macro

La gestion des erreurs est rendue nécessaire par le blocage des évènements.
Si les évènement ne sont pas bloqués :
Une modif lance la macro qui change la cellule qui lance la macro...
A+
Edit : Désolé, j'ai fait ça sur l'exemple donné par phlaurent55, qui me déclenchait une erreur => pas vu que c'était une réponse
 
Dernière édition:
Re : Aide sur Fonction Excel...svp

bonjour tout le monde,

desole je croyais ma question simple
en fait imaginons que ma cellule A2=3 et que qu'en cellule B2 je dois efectuer
le calcule A2 x (une variable que l'on me donnera dans un document papier)

Est ce possible de créer une formule "A2*X" en B2 et qui lorsque je cliquerai sur B2 me demanderait la valeur de X avant d'executer la formule.

Est ce plus clair?
 
Re : Aide sur Fonction Excel...svp

bonjour ,

desole je croyais ma question simple
en fait imaginons que ma cellule A2=3 et que qu'en cellule B2 je dois efectuer
le calcule A2 x (une variable que l'on me donnera dans un document papier)

Est ce possible de créer une formule "A2*X" en B2 et qui lorsque je cliquerai sur B2 me demanderait la valeur de X avant d'executer la formule.

Est ce plus clair?
 
Re : Aide sur Fonction Excel...svp

Bonsoir à tous,

Voici un code à mettre sur le module de Feuil1 :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B2:B1000")) Is Nothing And Target.Cells.Count = 1 Then
        Target.Formula = "=A" & Target.Row & "*1"
        Application.SendKeys ("{F2}")
        Application.SendKeys ("{BS}")
    End If
End Sub

A+
 
Dernière édition:
Re : Aide sur Fonction Excel...svp

Bonjour le fil, le forum,

Est ce plus clair?

Pas vraiment mais enfin... Voir le fichier joint.

La macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [B2:B10]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target.Offset(, 1) <> "" Then Exit Sub 'si le calcul a déjà été confirmé
Dim mes As String
mes = "Confirmez-vous le calcul " & Range("A" & Target.Row) & "*" & Range("G" & Target.Row) & " ?"
If MsgBox(mes, 4) = 7 Then Exit Sub
Target.Offset(, 1) = "x"
End Sub

A+
 

Pièces jointes

Re : Aide sur Fonction Excel...svp

Salut ephemere77 et le forum
Clic-droit sur le nom de l'onglet=>Menu contextuel>>Visualiser le code
Tu colles la macro suivante :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_Change

If Target.Address(0, 0) <> "B2" Then GoTo Sort_Change
Application.EnableEvents = False
Target = Target * [A2]

Sort_Change:
Application.EnableEvents = True
Exit Sub
Err_Change:
MsgBox Err.Description, , "Erreur Excel n°" & Err.Number
Resume Sort_Change
End Sub
Attention : sur un module il ne peut pas y avoir deux macros de même nom.
Tu entres une valeur en A2, qui servira de multiplicateur.
Chaque fois que tu entres une valeur en B2, à la sortie, il te la multiplie par A2
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
305
Réponses
5
Affichages
271
  • Question Question
Microsoft 365 Imbrication
Réponses
2
Affichages
212
Réponses
4
Affichages
216
Réponses
2
Affichages
204
D
Réponses
15
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…