Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
je sais que mon titre n'est pas très parlant mais voilà je bosse sur une petit appli pour "vieri", et afin de me simplifier un peu le code vba je souhaiterai savoir s'il existe un moyen sous vba de connaitre s'il y a eu une suppression ou une insertion de ligne dans une feuille excel et à quelle niveau et ce sans avoir besoin de faire une comparaison systematique de chaque cellule de la plage de donnéee....
Pourquoi se casser la tête avec du VBA? Pourquoi une comparaison systématique de chaque cellule de la plage de donnée?
Une méthode répondant parfaitement à ta demande et où il n'y a RIEN à faire 🙂
"Outils" / "Suivi des modifications" / "afficher les modifications..."
N'ayant jms eu besoin de cela, j'en connaissais l'existence, mais c'est tout. Avant de te répondre, j'ai testé pour voir si cela répondait parfaitement à ta demande, il me semble. Et en plus c'est super bien fait et simple d'utilisation!!!!
Tout se fait automatiquement, et côté information, c'est vraiment très très détaillé! 😱 Encore mieux que l'oeil de moscou!
Moi aussi je te tire mon chapeau pour ces deux maniffique exemple de module de classe.
J'ignore completement comment tu as fait ça ma le premier (celui avec l'insertion/suppression de ligne) me convient manifiquement.
Il ne me reste plus qu'as le triturer dans tous les sans pour trouver comment obtenir le Numéro de la ligne qui à été insérer..
Je vais aussi chercher dans les tutos des cours sur les module de classe....
Hasco, pour répondre à ta question Oui il faite trés froid, j'habitai Thonon y as encore 2 mois donc je connait les hivers avec de la neige mais à ferney ces de la GLACE!!!!😱 j'ai environ 1 cm de glace sur le parking devant chez moi depuis Noel... les gens du quoi dise qu'il n'ont pas connue d'hivers comme ça depuis 8 ou 10 ans....
Ps: Hasco est tu d'accrod pour que j'utilise ton code pour la demande de vieri :
Bon après avoir tourner ton exemple dans tous les sens, je enfin trouver comme l'utilisé pour les besoins de Vieri. je n'est fait que l'insertion mais puisque cela marche dans ce sens la cela devrait marcher dans l'autre.
Je vais m'en occuper lundi car je doit m'occupe de ma tribu 😉 qui ne devrait pas tarder à se reveillé...
Je doit être un peu débile car j'arrive à faire fonctionner ton module de classe dans ton fichier, mais voila j'ai exporter ton Module de classe, j'ai recopier tes info dans la feuille à controlé, mais cela ne fonctionne pas. Où est mon erreur???😕
Je continue à chercher. Mais si tu vois mon erreur avant tien moi informer SVP..
Excuses-moi de n'avoir pas répondu, mais, week-end et obligations familiales obligent!
Heureux pour toi que tu aies trouvé la solution. C'est vrai que j'aurais pu te signaler que tu pouvais mettre le compte des lignes dans un autre évènement.
D'ailleurs tu n'est pas obligé d'utiliser un module de classe pour cela, mais c'est plus pratique si tu as plusieurs feuilles à contrôler.
Si tu n'as qu'une feuille à examiner tu peux faire comme ci-dessous:
dans le module de la feuille:
Code:
Option Explicit
Private NombreDeLignes
[COLOR=yellowgreen]'Important: initialisation du nombre de ligne[/COLOR]
[COLOR=#9acd32]'S'il n'y a aucune donnée dans la feuille UsedRange.rows.count=1 (usedRange=A1)[/COLOR]
Private Sub Worksheet_Activate()
NombreDeLignes = ActiveSheet.UsedRange.Rows.Count
End Sub
[COLOR=yellowgreen]'Change ou autre évènement[/COLOR]
Private Sub Worksheet_Change(ByVal Target As Range)
If UsedRange.Rows.Count < NombreDeLignes Then
MsgBox " Suppression Ligne"
ElseIf UsedRange.Rows.Count > NombreDeLignes Then
MsgBox "Insertion Ligne"
End If
NombreDeLignes = UsedRange.Rows.Count
End Sub
Excuses-moi de n'avoir pas répondu, mais, week-end et obligations familiales obligent!
Heureux pour toi que tu aies trouvé la solution. C'est vrai que j'aurais pu te signaler que tu pouvais mettre le compte des lignes dans un autre évènement.
D'ailleurs tu n'est pas obligé d'utiliser un module de classe pour cela, mais c'est plus pratique si tu as plusieurs feuilles à contrôler.
Si tu n'as qu'une feuille à examiner tu peux faire comme ci-dessous:
dans le module de la feuille:
Code:
Option Explicit
Private NombreDeLignes
[COLOR=yellowgreen]'Important: initialisation du nombre de ligne[/COLOR]
[COLOR=#9acd32]'S'il n'y a aucune donnée dans la feuille UsedRange.rows.count=1 (usedRange=A1)[/COLOR]
Private Sub Worksheet_Activate()
NombreDeLignes = ActiveSheet.UsedRange.Rows.Count
End Sub
[COLOR=yellowgreen]'Change ou autre évènement[/COLOR]
Private Sub Worksheet_Change(ByVal Target As Range)
If UsedRange.Rows.Count < NombreDeLignes Then
MsgBox " Suppression Ligne"
ElseIf UsedRange.Rows.Count > NombreDeLignes Then
MsgBox "Insertion Ligne"
End If
NombreDeLignes = UsedRange.Rows.Count
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD