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 :

[VBA-E] MsgBox effacer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut Help - MsgBox
    j'aurais souhaité que vous m'aidiez sur le point VBA suivant :

    Soit la colonne AA sous excel
    Les lignes allant de 500 à 600 sous excel
    J'aimerai que si une cellule (500:600, AA) soit effacée, automatiquement avant de prendre en compte le clearcontents, une message box apparaisse pour me dire "êtes vous sur de supprimer ce contenu"


    Je ne sais plus comment on fait... si vous pouviez m'aider, car cela fait 2 heures que je cherche et que je ne suis pas une professionnelle de VBA, mais une simple utilisatrice.


    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If msgbox("Effacer ?",vbyesno) = vbyes then 'tu effaces

  3. #3
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Bonjour,
    Tu peux utiliser l'évènement de feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheeet_Change(ByVal Target As Range)
    en précisant la zone à surveiller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Target.Column = 27 and Target.Row >= 500 And Target.Row < 600 Then
        Response = MsgBox("Etes-vous sûr ?", VbYesNo)
    et ensuite selon la réponse à ta msgbox, tu supprimes ou pas
    Enfin je pense qu'avec qqch comme ça ça doit marcher

    Cwain

    Ouskel> Mince, flûte, trop tard !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut [VBA-E] MsgBox effacer
    Merci aux 2 génies qui m'ont répondu ... cela était déjà super utile mais cela n'est pas fini... car ma demande était visiblement n'est pas très claire...(désolée)

    j'aurais souhaité que vous m'aidiez sur le point VBA suivant :

    Soit la colonne AA sous excel (27) et les lignes allant de 500 à 600 sous excel.
    J'aimerai que si une cellule (500:600, AA) soit effacée, qu' avant de prendre en compte l'effacé (DONC UNIQUEMENT si il y a TENTATIVE de clearContents d'une de ces cellules), une message box apparaisse pour me dire "êtes vous sur de supprimer ce contenu".

    Voici ce que j'ai fait sur la base de ce que vous m'avez expliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 27 And Target.Row >= 500 And Target.Row < 638 Then
    Style = vbYesNo + vbDefaultButton1
    Msg = "Etes-vous sûr de suprimer cette filiale"
    Title = "Attention, vous être sur le point de suprimer une filiale"
    Réponse = MsgBox(Msg, Style, Title)
    If Réponse = vbNo Then
    Exit Sub
    Else
    Selection.ClearContents
    End If
    End If
    End Sub
    Merci

  5. #5
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Heu, on veut bien t'aider, mais tu nous aides pas trop à t'aider en remettant ta question de la même manière . Tu ne voudrais pas la reformuler, ou mieux encore, nous mettre le code que tu as actuellement avec des commentaires sur ce que tu ne comprends pas ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut Voici plus de détails - Msg VBA
    Désolée, je suis une nouvelle membre et je ne suis pas une professionnelle mais une amatrice! Voici des commentaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 27 And Target.Row >= 500 And Target.Row < 638 Then
    En fait, ce que je veux c'est une condition complémentaire qui est Si et seulement Si une des cellules Cells (500:600, 27) fait l'objet d'un ClearContents.

    La suite de mon code est (qui je pense fonctionne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Style = vbYesNo + vbDefaultButton1
    Msg = "Etes-vous sûr de suprimer cette filiale"
    Title = "Attention, vous être sur le point de suprimer une filiale"
    Réponse = MsgBox(Msg, Style, Title)
    If Réponse = vbNo Then
    Exit Sub
    Else
    Selection.ClearContents
    End If
    End If
    End Sub
    Merci bcps

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je pense qu'il vaut mieux utiliser les 2 événements Worksheet_Change et Worksheet_SelectionChange sinon, le seul fait de cliquer sur une cellule du Range, génère la demande d'effacement.
    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
    Option Explicit
     
    Dim strCellContent As String
    Dim booChangeByMacro As Boolean
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      strCellContent = Target.Value
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
      If booChangeByMacro Then
        booChangeByMacro = False
        Exit Sub
      Else
        If Target.Column = 27 And Target.Row >= 500 And Target.Row < 638 Then
          Style = vbYesNo + vbDefaultButton1
          Msg = "Etes-vous sûr de suprimer cette filiale"
          Title = "Attention, vous être sur le point de suprimer une filiale"
          Réponse = MsgBox(Msg, Style, Title)
          If Réponse = vbNo Then
            Target.Value = strCellContent
            booChangeByMacro = True
          End If
        End If
      End If
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut
    UN TOUT GRAND MERCI !!! Cela fonctionne à un poil pres qui est :

    Lorsque je clique sur No, je ne sors pas du MsgBox...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Réponse = vbNo Then
          Target.Value = strCellContent
        Else
          Selection.ClearContents
        End If
    J'ai essayé comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       If Réponse = vbNo Then
          Exit Sub
        Else
          Exit Sub
        End If
      End If
    Cela fonctionne. L'idéal aurait été de pouvoir annuler l'opération "effacé" si VB = No.

    Savez-vous comment on peut faire ?

    Merci bcps!!

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu veux une confirmation de l'effacement de la part de l'utilisateur ?
    Si c'est ça alors tu répètes le code quon t'a passé pour le msgbox
    Si c'est autre chose, tu dis
    A+

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

Discussions similaires

  1. Débutante - Code VBA pour MsgBox avec actions multiples
    Par kisscool35 dans le forum Access
    Réponses: 5
    Dernier message: 22/08/2006, 17h43
  2. [VBA-A] msgBox sans boutton OK
    Par noob_vba dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/06/2006, 19h56
  3. [VBA-E] fonction effacer
    Par naynai dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2006, 17h12
  4. [VBA-E]Msgbox pas assez grand
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 19/04/2006, 14h18
  5. [VBA-E] [Excel] Effacer une feuille
    Par Tray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2003, 10h04

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