Rechercher dans une colonne

Résolu
jordan.MRC Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
jordan.MRC Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une colonne de nombre.

Je voudrais savoir si on pouvait faire un code VBA pour faire apparaître un message et colorier la cellule à chaque fois qu'un nombre des différentes cellule dépasse un objectifs.

Exemple: L'objectif est de 100

A1 50
A2 60
A3 80
A4 100
A5 30
A6 20
A7 68
A8 110 (un message devrait s'afficher)
A9 34
A10 67

Merci d'avance pour votre aide.
A voir également:

2 réponses

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Pour la colorisation, plutôt que de faire du code, tu peux faire une mise en forme conditionnelle.

Pour le message, si tu veux que ça indique le nombre de dépassements de l'objectif, tu peux très bien te faire un
=NB.SI()


Si tu tiens absolument à ton code : https://www.excel-pratique.com/fr/vba.php

Intéresse-toi aux variables, aux boucles, aux boites de dialogues et aux propriétés et couleurs.
1
jordan.MRC Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci pour ces informations je vais plutôt prendre ta solution.
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182 > jordan.MRC Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Dans ce cas, je te conseille de noter ton objectif dans une cellule et de t'y référer pour la mise en forme conditionnelle et le NB.SI().

Bonne continuation.
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour Jordan, bonjour le forum,

Deux options, au choix :

[Edition]
Bonjour Arkana, nos posts se sont croisés...

Sub Macro1()
Dim OB As Variant 'déclare la variable OB (OBjectif)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

deb: 'étiquette
'définit la boite d'entée OB pour l'objectif
OB = Application.InputBox("Quel est l'objectif ?", "OBJECTIF", Type:=1)
If OB = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Range("A" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée de la colonne A de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes de 1 à DL
    If O.Cells(I, 1).Value > OB Then 'condition : si la valeur de la cellule ligne I, colonne 1 (=A) est supérieure à l'objectif
        O.Cells(I, 1).Interior.ColorIndex = 3 'colore la cellule de rouge
        MsgBox "Dépassement de l'objectif !" 'affiche un message
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub


Sub Macro2()
Dim OB As Variant 'déclare la variable OB (OBjectif)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim MSG As String 'déclare la varaible MSG (MeSsaGe)

deb: 'étiquette
'définit la boite d'entée OB pour l'objectif
OB = Application.InputBox("Quel est l'objectif ?", "OBJECTIF", Type:=1)
If OB = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Range("A" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée de la colonne A de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes de 1 à DL
If O.Cells(I, 1).Value > OB Then
    If O.Cells(I, 1).Value > OB Then 'condition : si la valeur de la cellule ligne I, colonne 1 (=A) est supérieure à l'objectif
        O.Cells(I, 1).Interior.ColorIndex = 3 'colore la cellule de rouge
        'définit le message MSG
        MSG = IIf(MSG = "", O.Cells(I, 1).Address(0, 0), MSG & Chr(10) & O.Cells(I, 1).Address(0, 0))
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
MsgBox "Dépassement de l'objectif en :" & Chr(10) & MSG 'affiche le message global
End Sub


À plus,
ThauTheme
1
jordan.MRC Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci de ta réponse
0