pb de formule avec variable

remsj

XLDnaute Nouveau
Bonjour,
Je suis en train de créer une tableau avec macro, mon pb est que lorsque je clic sur un bouton, je veux récupérer le numéro de la ligne, l'intégrer dans une formule que je place dans une cellule de cette même ligne afin d'effectuer ce calcul :
La ligne est bien récupérée dans ma variable : ligne
formulecirc correspond à mon calcul intégrant ma variable
je me décale de 3 colonnes
et je veux copier cette formule avec le contenu de la variable et non le nom de la variable

Ne pas tenir compte du if / else, car j'ai un autre bouton pour un autre calcul
J'ai un renvoi d'erreur sur ma ligne : ActiveCell.Formula = formulecirc

Sub CommandButton4_Click()
If CommandButton2.Enabled = True Then
Dim ligne As Integer
ligne = ActiveCell.Row
formulecirc = "=(Cells(ligne,3)*Cells(ligne,3)*Cells(ligne,2)/4/PI())-(Cells(ligne,3)*Cells(ligne,3)*Cells(ligne,2)/4/PI()*(Cells(ligne,7)/100))"
Selection.Offset(0, 3).Activate
ActiveCell.Formula = formulecirc
Selection.Offset(0, 1).Activate
ActiveCell.Value = resultat
Else
Dim ligne1 As Integer
ligne1 = ActiveCell.Row
formulediam = "=(Cells(ligne1,4)*Cells(ligne1,4)*Cells(ligne1,2)*PI()/4)-((Cells(ligne1,4)*Cells(ligne1,4)*Cells(ligne1,2)*PI()/4)*(Cells(ligne1,7)/100))"
Selection.Offset(0, 1).Select
Selectioncell.Formula = formulediam
Selection.Offset(0, 2).Select
ActiveCell.Value = resultat
End If
End Sub

Merci de votre aide, je patine depuis quelques heures.
Rémi
 

remsj

XLDnaute Nouveau
Re : pb de formule avec variable

Bonjour eric
Il s'agit d'un programme de traitement de données:
sur ma page excel j'ai le choix (2 boutons) entre saisie de diamètre ou de circonférence (je suis bucheron et c'est pour traiter mon cubage mensuel), Je masque une de ces colonne par sécurité lors de la saisie.
Le troisième bouton me place sur la première ligne vierge (début de saisie).
je rentre mes données (col 1 : n° grume, col 2 Longueur, col 3 : diamètre ou circonférence (en fonction du bouton choisi)
Avec le bouton 4 je veux traiter ces données pour que j'ai le résultat de la formule (intégrant la variable liée à la ligne de saisie en cours).
La formule arrive bien dans ma cellule mais marque : #NOM? et n'intègre pas la valeur de ma variable l

voici mon code complet :

Private Sub TextBox1_Change()
Dim resultat
resultat = Val(TextBox1.Value)
End Sub

Private Sub CommandButton1_Click()
If CommandButton1.BackColor = &H8000000F Then
CommandButton1.BackColor = &HC0C0C0
CommandButton2.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H8000000F
End If
Columns("D:D").Select
Selection.EntireColumn.Hidden = False
Columns("C:C").Select
Selection.EntireColumn.Hidden = True
Columns("F:F").Select
Selection.EntireColumn.Hidden = False
Columns("G:G").Select
Selection.EntireColumn.Hidden = True
'Call calculdiam'

End Sub

Private Sub CommandButton2_Click()
If CommandButton2.BackColor = &H8000000F Then
CommandButton2.BackColor = &HC0C0C0
CommandButton1.BackColor = &H8000000F
Else
CommandButton2.BackColor = &H8000000F
End If
Columns("C:C").Select
Selection.EntireColumn.Hidden = False
Columns("D:D").Select
Selection.EntireColumn.Hidden = True
Columns("G:G").Select
Selection.EntireColumn.Hidden = False
Columns("F:F").Select
Selection.EntireColumn.Hidden = True
'Call calculcirc'

End Sub

Private Sub CommandButton3_Click()
Cells(Rows.Count, 1).End(xlUp)(2).Select


End Sub

Sub CommandButton4_Click()
Dim l As Integer
l = ActiveCell.Row
If CommandButton2.Enabled = True Then

formulecirc = "=(Cells(l,3)*Cells(l,3)*Cells(l,2)/4/PI())-(Cells(l,3)*Cells(l,3)*Cells(l,2)/4/PI()*(Cells(l,7)/100))"

Range("G" & l) = formulecirc
Range("H" & l) = resultat

Else

formulediam = "=(Cells(ligne1,4)*Cells(ligne1,4)*Cells(ligne1,2)*PI()/4)-((Cells(ligne1,4)*Cells(ligne1,4)*Cells(ligne1,2)*PI()/4)*(Cells(ligne1,7)/100))"
Selection.Offset(0, 1).Select
Selectioncell.Formula = formulediam
Selection.Offset(0, 2).Select
ActiveCell.Value = resultat
End If
End Sub

En espérant avoir été assez clair.
Merci
 

ERIC S

XLDnaute Barbatruc
Re : pb de formule avec variable

Re

il m efaudrait la formule que tu souhaites obtenir

par exemple, la formule en colonne D suivante

=(($C$3*$C$3*$B$3)/4/PI())-(($C$3*$C$3*$B$3)/4/PI()*$G$3/100)

s'obtient en vba

ligne = ActiveCell.Row
Cells(ligne, 4).FormulaR1C1 = _
"=((R" & ligne & "C3*R" & ligne & "C3*R" & ligne & "C2)/4/PI())-((R" & ligne & "C3*R" & ligne & "C3*R" & ligne & "C2)/4/PI()*R" & ligne & "C7/100)"
Range("D3").Select
 

ERIC S

XLDnaute Barbatruc
Re : pb de formule avec variable

Re

pour ce genre de pb, tu écris ta formule puis
tu lances l'enregistreur de macro
tu cliques dans la barre de formule et tu fais entrée
tu arrêtes l'enregistreur

tu vas voir et tu adaptes le code (comme j'ai fait avec ligne

note j'ai mis le code en adresse absolue (R1C1) mais si tu l'écris en relatif (sans $) tu auras une écriture de la forme RC[2] qui signifie même ligne et 2 colonnes à droite
 

Discussions similaires

Statistiques des forums

Discussions
314 656
Messages
2 111 609
Membres
111 220
dernier inscrit
Elé0n0re