traduction en VBA

hyo66

XLDnaute Nouveau
Bonsoir a tous :D:D

Pourriez m'aider a traduire cette formule en VBA

=SI(H15>C15;H15-C15;0)

J'avoue ne pas savoir me servir de l'enregistreur de macro

Merci
 

Fred0o

XLDnaute Barbatruc
Re : traduction en VBA

Bonsoir Hyo66,

Essaie le code ci-dessous Qui te mettra le résultat du calcul dans la cellule active.
Code:
If Range("H15").Value > Range("C15").Value Then
    ActiveCell.Value = Range("H15").Value - Range("C15").Value
A+
 

jeanpierre

Nous a quitté
Repose en paix
Re : traduction en VBA

Bonsoir hyo66,

L'enregistreur de macro, (Outils/Macro/Nouvelle macro donne ceci :

Sub Macro1()
ActiveCell.FormulaR1C1 = "=IF(R[14]C[7]>R[14]C[2], R[14]C[7]-R[14]C[2],0)"
Range("A2").Select
End Sub

Il suffit d'essayer.

Bonne soirée .

Jean-Pierre
 

Fred0o

XLDnaute Barbatruc
Re : traduction en VBA

Re bonsoir,

C'est vrai que quelquefois j'ai tendance à me compliquer la vie. Cependant, j'ai eu la désagréable surprise sur plusieurs projets de voir que la codification des plages entre crochets ne focntionnait pas. Donc, j'écris systématiquement Range("").

A+
 

hyo66

XLDnaute Nouveau
Re : traduction en VBA

Merci pour vos deux réponses :)
En fait j'essaye d'intégrer ce calcul a une macro existante ou il y a un bouton insertion et un autre suppression de ligne et je patauge un peu
mais a force d'insister on va y arriver
car je voudrai que ce calcul pourtant simple soit actif dans cette ligne d'insertion quelque l'endroit ou je l'insert
ca me sert a rajouter des lignes supplémentaire dans une liste déjà établie

J'ai integré ta formule JP mais a priori ca coince
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : traduction en VBA

Bonsoir à tous
Re bonsoir,

C'est vrai que quelquefois j'ai tendance à me compliquer la vie. Cependant, j'ai eu la désagréable surprise sur plusieurs projets de voir que la codification des plages entre crochets ne focntionnait pas. Donc, j'écris systématiquement Range("").

A+
En effet, [A1] est une forme abrégée de Evaluate("A1") et non de Range("A1").

L'aide d'Excel donne entre autres exemples d'expressions équivalentes :
trigVariable = [SIN(45)] et trigVariable = Evaluate("SIN(45)")
qu'il ne viendrait pas à l'esprit d'écrire
trigVariable = Range("SIN(45)")

ROGER2327
#3004
 

hyo66

XLDnaute Nouveau
Re : traduction en VBA

Bin j'ai un peu progressé
mais la je suis bloqué ,mon calcul ne se fait pas
Qq a une idée ou est l'erreur
J'ai bien épuré le fichier d'origine et les boutons insert et suppr fonctionne
reste que la calcul a mettre en œuvre
 

Pièces jointes

  • essai gestion debit matiere.xls
    45 KB · Affichages: 42
Dernière édition:

Fred0o

XLDnaute Barbatruc
Re : traduction en VBA

Bonjour à tous,

Pour Hyo66 : J'ai simplifié et corrigé la Sub et cela a l'air de fonctionner.
Code:
Private Sub CommandButton1_Click()
    If ActiveCell.Row > 14 And ActiveCell.Row < Trim(Str(Range("weight").Row) - 2) Then
        activerow = ActiveCell.Row + 1
        Cells(activerow, 1).EntireRow.Insert
        Range(Cells(activerow, 10), Cells(activerow, 11)).FormulaR1C1 = "=IF(RC[-2]>RC[-7], RC[-2]-RC[-7],0)"
    End If
    ActiveSheet.PageSetup.PrintArea = "$A$1:$M$" + Trim(Str(Range("weight").Row) + 2)
End Sub

Pour Roger :
Bonsoir à tous
En effet, [A1] est une forme abrégée de Evaluate("A1") et non de Range("A1").
ROGER2327
#3004

Merci de cette explication éclairé !

A+
 

hyo66

XLDnaute Nouveau
Re : traduction en VBA

Merci Fredoo
J'ai eu du mal car pas très a l'aise avec la programmation VBA mais par analogie j'étais arrivé a la même solution que toi :)YESSSSSSSS
donc je suis tout fière qd même (j'ai certainement mis plus de temps que toi :D:D:D:D:D ca c'est sur)
J'ai juste rajouté un coefficient -1 pour avoir le delta a commander en positif
Maintenant je vais m'attaquer a la gestion des formats de toles

Merci a tous :):):):):):):):)
 

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 293
Membres
102 853
dernier inscrit
jetstream69