problème macro avec résultat de formule

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 !

greg0852

XLDnaute Nouveau
bonjour à tous,
j'ai une macro qui me modifie un nombre en E7 en fonction du nombre saisie en G7.
Cette macro fonctionne nickel. mais j'aimerais que la cellule G7, ne soit pas un nombre saisie mais une formule.
mais quand je mets une formule en G7, la macro ne reconnait pas le nombre et donc ne modifie pas E7. si quelqu'un avait une idée ça m'aiderait, merci d'avance.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$E$7" Then Exit Sub
If IsNumeric(Target) And Target > 0 Then Target.Offset(0, 2) = Target.Offset(0, 2) + Target
End Sub
 
Re : problème macro avec résultat de formule

je vais essayer.
disons que j'ai E7 =10 et que je mets 2 en G7, alors E7 deviens = à 12.
la macro ci-dessus fonctionne nickel.
mais si je mets G7 =D7, la macro ne fonctionne plus.
elle n'interprètes pas le résultat de G7 comme une valeur numérique.
et je ne sais pas comment faire pour qu'elle prenne le résultat de la formule comme une valeur numérique.
j'espère avoir été suffisamment explicite
 
Re : problème macro avec résultat de formule

Bonsoir à tous
(…)
disons que j'ai E7 =10 et que je mets 2 en G7, alors E7 deviens = à 12.
la macro ci-dessus fonctionne nickel.
(…)
J'en doute. La ligne
Code:
If Target.Address <> "$E$7" Then Exit Sub
empêche qu'une modification de la valeur en G7 soit prise en compte.​
ROGER2327
#4910


Samedi 28 Décervelage 138 (Repopulation, V)
6 Pluviôse An CCXIX
2011-W04-2T21:08:39Z
 
Dernière édition:
Re : problème macro avec résultat de formule

Bonsoir,
Quand je disais que c'était pas clair...
En l'état actuelle ta macro ne modifie pas la cellule E7 mais la cellule G7...
En outre si c'était le cas, il faudrait désactiver les événements temporairement pour que ça fonctionne correctement

Edit : salut Roger, euh c'est ni G8 ni G20 mais G7
🙂
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$E$7" Then Exit Sub
If IsNumeric(Target) And Target > 0 Then
    Application.EnableEvents = False
    Target = Target.Offset(0, 2) + Target
    Application.EnableEvents = True
End If
End Sub
A+
kjin
 
Dernière édition:
Re : problème macro avec résultat de formule

oups oui en effet kjin, j'ai inversé les cellules, c'est E7 qui modifie G7. ET ça fonctionne, quand je met un chiffre dans E7, mais pas quand je mets une formule.
bien que ne connaissant pas grand chose en macro, je pense que c'est cette ligne qui me pose problème :
Code:
If IsNumeric(Target) And Target > 0 Then Target.Offset(0, 2) = Target.Offset(0, 2) + Target

mais je ne sais pas par quoi la remplacer
 
Re : problème macro avec résultat de formule

Re...
C'est plus clair.
Essayez ceci (sans garantie, en l'absence de support) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Object
  If Target.Count > 1 Then Exit Sub
  On Error Resume Next
  Set x = Target.Dependents
  On Error GoTo 0
  If Not x Is Nothing Then
    If x.Address = "$E$7" And IsNumeric([E7].Value) And [E7].Value > 0 Then [G7].Value = [G7].Value + [E7].Value
  End If
End Sub
ROGER2327
#4911


Samedi 28 Décervelage 138 (Repopulation, V)
6 Pluviôse An CCXIX
2011-W04-2T21:20:34Z
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
556
Réponses
4
Affichages
239
Réponses
4
Affichages
258
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
338
Retour