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 :

quelqu'un pour aider sur une Macro Excel ? afficher un pop up


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut quelqu'un pour aider sur une Macro Excel ? afficher un pop up
    Bonjour,

    Je n'arrive absolument pas à faire une macro sur Excel c'est bcp trop compliqué pour moi je souhaite donc solliciter votre aide.

    J'ai un grand tableau, et on m'a demandé d'afficher un pop up quand le résultat d'une cellule est de 1,

    ou d'afficher un pop up quand une cellule est répété. C'est très compliqué pour moi je n'y arrive pas du tout.

    une âme charitable pour m'aider ?

    merci d'avance,

    cdt

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Enseignant chercheur à la retraite
    Inscrit en
    Mai 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant chercheur à la retraite

    Informations forums :
    Inscription : Mai 2020
    Messages : 7
    Par défaut
    Bonjour,

    Je ne sais pas ce que vous entendez exactement par "popup" ni par "cellule répétée".
    Voici une amorce de solution. Elle consiste à ouvrir un MsgBox dès qu'une cellule quelconque prend la valeur 1. C'est bien entendu customizable pour ne la faire agir que sur une feuille donnée, sinon ça doit vite devenir pénible.

    Dans Visual Basic, double-cliquez sur "Thisworkbook" et insérez le texte suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        If Target.Count = 1 Then
            If Target.Value = 1 Then
                MsgBox "La valeur de la cellule " & Target.Address & " est 1"
            End If
        End If
    End Sub
    Cdt

  3. #3
    Membre régulier
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut
    ca m'a beaucoup aidé merci beaucoup, dernière petite question j'aimerai que lorsqu'il y a un résultat compris entre 10 et 30 il y a une msgbox, comment je dois-je m'y prendre ?

    cdt

  4. #4
    Membre régulier
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut
    en l'occurrence après vérification ca serai uniquement pour la colonne I,
    Pouvez vous m'aider s'il vous plaît?

    Cordialement

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant chercheur à la retraite
    Inscrit en
    Mai 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant chercheur à la retraite

    Informations forums :
    Inscription : Mai 2020
    Messages : 7
    Par défaut
    Dans la macro indiquée, target représente la cellule dans laquelle on vient d'écrire une nouvelle valeur.
    Le test sur Target.count permet simplement de s'assurer qu'on a changé une unique cellule, et non pas une plage de plusieurs cellules (ce qui est possible avec Ctrl-Return par exemple).

    A partir de là, vous pouvez tout faire :
    • pour vérifier que la nouvelle valeur est comprise entre 10 et 30 :
      if target.value >= 10 And target.value <= 30 Then ...
    • pour vous limiter à la colonne 1 :
      if target.Column = 1 Then ...
    • pour ne cibler que les 50 premières lignes :
      if target.Row <= 50 Then ...
    • pour détecter une valeur identique à celle qui est juste au dessus :
      If Target.Row > 1 And Target.Value = Target.Offset(-1, 0).Value Then ...
      etc..

    Vous pouvez aussi restreindre le comportement de la macro à une seule feuille en utilisant l'autre argument de la macro (Sh) qui représente la feuille de calcul dans laquelle le changement vient d'avoir lieu (Sh pour Sheet, en anglais) :
    if Sh.Name = "Feuil1" Then ...

    Voici une nouvelle version de la macro qui vous montre ce que cela peut donner. En prime, elle met en jaune la cellule qui vient de changer de valeur.
    N’hésitez pas à expérimenter d'autres choses (avec par exemple des "Or" ou des "Not" dans les conditions), vous ne risquez rien !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        If Target.Count = 1 And Sh.Name = "Feuil1" Then
            If Target.Value >= 10 And Target.Value <= 30 And Target.Column = 1 Then
                MsgBox "Valeur critique dans la cellule " & Target.Address
                Target.Interior.Color = vbYellow
            End If
            If Target.Row > 1 And Target.Value = Target.Offset(-1, 0).Value Then
                MsgBox "Valeur répétée.."
            End If
        End If
    End Sub
    Attention : cette macro n'aura d'effet que si votre feuille de calcul s'appelle réellement "Feuil1" !

  6. #6
    Membre régulier
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Janvier 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 6
    Par défaut merci !
    merci bcp ca m'a grandement aidé !

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

Discussions similaires

  1. [XL-2016] aide sur une macro masquer/afficher
    Par Ragnart dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/12/2016, 23h09
  2. Réponses: 0
    Dernier message: 31/07/2016, 15h34
  3. Erreur 0 sur une macro excel depuis le passage à EXCEL 2010
    Par Lutin1801 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2013, 11h41
  4. Macro pour se déplacer sur une feuille excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2010, 20h41
  5. Aide sur les macros Excel pour recopie auto de données
    Par nicoduhavre dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 08h38

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