Ecriture d'une ligne de commande en VB

  • Initiateur de la discussion Initiateur de la discussion hyo66
  • 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 !

hyo66

XLDnaute Nouveau
Bonsoir
J'ai un problème de programmation et la je sèche

J’aimerai ajouter dans les lignes de calcul de VBA Project le produit issu de 2 cellules en colonne I et J en mm dans la cellule en colonne F en m2 condition A ou en m condition B
Condition A :si X et Y sont remplis en mm le résultat doit être en m2
et
Condition B :si X est rempli en mm et Y non rempli le résultat doit être égal a X en mètre

Voici l'édition de la commande a savoir que c'est un bouton d'insertion d'une ligne avec ces calculs associés (calcul de poids et débit)



Private Sub CommandButton1_Click()

ActiveCell.Select

ActiveSheet.Unprotect password:="newton"

If ActiveCell.Row > 14 And ActiveCell.Row < Trim(Str(Range("weight").Row) - 2) Then
activerow = ActiveCell.Row + 1
Cells(activerow, 1).Select
Selection.EntireRow.Insert
Cells(activerow, 6).Formula = "=If(ESTVIDE(J" + Trim(Str(activerow)) + ");I" + Trim(Str(activerow)) + "/1000;I" + Trim(Str(activerow)) + "/1000*J" + Trim(Str(activerow)) + "/1000)"
Cells(activerow, 7).Formula = "=F" + Trim(Str(activerow)) + "*E" + Trim(Str(activerow))
Cells(activerow, 8).Formula = "=F" + Trim(Str(activerow)) + "*E" + Trim(Str(activerow)) + "*D" + Trim(Str(activerow))

Range("weight").Formula = "=SUM(H" + Trim(Str(15)) + ":H" + Trim(Str(Range("weight").Row) - 3) + ")"

myrange = Trim(Str(Range("weight").Row)) - 1 - 14

Range("F12").Formula = "=SUBTOTAL(" + Trim(Str(9)) + ",G" + Trim(Str(15)) + ":G" + Trim(Str(Range("weight").Row) - 3) + ")"
Range("H12").Formula = "=SUBTOTAL(" + Trim(Str(9)) + ",H" + Trim(Str(15)) + ":H" + Trim(Str(Range("weight").Row) - 3) + ")"

Else
ActiveCell.Select
End If

Merci d'avance a ceux qui m'aideront a corriger la ligne "Cells(activerow, 6)" qui ne marche pas
 
Re : Ecriture d'une ligne de commande en VB

Merci de vous intéresser a mon cas

j'ai réécris la ligne comme suit

Cells(activerow, 6).Formulalocal = "=si(estvide(J + Trim(Str(activerow));"*I" + Trim(Str(activerow)) + "/10000" + Trim(Str(activerow))); "=I" + Trim(Str(activerow)) + "*J" + Trim(Str(activerow)) + "/10000" + Trim(Str(activerow)))"

mais j'ai la reponse : erreur de syntaxe !!!! et je la voie pas
peut être un œil neuf me dira ce qui manque
 
Re : Ecriture d'une ligne de commande en VB

Bonjour le fil, hyo66, lerexcel

Avec l'enregistreur de macro, pour la ligne suivante
Cells(activerow, 6).Formula = "=If(ESTVIDE(J" + Trim(Str(activerow)) + ");I" + Trim(Str(activerow)) + "/1000;I" + Trim(Str(activerow)) + "/1000*J" + Trim(Str(activerow)) + "/1000)"
On obtient (sous réserve d'avoir compris)
Code:
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[4]),RC[3]/1000,RC[3]*RC[4]/1000)"
Naturellement, ActiveCell est a adapter.

A plus
 
Re : Ecriture d'une ligne de commande en VB

Ca marche

Apres une correction de coeff et avoir renommé l'Activecell

ca me donne

Cells(activerow, 6).FormulaR1C1 = "=IF(ISBLANK(RC[4]),RC[3]/1000,RC[3]/1000*RC[4]/1000)"

Merci Bcp Soenda (et les autres aussi bien sur)

A propos c'est quoi ton enregistreur de macro ????? ca a l'air de bien marcher
 
Dernière édition:
Re : Ecriture d'une ligne de commande en VB

J'aimerai ajouter a la condition si résolue précédemment une autre condition
est ce possible?
En fait il y a un troisième choix si X et Y sont vide la cellule active doit être égal a 1 (c'est le cas du calcul d'une masse unitaire)
rappel de la formule des 2 premiers choix est :

Cells(activerow, 6).FormulaR1C1 = "=IF(ISBLANK(RC[4]),RC[3]/1000,RC[3]/1000*RC[4]/1000)"
 
- 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

Réponses
0
Affichages
519
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Retour