#DIV/0!

  • Initiateur de la discussion jane
  • Date de début
J

jane

Guest
Bonsoir à tous,

je souhaite creer un ordre tel que :
si la cellule IV11 affiche un message d'erreur de calcul #DIV/0! alors envoie un messagebox puis sors de la macro. Voici ce que j'ai écris, evidemment ça marche pas...

If Range("IV11").Value = Error Then
MsgBox ("Division impossible par 0 ou calcul impossible avec du texte!")
TextBox1.SetFocus
Exit Sub
End If

Merci pour vos idees.
 
M

Mytå

Guest
Bonsoir Jane

A voir si cela te convient

If IsError(Range("IV11")) Then
MsgBox ("Division impossible par 0 ou calcul impossible avec du texte!")
TextBox1.SetFocus
Exit Sub
End If

smiley_417.gif
 
J

jane

Guest
Merci mais ça marche pas, maintenant peu importe les nombres que j'entre dans ma userform il apparait le messagebox("Division impossible par 0 ou calcul impossible avec du texte!").Je pense qu'il y a incompatibilité :
comme je savais pas comment effectuer mon calcul directement à partir des valeurs rentrées dans les textbox, je suis passée par des cellules et je renvoie le resultat de la cellule IV11 dans la textbox resultat. Voici la totalité de ma macro :

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If IsError(Range("IV11")) Then
MsgBox ("Division impossible par 0 ou calcul impossible avec du texte!")
TextBox1.SetFocus
Exit Sub
End If
Range("IV1").Value = TextBox1.Value
Range("IV2").Value = TextBox2.Value
Range("IV3").Value = TextBox3.Value
Range("IV4").Value = TextBox4.Value
Range("IV5").Value = TextBox5.Value
Range("IV6").Value = TextBox6.Value
Range("IV7").Value = TextBox7.Value
Range("IV8").Value = TextBox8.Value
Range("IV9").Value = TextBox9.Value
Range("IV10").Value = TextBox10.Value
Range("IV11").Value = "=(100*STDEV(R[-10]C:R[-1]C))/AVERAGE(R[-10]C:R[-1]C)"
TextBox11.Value = Range("IV11").Value
Range("IV1:IV11") = Delete
End Sub
 
M

Mytå

Guest
Re Jane

Essaye plutot comme ceci

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Range("IV1").Value = TextBox1.Value
Range("IV2").Value = TextBox2.Value
Range("IV3").Value = TextBox3.Value
Range("IV4").Value = TextBox4.Value
Range("IV5").Value = TextBox5.Value
Range("IV6").Value = TextBox6.Value
Range("IV7").Value = TextBox7.Value
Range("IV8").Value = TextBox8.Value
Range("IV9").Value = TextBox9.Value
Range("IV10").Value = TextBox10.Value
Range("IV11").Value = "=(100*STDEV(R[-10]C:R[-1]C))/AVERAGE(R[-10]C:R[-1]C)"
If IsError(Range("IV11")) Then
MsgBox ("Division impossible par 0 ou calcul impossible avec du texte!")
Range("IV1:IV11") = Delete
TextBox1.SetFocus
Exit Sub
End if
TextBox11.Value = Range("IV11").Value
Range("IV1:IV11") = Delete
End Sub
 
M

Mytå

Guest
Re jane

ta formule en
Range("IV11").Value = "=(100*STDEV(R[-10]C:R[-1]C))/AVERAGE(R[-10]C:R[-1]C)"

devait deja avec les cellules vides te donne un erreur

en deplacant le test apres la saisit la le calcul peut s'effectuer

Bonne fin de soirée

smiley_417.gif
 
J

jane

Guest
Encore une petite question, est ce que tu sais comment faire pour tranferer une macro? j'veux dire, là je bricole sur mon pc mais c'est que j'aimerais aussi apporter ma macro au boulot sans à avoir à tout recopier (userform, macro...) et en la protegeant des intrus....est ce possible??
 

Discussions similaires

Réponses
6
Affichages
363
Réponses
4
Affichages
419

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 191
dernier inscrit
Assjmka