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

Macro et calcul if... then ....

  • Initiateur de la discussion Bertrand
  • Date de début
B

Bertrand

Guest
Bonjour à tous et à toutes,

Je découvre ce forum qui me semble excellent. J'espère que j'y trouverai mon bonheur.

J'ai un soucis. outre le fait que je sois un peu débutant

Contexte B) :
J'ai un réservoir de 6000 litres qui se remplit d'eau. En cas de débordement, la quantité d'eau reste la même (=6000).
Si on y verse 8000 litres, je voudrai que le calcul d'eau présente dans la cuve me donne donc 6000 litres.

Autrement dit :

IF 'nombre de litres en case A1' > 6000
THEN 'volume d'eau dans la cuve en case A2'=6000

IF 'nombre de litres en case A1' < 6000
THEN 'volume d'eau dans la cuve en case A2'=case A1

IF 'nombre de litres en case A1' = 6000
THEN 'volume d'eau dans la cuve en case A2'=6000

COMMENT ECRIRE UNE MACRO QUI PUISSE ME DONNER CELA ?

Merci pour votre aide précieuse.

Bertrand.
 

Gérard DEZAMIS

XLDnaute Accro
Bonsoir Bertrand

en A2 =SI(A1='';'';SI(A1>=6000;6000;A1))
en formule
édition
ou en VBA

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range('A2').Value = Range('A1').Value
If Range('A1').Value > 6000 Then
Range('A2').Value = 6000
End If
End Sub


@+GD

Message édité par: Gérard DEZAMIS, à: 22/03/2006 23:12
 
B

bebert

Guest
essaie ça
ça doit fonctionner

Sub volumeCUVE()
Dim volume As String


volume = Range('a1').Value

If volume >= 6000 Then
Range('a2') = 6000
Else
Range('a2') = Range('a1')

End If

End Sub

bebert aussi
 
B

bebert

Guest
essaie ça
ça doit fonctionner

Sub volumeCUVE()
Dim volume As String


volume = Range('a1').Value

If volume >= 6000 Then
Range('a2') = 6000
Else
Range('a2') = Range('a1')

End If

End Sub

bebert aussi
 
B

Bebert

Guest
Merci. J'ai lancé la macro il me dit 'error runtime' sur :
volume = Range('a1').Value.

'La sous procédure ou procédure n'est pas définie'

Merci pour votre aide, j'avance !

Bebert de Toulouse
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Bertrand, mon ami Gérard et Bebert

S'il faut les 2 solutions, par formule :

=SI(A1='';'';MIN(A1;6000))

et par macro :

Sub VolumeCuve()
'
  If Not IsEmpty(Range('A1')) Then
    Range('A2') = WorksheetFunction.Min(Range('A1'), 6000)
  End If
End Sub

Voili voilà !

A+
 

Discussions similaires

Réponses
19
Affichages
2 K
Réponses
7
Affichages
581
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…