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 :

Suivi d'effectif - suppressions de lignes sélectionnées par macro VBA [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Suivi d'effectif - suppressions de lignes sélectionnées par macro VBA
    Bonjour à tous,

    Je suis bloqué sur l'exécution d'une macro via messagebox.
    La feuille est simple : colonne A le nom des personnes (colonne protégée) et dans les suivantes les jours de présence
    L'idée c'est d'arriver à insérer et supprimer la ou les lignes lorsque les personnes entrent et partent des effectifs.

    J'avais pensé d'abord à intégrer dans chaque cellule "nom" (colonne A) un bouton activeX mais je ne sais pas comment ça fonctionne.

    Puis (plus compliqué ?) en activant une macro avec mot de passe, déverouiller la feuille prtégée avec un mot de passe, puis selon sur quelle ligne est placée la sélection, demander avec un messagebox si l'on veut réellement supprimer le nom indiqué en colonne A sur la même ligne, si oui supprimer la ligne entière, puis re protéger la feuille avec le même mot de passe.

    Je joins la maquette pour exemple (mot de passe protection = vero, mot de passe pour insertion (+) = plus, mot de passe pour suppression (-) = moins)

    Merci pour votre aidemaquette.zip

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Tu pourrais ajouter un menu au click droit.
    C'est moins lourd que de copier des boutons un peu partout...

    Et dans cette macro, tu envoies le message, déprotèges, supprimes et remets la protection
    MPi²

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Essaie comme ceci si tu veux ajouter des menus

    Dans le code de la feuille
    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
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        EffacerMenus
     
        If Target.Row > 4 Then
            With Application.CommandBars("cell").Controls _
                .Add(Type:=msoControlButton, before:=1, temporary:=True)
                    .Caption = "*** Insérer une ligne"
                    .OnAction = "Insérer"
                    .Tag = "Insérer"
            End With
     
            With Application.CommandBars("cell").Controls _
                .Add(Type:=msoControlButton, before:=1, temporary:=True)
                    .Caption = "*** Supprimer la ligne"
                    .OnAction = "Supprimer"
                    .Tag = "Supprimer"
            End With
        End If
     
    End Sub
     
    Private Sub Worksheet_Deactivate()
        EffacerMenus
    End Sub
    Dans ThisWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        EffacerMenus
    End Sub
     
    Private Sub Workbook_Deactivate()
        EffacerMenus
    End Sub
    Et 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Insérer()
        Dim Rep As Integer
     
        Rep = MsgBox("Voulez-vous insérer une ligne ?", vbYesNo + vbInformation, "Insertion de ligne")
        If Rep = vbYes Then
            ActiveSheet.Unprotect "vero"
            ActiveCell.Offset(1, 0).Insert
            ActiveSheet.Protect "vero"
        End If
     
    End Sub
     
    Sub Supprimer()
        Dim Rep As Integer
     
        Rep = MsgBox("Voulez-vous supprimer la ligne " & ActiveCell.Row & " ?", vbYesNo + vbInformation, "Suppression de ligne")
        If Rep = vbYes Then
            ActiveSheet.Unprotect "vero"
            ActiveCell.EntireRow.Delete
            ActiveSheet.Protect "vero"
        End If
    End Sub
     
    Sub EffacerMenus()
        Dim Menu As Variant
     
        For Each Menu In Application.CommandBars("cell").Controls
            If Menu.Tag = "Insérer" Or _
               Menu.Tag = "Supprimer" Then Menu.Delete
        Next Menu
    End Sub
    Il te reste à cliquer droit sur une cellule
    MPi²

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

Discussions similaires

  1. Suppression d'une image par Macro
    Par Gibé2201 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2019, 09h35
  2. Ligne sélectionnée par GROUP BY
    Par Ali Kent dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/11/2014, 18h13
  3. Suppression de ligne commençant par
    Par skaven the shaman dans le forum Word
    Réponses: 9
    Dernier message: 18/09/2011, 01h44
  4. avoir une ligne sélectionné par défaut dans un jtable
    Par minanoun dans le forum Composants
    Réponses: 4
    Dernier message: 12/04/2009, 19h15
  5. [HTML] Ajouter même ligne html par macro (plusieur fichiers HTML)
    Par naouah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 25/02/2009, 21h49

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