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 :

Lancement d'une macro avant la suppression d'une ligne [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Lancement d'une macro avant la suppression d'une ligne
    Bonjour,
    J'aimerais savoir si on peut avoir une macro qui se lance quand on veut supprimer une ligne?
    J'ai deux feuilles excel sous lesquelles je fais des traitements. Quand je veux supprimer une ligne de la feuille 2 la macro doit chercher dans la 1ere feuille une ligne ayant les memes données de la ligne qu'on veut supprimer pour m'ecrire la date du jour dans la derniere colonne de la ligne de la feuille 1.
    Quelqu'un à une idée?
    Merci d'avance
    Safounette

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    A ma connaissance, il n'y a pas d'évènements pour capter une suppression de ligne.
    Dans ton cas, je ferais une UserForm de suppression qui lancera la macro puis supprimera la ligne (Userform Obligatoire pour supprimer une ligne - utilisation des protections d'onglet)
    Jérôme

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Pour détecter la suppression d'une ligne entière on peut faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Columns.Count = Columns.Count Then
        MsgBox "ligne entière supprimée"
    End If
    End Sub
    Mais que se passera t'il si l'utilisateur sélectionne 10 colonnes et qu'il clique sur Delete ?
    Concernant la comparaison des lignes, sur quelles colonnes faut-il les comparer ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci Jérôme et Fring pour vos réponses.

    Jérôme, effectivement je suis entrain de travailler sur des userforms mais le soucis c'est que j'ai peur que certains utilisateurs suppriment les lignes directement de la feuille. Et comme je ne peux pas protéger les feuilles car eux aussi ils les utilisent j'ai pensé à faire la macro avant la suppression de n'importe quelle ligne. J'ai fais la macro de comparaison mais je n'ai pas reussi à avoir le resultat que je souhaite vu que je n'ai pas des id uniques.

    Fring, Merci pour ta macro. La je fais la comparaison de la colonne A jusqu'à la colonne I et je veux quand je supprime la ligne j'ai dans la colonne J de l'autre feuille ayant la ligne qui a les memes données, la date du jour. Normalement ici ils suppriment toutes les lignes et ils ne savent pas juste cliquer sur les 10 colonnes et mettre un delete :p

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Re Bonjour,

    J'ai réussi à faire une macro qui me donne ce que je veux en protegeant ma feuille contre toute suppression ou ajout. Et comme ca l'utilisateur est obligé de passer par le bouton qui lance la macro et qui supprime la ligne en otant la protection au début de la macro et en la reprotegeant à la fin.
    C'est une bonne idée non?

    Saf

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

Discussions similaires

  1. [XL-2010] Reprise d'une macro 1 après exécution d'une macro 2 appelée par la macro 1
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2014, 12h32
  2. Réponses: 3
    Dernier message: 23/10/2009, 18h25
  3. suppression d'une macro d'une feuille excel protegée par mot de passe
    Par adilissimo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2007, 20h25
  4. [VBA-Word] Obligation de lancer une macro avant de quitter
    Par perophron dans le forum VBA Word
    Réponses: 5
    Dernier message: 22/05/2007, 15h07
  5. [VBA-E] Lancement de la macro avant l'ouverture des feuilles
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h07

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