Rechercher dans une colonne

Résolu/Fermé
jordan.MRC Messages postés 12 Date d'inscription mardi 21 juin 2016 Statut Membre Dernière intervention 22 juin 2016 - 22 juin 2016 à 14:18
jordan.MRC Messages postés 12 Date d'inscription mardi 21 juin 2016 Statut Membre Dernière intervention 22 juin 2016 - 22 juin 2016 à 15:04
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 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
22 juin 2016 à 14:34
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 mardi 21 juin 2016 Statut Membre Dernière intervention 22 juin 2016 2
22 juin 2016 à 14:42
Merci pour ces informations je vais plutôt prendre ta solution.
0
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181 > jordan.MRC Messages postés 12 Date d'inscription mardi 21 juin 2016 Statut Membre Dernière intervention 22 juin 2016
22 juin 2016 à 14:45
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 22/06/2016 à 14:56
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 mardi 21 juin 2016 Statut Membre Dernière intervention 22 juin 2016 2
22 juin 2016 à 15:04
Merci de ta réponse
0