[RESOLU] Amélioration Code VBA / Recherche MAX

DEMERS

XLDnaute Nouveau
Bonjour à vous tous,

J’appelle votre aide pour améliorer un code VBA dont la fonction, la recherche du MAX d’une valeur lié à une référence.

Le code fonctionne bien, néanmoins son inconvénient c’est quand la valeur MAX = 0 ou il n’existe pas dans la table, l’affichage reste bloqué sur la dernière valeur déjà recherché.

A cet effet, je m’adresse à vous en sollicitant votre aide pour la rectification de ce code de sorte que si la valeur max est 0, il doit afficher 0. Et si la valeur MAX n’existe pas dans la table, un message de notification doit se déclencher pour avertir l’absence d’un MAX avec invitation pour ajout d’un index de départ.

Je vous remercie.
 

Pièces jointes

  • SQCE_Dept3.xlsm
    79.1 KB · Affichages: 35
Dernière édition:

DEMERS

XLDnaute Nouveau
Re : Amélioration Code VBA / Recherche MAX

Bonsoir

supérieur ou égale a 0

If max# >= 0 Then TextBox2 = max#

Laurent


Bonjour à tous

en début de Private Sub ComboBox1_Change() rajouter

TextBox2 = ""

S'il n'y a pas de Max, la textbox reste vierge.

A+


Bonsoir Laurant950 / Bonsoir Paf / et tout le forum.
Je vous remercie tellement de votre aimable aide.

effectivement avec la valeur 0 le problème a été résolu.
Mais avec valeur absente ("") il reste toujours l'affichage de la dernière valeur déjà affichés
En outre, je voulais ajouter un msg d'ajout d'index si ce dernier n'existe pas dans la table.

je vous remercie de votre aide et,

Cordialement.
 

Paf

XLDnaute Barbatruc
Re : Amélioration Code VBA / Recherche MAX

Re

Mais avec valeur absente ("") il reste toujours l'affichage de la dernière valeur déjà affichés

Mais, en effaçant la textbox en début de sub, le problème disparait ! (Cf Post #3)

Pour l'affichage du message d'alerte , tester si max est vide ou égal à 0, si oui message.

A+
 

laurent950

XLDnaute Accro
Re : Amélioration Code VBA / Recherche MAX

Bonsoir,

Voici la solution

VB:
Private Sub ComboBox1_Change()
Dim i&
Dim max#

For i& = 1 To UBound(var, 1)
    If ComboBox1 = CStr(var(i&, 1)) Then
        If IsNumeric(var(i&, 3)) Or var(i&, 3) <> "" Then
            If CDbl(var(i&, 3)) > max# Then
                max# = CDbl(var(i&, 3))
                TextBox2 = CDbl(var(i&, 3))
                Exit Sub
            Else
                TextBox2 = ""
                MsgBox "absence d’un MAX avec invitation pour ajout d’un index de départ"
                Exit Sub
            End If
        End If
    End If
Next i&
End Sub

Laurent
 

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 188
Membres
102 809
dernier inscrit
Sandrine83