Faire apparaitre un msg box aprés suppression d'une ligne quelconque

Gaetan1309 Messages postés 2 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 4 juin 2012 - 31 mai 2012 à 20:25
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 5 juin 2012 à 11:15
Bonjour à tous,

C'est en temps que trés faible novice que je m'adresse à vous aujourd'hui. Dans le cadre d'un stage, je dois réaliser une fichier sous Excel 2007 qui a pour but de créer un systeme de gestion de chutes.

Contexte de l'étude:
Lorsque l'opérateur supprime une des ligne du classeur, j'aimerais qu'un msgbox s'affiche afin que celui-ci n'oublie pas d'effectuer une autre tâche.

Je vous remercie pour l'attention portée à ce sujet et vous remercie par avance de me sortir de cette panade :)

Bonne lecture à tous !

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2012 à 21:13
Bonjour,
1) On aurait dû t'apprendre que VB.Net, puisque tu as ouvert cette discussion dans la section :
Forum > VB.NET et VB 2005

n'a rien à voir avec VBA ! (tu aurais dû ouvrir dans Langages dérivés > VBA) . Prends-en s'il te plait bonne note pour tes prochaines discussions. C'est important.
2) ce que tu cherches à faire est quasi impossible, sauf acrobaties et comparaisons diverses, avec VBA/Excel. Si tu tiens à faire de telles acrobaties, ce sera avec l'évènement Change de ta feuille qu'il faudra "jouer", mais ce sera TOUJOURS scabreux et boiteux et impliquera toujours des comparaisons également scabreuses et boiteuses avec ce que tu avais avant.
Je crains dans ces conditions qu'il ne te faille chercher une autre méthode que cette constatation pour forcer l'utilisateur à d'autres opérations (à moins que tu n'aimes vraiment les acrobaties diverses).



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2012 à 21:14
Si tu tiens à te lancer (mais alors seul) dans des acrobaties, une piste : à chaque évènement Change ===>> vérifier le UsedRange et décider. Cette piste ne saurait en aucun cas être un encouragement de ma part à aller dans in tel sens.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2012 à 21:30
Autre acrobatie possible : protéger ta feuille. Y permettre tout sauf les suppressions de lignes. Utiliser un évènement (celui de ton choix) pour déprotéger (avec mot de passe). Obliger à choisir la ligne à supprimer (inputbox) ===>> ne supprimer qu'alors, puis reprotéger. Mais, dès lors, tu sais qu'il y a eu suppression et à toi de décider des instructions qui vont avec.
Possible, mais également scabreux et acrobatique ! Et ce sera à toi, de jouer ainsi, si tu y tiens !
Ce que je ferais personnellement ? ===>> aucune acrobatie ===>> dans l'évènement SelectionChange : je regarderais l'objet Target ===>> si sa propriété Columns.count > 1, je lancerais systématiquement mes instructions, juste après, qu'il y ait eu ou non suppression. Cher (en temps et en ressources), certes, mais un peu moins scabreux.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 juin 2012 à 09:36
Bonjour,
J'ai peut-être une solution. Mais cela ne fonctionnera que jusqu'à la dernière ligne saisie:

Mettre dans ThisWorkBook:

'Dans ThisWorkbook
Option Explicit
Private Sub Workbook_Open()
  LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
End Sub
 

Dans un module:

Public LastRow, LastRow_2 As Integer
 


et dans la feuille active

'Dans la feuille active
Option Explicit
Private Sub Worksheet_Calculate()
LastRow_2 = Cells(Cells.Rows.Count, "A").End(xlUp).Row
If LastRow_2 < LastRow Then
        MsgBox "La ligne est supprimée!"
 ElseIf LastRow_2 > LastRow Then
        MsgBox "La ligne est ajoutée!"
    End If
    LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet_Calculate
End Sub


@+Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
1 juin 2012 à 09:52
Bonjour, Le_Pivert,
Cela revient au même que de vérifier le UsedRange


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 juin 2012 à 11:23
Bonjour UCFOUTU,
Alors je ne comprends pas que tu sois réticent à l'empoyer. L'évenement Worksheet_Change ne fonctionne qu'en cas d'ajout ou de suppression de ligne. Mais je n'ai pas ton expérience, tu dois avoir de bonnes raisons!


@+Le Pivert
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
1 juin 2012 à 11:29
Il est déclenché par toute modification, y compris d'une seule cellule
Et donc de nature à "bouffer" du temps et des ressources.
Assortis-le donc au moins à un target.columns.count.
Mais je n'aime de toutes manières pas et préfèrerais (tout en ne la bénissant pas non plus) la méthode de protection que j'ai signalée plus haut.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Gaetan1309 Messages postés 2 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 4 juin 2012
4 juin 2012 à 22:38
j'ai essayé les codes dans mon fichier, ca ne marche que la premiere fois, aprés plus rien si je souhaite le faire une seconde fois

Mais dans ces codes il y a de cela, car pour la premiere fois ca m'affiche bien un msg box

Merci à tous de votre aide ! Et grand merci à Le Pivert !
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
5 juin 2012 à 11:15
Cela fonctionne très bien en cas d'ajout et de suppression de lignes manuellement, jusqu'à la dernière ligne se saisie. Je pense qu'il faudrait que tu te penches vers la façon dont tu supprimes la ligne par code. L'erreur doit venir de là!

@+Le Pivert
0
Rejoignez-nous