Question technique sous VBA

  • Initiateur de la discussion Initiateur de la discussion WILFRIED
  • Date de début Date de début

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 !

WILFRIED

XLDnaute Impliqué
Salut à tous et toutes,

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....

Espérant avoir été suffisament claire.

Merci
 
Re : Question technique sous VBA

Bonsoir WILFRIED,

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!

Bonne soirée
 
Re : Question technique sous VBA

Bonsoir wilfried, Excel-lent,

Vois si ce module de classe te conviens.
Dans cet exemple seule la feuille 2 est contrôlée.

J'espère qu'il ne fait pas trop froid chez toi!
Passe un bon week-end

P.S. j'ai une chose identique pour suppression et insertion de feuille
A+
 
Dernière modification par un modérateur:
Re : Question technique sous VBA

Salut Hasco, Mj13,


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 :

https://www.excel-downloads.com/threads/transfert-de-donnee-dans-un-classeur.110753/

en présisant bien sur dans le dit code qu'il est de toi (il faut rendre à cesar ce qui appartiens à cesar et à HASCO ce qui lui appartiens... LOL😉)

A+ et encore merci..
 
Dernière édition:
Re : Question technique sous VBA

RE

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é...

A+ et bon Week End.
 

Pièces jointes

Re : Question technique sous VBA

Salut HASCO,

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..

A+
 

Pièces jointes

Re : Question technique sous VBA

Salut,


Alors cette année j'ai le cerveau qui mets du temps à démarrer...😛

Mais ça y est, il est enfin démarrer (espéront qu'il ne calera pas...😉)

J'ai contourner le probléme en recopiant la partit calculate dans une nouvelle partit change, et cela marche du tonnerre.. Encore Merci.

Du coups le poids de mon fichier à diminuer de moitié ( disparition de 3 module de programme VBA et de 4 USF...)

A+ et encore merci
 
Re : Question technique sous VBA

Hello wilfried,

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

Bonne semaine
A+
 
Dernière modification par un modérateur:
Re : Question technique sous VBA

Salut Hasco,


Pour les obligations familliales, je connais, actuellement je suis obligé de garder ma fille car je n'ai pas encore trouver de nounou convenable.

Dans ton exemple, usedrange remplace le ctrl+* c'est bien çà?

J'ai utilisé ton code de module de classe en précisant qu'il était de toi. Si tu veux jeter un coup d'œil voici le lien : https://www.excel-downloads.com/threads/transfert-de-donnee-dans-un-classeur.110753/

Merci encore, c'est un code que je vais garder sous le coude au cas où.

A+
 
Re : Question technique sous VBA

Wilfried,

CTRL+* sélectionne le tableau en cours
UsedRange renvoie la plage Carrée ou rectangulaire de toutes les cellules utilisées dans la feuille.

Exemple si tu as un tableau A1:E17 + une cellule non vide en G65536

CTRL+* renvoie A1:E17
UsedRange renvoie A1:E65536

J'irai jeté un coup d'oeil à ton oeuvre.

A++
 
Re : Question technique sous VBA

Coucou les amis 🙂,

Hello wilfried,

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
Bonne semaine
A+

J'ai pas tout suivi mais je pense qu'il n'était pas nécessaire de faire un module de classe pour le cas de plusieurs feuilles.
En effet, en créant
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
et
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Tout ceci dans ThisWorkBook.
Cela marche pour toutes les feuilles.
Ou alors j'ai zappé quelque chose?
 
- 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

Discussions similaires

L
Réponses
10
Affichages
1 K
L
F
  • Question Question
Réponses
1
Affichages
1 K
Réponses
13
Affichages
2 K
P
  • Question Question
Réponses
1
Affichages
3 K
Patrosso
P
G
Réponses
1
Affichages
1 K
R
  • Question Question
Réponses
6
Affichages
2 K
F
Réponses
0
Affichages
2 K
Fredooooo
F
J
Réponses
7
Affichages
2 K
Julien1003
J
Retour