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 :

Aides Vba Msgbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 5
    Par défaut Aides Vba Msgbox
    Salut les gars

    J'ai un petit soucis sur ma fiche excel, je voudrais créer une Msgbox automatique me disant de "racheter des produits", qui se met en place automatiquement lorsque dans la colonne "A" le mot STOCK est écrit dans moins de 50 cellules.

    Et j'ai créer aussi un petit calendrier et lorsqu'on appuie dessus on a la date du jour mais je cherchais aussi a obtenir la date et heure du dernière enregistrement du fichier ainsi que du dernier utilisateur l'ayant enregistré.

    Je galére vraiment ...

    Merci de votre aide

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 584
    Par défaut
    BOnjour

    Il suffit d'une cellule qui décompte ce nombre de STOCK (NB.SI) et s'affiche en rouge en deçà de 50 par une mise en forme conditionnelle

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 5
    Par défaut
    Merci pour ton retour 78chris ! C'est cool de m'aider je lutte vraiment

    Et c'est possible de mettre en place cela sur une "zone de texte" a la place de le faire dans une cellule ?

    Et pour mon code sur la date de derniére modification et derniére utilisateur ? voila mon code mais il me donne uniquement la date et l'heure du jour actuelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MAJ()
    MsgBox "Le fichier a été mise a jour le : " & Date, vbOKOnly + vbInformation, "Date derniére mise à jour"
    '
    ' testzezr Macro
     
    '
    End Sub
    Merci de votre aide si d'autres veulent bien m'aider

  4. #4
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub MAJ()
    With ThisWorkbook
     
        MsgBox .BuiltinDocumentProperties(7).Value  'Last author
        MsgBox .BuiltinDocumentProperties(12).Value 'Last save time
     
    End With
    End Sub
    d'après https://silkyroad.developpez.com/VBA...etesClasseurs/

    et pour ta première question : a placer directement dans la feuille (en vba) et non dans un "module"
    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
    Private Sub Worksheet_Activate()
    TestNbenStock (50)
    End Sub
    'ou
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    TestNbenStock (50)
    End Sub
     
    'avec 
    Sub TestNbenStock(limite As Integer)
    Dim myRange As Range
    Dim nbenStock As Integer
    Set myRange = ActiveSheet.Columns("A:A")
    nbenStock = Application.WorksheetFunction.CountIf(myRange, "Stock")
    If nbenStock < limite Then MsgBox "Attention Stock"
    set myRange=nothing
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 5
    Par défaut
    Merci Sogedic pour ton aide !! tu m'aides beaucoup alors le code pour la msgbox sur la date et derniére utilisateur fonctionne parfaitement mais sa serait possible d'avoir ces informations dans la même msgBOX ?
    Je n'arrive pas a cumuler ces 2 codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MAJ()
    MsgBox "Le fichier a été mise a jour le : " & Date, vbOKOnly + vbInformation, "Date derniére mise à jour"
    '
    ' testzezr Macro
    '
     
    '
    End Sub
    +

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MAJ()
    With ThisWorkbook
     
        MsgBox .BuiltinDocumentProperties(7).Value  'Last author
        MsgBox .BuiltinDocumentProperties(12).Value 'Last save time
     
    End With
    End Sub
    .
    Et pour la seconde c'est parfait mais la msgBOX s'affiche sans cesse, alors que je ne voudrais qu'elle ne s'affiche qu'une seule fois ..

    Merci de votre aide

  6. #6
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Pour afficher 2 message dans le même msgbox il suffit d'utiliser le symbole de concaténation & comme dans ton msg d'origine
    msgbox " texte 1" & "texte 2"
    je te laisse essayer ?

    Pour le detecteur de stock < 50 :
    si tu le mets a l'activation de la feuille il ne s'affichera qu'une fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_Activate()
    TestNbenStock (50)
    End Sub
    si tu le mets a la modification d'une cellule (un changement) il va te le rerereredire même si tu as compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    TestNbenStock (50)
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 5
    Par défaut
    Merci beaucoup Sogedic; j'ai essayer cela mais sa convertir l'intégralité en texte, c'est trés compliqué les msgbox > je voulais mettre un titre a la msgbox aussi mais a chaque fois que j'essaye un code sa plante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MAJ()
    With ThisWorkbook
     
    MsgBox ".BuiltinDocumentProperties(7).Value 'Last author" & " BuiltinDocumentProperties(12).Value 'Last save time"
     
     
    End With
    End Sub
    Et pour le stock j'ai supprimé ces lignes de code de Worksheet mais plus rien ne s'affiche>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    TestNbenStock (50)
    End Sub

  8. #8
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    oui, au début c'est complique
    si tu laisse les : c'est du text => Excel ne cherche pas a évaluer le contenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub MAJ()
    With ThisWorkbook
         MsgBox .BuiltinDocumentProperties(7).Value  &  BuiltinDocumentProperties(12).Value   
    End With
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub MAJ()
    dim lastAuthor as string
    dim LastDateModif as string
     
    With ThisWorkbook
         lastAuthor=.BuiltinDocumentProperties(7).Value
         LastDateModif=.BuiltinDocumentProperties(12).Value
    End With
     
    MsgBox "Dernier enregistrement fait par " & lastAuthor & " le "  LastDateModif ' les données en dehors de "" sont remplacés par leur valeur 
     
    End Sub
    Pour le stock Worksheet_Activate : est exécuté à chaque fois que l'on arrive/sélectionne la feuille
    Une autre solution possible serait d'ajouter un bouton qui appel directement TestNbenStock

    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
     
     
    Private Sub Worksheet_Activate()
    TestNbenStock (50)
    End Sub
     
     
    Sub TestNbenStock(optional limite As Integer = 50)
    Dim myRange As Range
    Dim nbenStock As Integer
    Set myRange = ActiveSheet.Columns("A:A")
    nbenStock = Application.WorksheetFunction.CountIf(myRange, "Stock")
    If nbenStock < limite Then MsgBox "Attention Stock"
    set myRange=nothing
    End Sub

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 5
    Par défaut
    Merci Sogedic pour ton aide préciseuse.

    Alors ton code pour la msgbox ne fonctionne pas, j'ai réussi a trouver celui la qui s'applique parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MAJ()
      Dim Titre$, S1$, S2$, S3$
      Titre = "Détails gestion tableaux"
      With ThisWorkbook
        S1 = .BuiltinDocumentProperties(7) 'Last author
        S2 = .BuiltinDocumentProperties(12)  'Last save time
        S3 = "dernière modification par : sadsad"
      End With
      MsgBox S1 & vbLf & S2 & vbLf & VbLf & S3, 64, Titre
    End Sub

    Dans ton code voila la ligne qui posait probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Dernier enregistrement fait par " & lastAuthor & " le "  LastDateModif ' les données en dehors de "" sont remplacés par leur valeur
    Et pour Worksheet voila le code final que j'ai réussi a trouver, j'ai simplement le SelectionChange en Change ( ce n'est pas la solution parfaite mais sa ira pour l'instant, j'aurais préferer faire apparaitre la msgBox une seule fois mais pas par l'intermédiaire d'un bouton )

    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
    Private Sub Worksheet_Activate()
    TestNbenStock (50)
    End Sub
    'ou
    Private Sub Worksheet_Change(ByVal Target As Range)
    TestNbenStock (50)
    End Sub
     
    'avec
    Sub TestNbenStock(limite As Integer)
    Dim myRange As Range
    Dim nbenStock As Integer
    Set myRange = ActiveSheet.Columns("A:A")
    nbenStock = Application.WorksheetFunction.CountIf(myRange, "Stock Tampon")
    If nbenStock < limite Then MsgBox "Attention - 50 stock ", vbOKOnly + vbInformation, "Alerte STOCK "
    Set myRange = Nothing
    If Flag Then Exit Sub
    End Sub
    En tout cas MERCI 1000 FOIS sogedic, tu m'as énormement aide et appris

  10. #10
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'ai simplement le SelectionChange en Change
    tu as raison c'est mieux

    Dans mon code du msgbox il manquait un &
    mais tu as su corriger c'est parfait

    Si tu veux clôturer ?

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

Discussions similaires

  1. Problème affichage Aide VBA
    Par airbeone dans le forum Access
    Réponses: 6
    Dernier message: 19/06/2006, 17h32
  2. [Wanted] Recherche fichier VBAXL8.HLP (Aide VBA Excel 97)
    Par USV dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 23h04
  3. [VBA] MsgBox non definie
    Par coco21 dans le forum Access
    Réponses: 3
    Dernier message: 15/12/2005, 11h05
  4. [VBA] msgBox
    Par tiptop dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 16h48
  5. [VBA] MsgBox
    Par Virgile59 dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2005, 15h12

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