IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher un message selon plusieurs critères


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Afficher un message selon plusieurs critères
    Bonjour à tous,

    Eh oui j'ai encore besoin de votre aide.

    J'ai déjà mis en place un code qui me permet d'afficher une liste de produits si leur nombre est inférieur à 20 dans le stock.

    Mais chaque produits à sa limite de stock, par exemple les places de ciné 100, les entrées spectacle à 20, etc..

    Est-ce qu'il est possible à l'aide de Vba qu'un message s'affiche si chacun des cas est rencontré ?

    C'est à dire si le nombre de places de ciné est inférieur ou égale à 100 alors "alerte", si les entrées spectacles sont inférieures ou égales à 20 "alerte" et cela pour chacun des produits.

    Merci pour vos réponses
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut NEC14 et le forum
    J'ai déjà mis en place un code qui me permet d'afficher une liste de produits si leur nombre est inférieur à 20 dans le stock.
    C'est bien mais ça ne nous aide pas autant que si on l'avais ce code!
    "une liste de produits" : à côté tu mets leur limite (colonne de droite, par exemple) et tu fait une comparaison entre Valeur et limite après avoir chercher le produit dans ta liste et prit la limite dans la cellule d'à côté.
    Si tu n'a pas de limite, tu peux laisser vide (=0).
    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    voici la feuille stock de mon fichier.
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut NEC14 et le forum
    Comme c'est des valeurs rentrées manuellement dans un fichier de test, ça fonctionne, mais sur le fichier réel...
    A+

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Re,

    Lorsque l'utilisateur ouvre l'application, il lui est demandé un mot de passe.
    Si celui-ci est correct alors le code suivant se déclanche.
    Mais comment insérer ton code dans celui-ci ?
    Merci de votre aide car je suis un peu paumé. Je suis sur 3 projets en même temps et là je croule. (il est vrai que ce n'est pas votre problème)

    Code de Gorfael
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cel As Range
    Dim Plg As Range
    If Intersect([G4:G60], Target) Is Nothing Then Exit Sub
    For Each Cel In Intersect([G4:G60], Target)
        If IsNumeric(Cel) And IsNumeric(Cel.Offset(0, 1)) Then
            If Cel <= Cel.Offset(0, 1) Then
                MsgBox Cel.Offset(0, -6) & " est inférieur à la limite" & _
                "reste : " & Cel & Chr(13) & _
                "limite : " & Cel.Offset(0, 1), vbCritical + vbOKOnly, _
                Cel.Offset(0, -6) & " RUPTURE de STOCK"
            End If
        End If
    Next Cel
    End Sub
    Le mien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Sub testl()
    Dim msg As String
    Dim insuf As Boolean
    Dim Tablo As Variant
     
     
         insuf = False
         Sheets("Stock faible").Cells.ClearContents
         Tablo = Worksheets("Stock").Range("G1:G" & Split(Worksheets("Stock").UsedRange.Address, "$")(4)).Value
         For i = 4 To UBound(Tablo)
              If Tablo(i, 1) < 20 Then
                   insuf = True
                   Exit For
              End If
         Next
         If insuf Then
                MsgBox "Stock Insuffisant sur le(s) article(s) suivant(s)", vbInformation, "Avertissement"
                Sheets("Stock faible").Visible = True
                Sheets("Stock faible").Activate
                Sheets("Stock faible").Select
                Selection.ClearContents
                Sheets("Stock faible").Select
                Range("A1").Select
                Sheets("Stock").Range("A3:J" & Worksheets("Stock").UsedRange.Rows.Count).AdvancedFilter Action:=xlFilterCopy, _
                  CriteriaRange:=Sheets("Select").Range("A1:A2"), CopyToRange:=Range("A1"), _
                  Unique:=False
                Sheets("Stock faible").Select
            Else
            Load FrmAcc
    FrmAcc.Show
        End If
     
    End Sub
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut NEC14 et le forum
    Lorsque l'utilisateur ouvre l'application, il lui est demandé un mot de passe.
    Si celui-ci est correct alors le code suivant se déclenche.
    Mais comment insérer ton code dans celui-ci ?
    il est indépendant, il se lance à chaque changement de la colonne G.
    Pour modifier ta macro, se serait plutôt en changeant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Tablo(i, 1) < 20 Then
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Tablo(i, 1) < Worksheets("Stock").Range("H" & i)
    D'où l'importance de donner le code avec la question

    Ton code me semble bizarre : tu généres une variable Tablo d'une drôle de manière pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("G1:G" & Split(UsedRange.Address, "$")(4))
    de G1 à G + ce qu'il y a derrière le 4ème $ de l'adresse de la Usedrange ???
    Besoin de te faire des noeuds aux boyaux de la tête ? je m'explique :
    - tu utilises UsedRange => même si c'est le tablaeu de ton exemple, tu mets la ligne 61 dans tableau : comme elle ne correspond à rien dans ton tableau, pourquoi la mettre ?
    Je préfèrerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with Worksheets("Stock")
    Tablo = .Range("G1:G" & .range("G" & .rows.count).end(xlup).row).value
    end with
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2014, 10h23
  2. Réponses: 1
    Dernier message: 04/11/2010, 14h10
  3. Select case pour afficher un Etat selon un critère
    Par Sofie109 dans le forum Access
    Réponses: 4
    Dernier message: 06/09/2006, 17h31
  4. [HASHING] Trie selon plusieurs critères
    Par hush dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 24/07/2006, 07h54
  5. Afficher un enregistrement selon un critère saisie.
    Par pegase23 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo