Petit programme sous VBA

Fermé
guillaumesk850 - 1 mars 2012 à 10:26
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 2 mars 2012 à 09:41
Bonjour,

Je suis novice en terme de programmation VBA et j'aimerais de l'aide pour réaliser un petit programme permettant de gérer les données d'une liste de cellules.
Le programme doit prendre dans la liste 4 cellules consécutives, soustraire la premiere à la quatrieme et si le résultat est inférieur à 0,100 ( et que Variable 1 < Variable 2 < Variable 3 < Variable 4) alors c'est OK... sinon ces 4 cellules (du moins leur valeur) doivent etre reporter dans une nouvelle feuille (avec mise en forme du style écriture en rouge ...)

Voila le début de mon programme, cependant il ne fonctionne absolument pas et je doute déjà de la bonne déclaration des variables ....

Merci d'avance pour votre aide

a bientot
Guillaume



Le code : (il démarre en cliquant sur le bouton "Mise à jour" : btnmaj


Private Sub btnmaj_Click()

Dim VAR1 As Integer, VAR2 As Integer, VAR3 As Integer, VAR4 As Integer

Feuil3.Cells(3, 6) = VAR1
Feuil3.Cells(4, 6) = VAR2
Feuil3.Cells(5, 6) = VAR3
Feuil3.Cells(6, 6) = VAR4

'Feuil3.Range("LISTERR").Cells(i, 1) = VAR1
'Feuil3.Range("LISTERR").Cells(i, 2) = VAR2
'Feuil3.Range("LISTERR").Cells(i, 3) = VAR3
'Feuil3.Range("LISTERR").Cells(i, 4) = VAR4


If VAR4 - VAR1 < 0.1 Then
'and VAR1 < VAR2 < VAR3 < VAR4
MsgBox "1ere étape OK"
'Ecrire dans une nouvelle feuille les valeurs des variables 1, 2, 3 et 4
'puis mettre en forme cette "zone critique"
Else: MsgBox "PAS OK"
End If


End Sub


2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
1 mars 2012 à 23:03
Bonsoir,

Je pense que VBA ne gère pas les "<" en cascade...
Place un If après VAR2 pour la vérification VAR2 > VAR1 puis après VAR 3 puis après VAR4 (If ((VAR4>VAR3) And (VAR4-VAR1<0.1)) Then OK Else EndIf)

J'écris pas tout mais en cherchant un peu tu devrais t'en sortir

A+
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
2 mars 2012 à 09:41
Bonjour,

1°) Tu définis tes variables en Integer (entiers) et tu cherches si la variabilité entre deux nombres en inférieure à 0,1 => il te faut définir tes variables en double pour utiliser des nombres à virgules

2°) Pour faire ton test complet :
If VAR4 - VAR1 < 0.1 And (Var4>VAR3 And VAR3>VAR2 And VAR2>VAR1) Then
....
Else
...
End If 

Cordialement.
0