VBA sélectionner plusieurs cellules

Bonsoir a tous,

Novice en VBA, je voudrai que vous m'aidiez a régler un petit problème. Je voudrai non pas sélectionner une seule cellule mais un ensemble de cellules dans une m^éme colonne.

Voici ma petite programmation:

Private Sub Workbook_Open()

Dim T_Date

T_Date = Date

If T_Date > Range("10").Value Then

MsgBox "ATTENTION UNE OU PLUSIEURS DATES SONT A ECHEANCES"

End If

End Sub

Merci d'avance.

GGK

Bonsoir,

Là tu ne sélectionnes rien ! Très bien d'ailleurs car il ne sert strictement à rien de sélectionner en VBA, ça n'aboutitqu'à le ralentir.

Tu essaies d'afficher un message... mais cela m'étonnerait que cela puisse fonctionner !

Range("10") implique que tu as nommé une plage "10". Comme cela n'est pas possible, on peut s'interroger sur la signification de ce "nom".

D'autre part soit tu désignes ainsi une seule cellule, et je doute que cela réponde à ton besoin, soit il s'agit de plusieurs cellules, mais dans ce cas il faut les parcourir et opérer ton test sur chacune...

Cordialement.

Pardon lire ("J10"). Peux tu me donner une solution por que cela fonctionne sur un ensemble de cellules de la même colonne. Par exemple cellule J10 a cellule J50?

Merci.

Il y a diverses façons de faire... par exemple, compte tenu de tes indications :

Private Sub Workbook_Open()
    Dim T_Date, c As Range
    T_Date = Date
    For Each c In Worksheets("xxx").Range("J10:J50")
        If c.Value <> "" Then
            If T_Date > c.Value Then
                MsgBox "ATTENTION UNE OU PLUSIEURS DATES SONT A ECHEANCES"
                Exit For
            End If
        Else
            Exit For
        End If
    Next c
End Sub

Pense à préciser le nom de feuille, tu n'as sûrement pas qu'une feuille dans ton classeur !

Cordialement.

Bonjour MFerrand,

Je te remercie pour ta réponse, j'ai recopié tes données mais malheureusement le message d'alerte n'apparait uniquement pour la seule cellule J10 et non pas pour les autres. Peu être cela a une importance, la programmation doit fonctionner uniquement pour les dates des cellules J10 a J50 dans une même feuille nommée MOIS.

Merci encore et si tu as la solution j'en serai tres heureux.

Cordialement

GGK

Je ne comprends pas bien ce que tu dis ! A la première cellule trouvée de J10 à J50 (qui n'est pas vide et dont la date est dépassée, le message est affiché. C'est bien ce que tu demandes !

Quand une cellule vide est rencontrée c'est qu'on a épuisé les cellules à tester...

Cordialement.

Ok excuse moi je me suis mal exprimer.

En clair je voudrai que le message d'alerte s'affiche lorsque une ou plusieurs cellules ont la date d'échéance dépassées et qu'importe si une des cellules est vide.

Merci encore de ta patience et de ton aide.

Cordialement.

GGK

Ainsi :

Private Sub Workbook_Open()
    Dim T_Date, c As Range
    T_Date = Date
    For Each c In Worksheets("MOIS").Range("J10:J50")
        If c.Value <> "" Then
            If T_Date > c.Value Then
                MsgBox "ATTENTION UNE OU PLUSIEURS DATES SONT A ECHEANCES"
                Exit For
            End If
        End If
    Next c
End Sub

La macro ne s'interrompt pas si elle rencontre une cellule vide...

Mais on est bien d'accord qu'elle n'affiche le message qu'une seule fois, si elle rencontre une cellule répondant à la condition.

Tout à fait, c'est exactement ça mais je ne pourrai tester que demain matin et ne doute pas de tes compétences.

Je suis encore au taf.

Merci beaucoup. Bonne soirée.

Cordialement.

GGK

Bonjour,

le VBA n'était pas obligatoire si j'ai compris...

Un format conditionnel pourrait aussi attirer l'attention sur les dates

P.

Salut Patrick !

Tu as tout à fait raison ! Mais si notre ami souhaite être prévenu avant d'entrer dans le vif du sujet, un peu de VBA permet de le faire.

Ce qui n'empêche pas de doubler cela par un MFC qui aura le mérite d'indiquer précisément les cellules en cause.

Cordialement.

Bonjour a tous,

Je vous remercie pour m'avoir bien aidé dans ma demande et je remercie particulièrement MFerrand pour avoir résolu mon problème.

Merci a tous.

Patrick, si j'ai bien compris il y aurait une solution plus simple pour moi en passant par le format conditionnel? peux tu m'en dire plus (Pour ma culture personnelle).

Bonne journée.

cordialement.

ggk

Bonjour,

tu peux mettre un format conditionnel dans les cellules contenant tes dates ...

par exemple:

=G2>=AUJOURDHUI()

ou

=G2+15>=AUJOURDHUI()

P.

Bonjour Patrick,

Je te remercie pour ta réponse, mais cette solution ne m'affiche pas une alerte des l'ouverture du fichier.

Cordialement.

GGK

Rechercher des sujets similaires à "vba selectionner"