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

Fonction Si par Macro VB

undo

XLDnaute Junior
Bonjour a tous,

je cherche a remplacer la fonction Si par une macro Excel

Merci d'avance

cordialement,
undo
 

groundhog

XLDnaute Junior
Re : Fonction Si par Macro VB

Bien le bonsoir.

Je tiens effectivement à m'excuser des informations qui arrivent au fur et à mesure. Le dernier fichier transmis est bien le définitif. Pour mon pardon, je travaillais en fait en parallèle sur ce fichier excel et celui-ci s'est étoffé au fil de l'eau : dans tous les cas, MEA CULPA.

Merci pour vos réponses !

Pour ce soir, je fais une pose bien méritée. Je m'attache à la bête dès demain et reviens vers vous si j'ai besoin d'un complément d'information.




 

groundhog

XLDnaute Junior
Re : Fonction Si par Macro VB

Bien le bonjour en ce dimanche de mars.

Bon, mauvaise nouvelle. Le fichier transmis ne résoud pas mon problème.
La seule solution viable que j'ai trouvé de mon côté c'est l'ajout d'une nouvelle colonne à côté de la colonne "C" de chaque mois, avec une macro copiant le résultat de la formule incluse dans la colonne "C", si et seulement si le résultat change.

Pourriez-vous m'aider à la réalisation de cette macro ?

Merci à vous tous pour votre, en espérant avoir été clair dans mon discours
 

groundhog

XLDnaute Junior
Re : Fonction Si par Macro VB

Le problème ne viendrait pas de la formulation de la macro ?

J'ai trouvé ça dans un autre forum, peut-être plus judicieux d'utiliser cette syntaxe ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('B2:B3')) Is Nothing Then ta macro


 

Fo_rum

XLDnaute Accro
Re : Fonction Si par Macro VB

Salut,

sans autres précisions formulées, une dernière macro ("Rupture" pour au moins 1 mois)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Li As Integer, Col As Byte, C As Byte
  If Target.Count > 1 Then Exit Sub
  Li = Target.Row
  If Not Intersect(Target, Range("H" & Li & ":CF" & Li)) Is Nothing Then
    For Col = 14 To 80 Step 6
      If Cells(Li, Col) < Cells(Li, "H") Then C = C + 1
    Next
    Cells(Li, "G") = IIf(C = 0, "EN STOCK", "RUPTURE")
  End If
End Sub
 

groundhog

XLDnaute Junior
Re : Fonction Si par Macro VB

Merci Fo_rum

Ta 1ère macro fonctionne tout à fait bien, ce n'est pas le problème.

Je demande :

QUAND CHANGEMENT VALEUR "B2", SI "B2"<="A2" THEN "C2"="RUPTURE" SINON "EN STOCK"

Ma problèmatique aujourd'hui est que le contenu de "B2" est une formule, et non du texte. Pour avoir testé, si le contenu est du texte, pas de soucis. En revanche pour la formule, la macro ne reprend pas la modification.


 

vbacrumble

XLDnaute Accro
Re : Fonction Si par Macro VB

Bonsoir

groundhog:
'Dans un module
Code:
Public valcel
Public Sub mymacro()
Msgbox "test"
End sub

Code:
'Dans le code de la feuille active
Private Sub Worksheet_Calculate()
If Range("A1").Value = valcel Then Else mymacro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
mymacro
Else
valcel = Range("A1").Value
End If
End Sub
 

groundhog

XLDnaute Junior
Re : Fonction Si par Macro VB

SNIF, malheureusement ça ne marche pas pour moi.

as-tu un exemple plus concret sur fichier excel ?

Le but étant d'adapter cette fonction à une colonne entière et non une seule cellule.

merci
 

vbacrumble

XLDnaute Accro
Re : Fonction Si par Macro VB

Re


Une suggestion : groundhog


Je vois en relisant le fil que c'est undo qui l'a ouvert.

Peut-être devrais tu ouvrir un fil de discussion spécifique à ton problème.

Car ce fil contient déjà trois pages.
 

Discussions similaires

Réponses
26
Affichages
378
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…