[VBA Excel] Macro quand ajout ou supprime ligne [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
17 décembre 2007
-
 urban -
Je veux exécuter du code VBA quand on ajoute une ligne dans un fichier Excel et quand on supprime une ligne du fichier Excel.

En fait pour la suppression, je ne veux pas que la ligne soit supprimée mais je veux que l'intérieur des cellules apparaissent en rouge.

Quelqu'un peut m'aider.

Merci

10 réponses

Messages postés
10
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
17 décembre 2007
4
En fait il y aura plusieurs utilisateurs qui vont utiliser ce fichier. Mais j'ai peur qu'un utilisateur supprime une ligne par inadvertance . C'est pour ça que je veux mettre en rouge les lignes à supprimer. Ensuite j'ai une macro qui enregistre toute les lignes dans une table oracles, qui supprime ce qui doit être supprimé et qui modifie ce qui doit l'être. La solution des 2 Macros serait pas mal mais comment empecher de supprimer une ligne ou d'en insérer une en passant par les fonction standard d'excel (click droit puis supprimer )???

Merci de votre aide.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386
Hello,

Les autres "utilisateurs" n'ont pas le droit d'insérer ni de supprimer des lignes : OK.
Question : ont-ils le droit de faire d'autres modifications, ou bien ne peuvent-ils que consulter ? Si oui, il suffirait de leur fournir l'accès en lecture seule.
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
195
;-)

Tu peut essayer de gérer les événements "BeforeRightClick" ou "Change" de la feuille, mais bonjour à développer...

;-)
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386
Hello marieC,

Et si tu prenais le problème à l'envers ? Tu construis 2 macros VBA :
- une pour insérer,
- une pour supprimer.

Tu y mets ce que tu veux, et tu les appelles par bouton... ou une touche... ou dans le menu Excel...

Non ?
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
195
;-)

Moi, dans cette histoire, c'est le "on" qui me gène, cela suppose n'importe quel utilisateur, et dans ce cas, faut verrouiller l'appli..

;-)

Dans ta solution, très bien, mais uniquement pour une utilisation perso...

;-)
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386 >
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008

Tu as raison.
Effectivement, je me plaçais dans un contexte d'utilisation perso.

Si ce n'est pas le cas, et si seuls certains ont le droit à certaines fonctionnalités, c'est assez facile de verrouiller...
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
195
;-)

Le système de lecture seule, c'est vrai, est imparable ;-)

Il y a aussi la possiblité de virer les commandes dans l'interface, mais cela peut s'avérer très lourd question maintenance et dev, y compris en test, car quand tu vires des commandes via le code, il faut prévoir une autre procédure qui les remets, en cas de plantage... Bref...

Une solution envisageable serait (?), dans l'événement open du workbook, de copier la feuille, passer l'originale en visible=false et la copie en visible=true, d'analyser le nombre, via LastCell, de lignes/colonnes de l'original, puis de comparer, dans les événements de fermeture (appli/classeur....), l'original et la copie... Ensuite, rétablir -ou n'importe quoi d'autre- en fonction des différences... ?

;-)
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386
Je crois qu'on peut faire plus simple :
- supprimer Insérer et Supprimer dans les menus de la barre de menu d'Excel
- invalider les touches de raccourci correspondantes
- masquer le menu contextuel du clic droit pour les lignes et les cellules

Non ?
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
195 >
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020

;-)

Oui, c'est ce que je disais au dessus quand je parlais de virer les commandes, et encore au dessus quand je parlais de l'événement BeforeRightClick, mais je ne suis pas vraiment pour modifier l'interface, cela peut engendrer plein de dysfonctionnements si tu ne fais pas hyper gaffe à ce que tu écris...

Par contre, je ne sais pas comment intercepter l'appel aux touches de raccourci (en VBA bien sûr) simplement... Tu fais comment ?

;-)
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386 >
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008

Eh bien il suffit d'appeler, avec les mêmes touches de raccourci, une macro ... qui ne fait rien.
Les raccourcis des macros perso prennent le pas sur les raccourcis de l'application.
C'est pour ça qu'on conseille en général d'utiliser CRTL + MAJ + touche pour éviter les conflits.
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
195 >
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020

;-)

Mais bon dieu, mais c'est sûr !

C'était tellement simple et évident et devant mon nez que j'ai rien vu...

Sub/End sub !! Quel con je fais, mais bien sûr.. ;-) Le boulet !! ;-))))
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386 >
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008

Bois un coup à ma santé, tu verras, ça va passer !
Messages postés
10
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
17 décembre 2007
4
MErci pour toute vos réponses. Je vais garder ce que vous m'avez envoyer. Peut être que ça m'aidera pour un autre problème. Par contre pour mon fichier excel actuel j'ai peur de développer une usine à gaz. Je vais donc rester simple. Il n'y a que 2 utilisateurs qui l'utiliseront, Ce sera à eux de faire attention.

Merci beaucoup pour votre aide.
Messages postés
10
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
17 décembre 2007
4
Juste pour infos, Comment créé les touches de raccourci vers une macro ?

Merci
Messages postés
1842
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
9 juin 2020
1 386
Bonjour marieC,

Pour une macro déjà créée tu fais, dans le menu Excel :
Outils/Macro/Macros...

Dans la boite de dialogue qui s'affiche, sélectionner la macro, s'il y en a plusieurs, puis cliquer sur le bouton "Options".
Entrer la lettre choisie pour l'appel de la macro.

La macro sera appelée avec CTRL + la touche choisie.
Si on ne veut pas de conflit avec les raccourcis standard (p. ex. CTRL + c pour copier), il vaut mieux entrer une lettre majuscule.

Ajx.
Messages postés
10
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
17 décembre 2007
4
Merci à tous pour votre aide
Bonjour,

Je sais pas si c'est ici que je dois expliquer mon probleme alors dsl si je me suis trompé... J'ai un tableau récapitulatif du moi de janvier, février, mars j'attend celui des autres mois mais on me demande de préparer le tableau récapitulatif annuel c'est a dire que je dois trouver une formule qui me permettra que lorsque j'ajouterai les tableaux des autres moi le tableau annuel se complete au fur et a mesure... On ma dit que pour ca il faut utiliser une macro mais je ne sais pas comment faire...

Si quelqu'un a compris merci de m'aider

J'ai créé une ongue liste déroulante mais je ne peux pas la formater alors je voudrai faire une macro avec ma liste déroulante pour pouvoir la formater et l'intégrer dans mon tableau Merci
Bonjour à tous et à toutes
Je voudrai savoir comment faire pour utiliser des valeurs d'un de mes fichiers excel pour qu'il les affiche sur ma feuille
Je m'explique
j' ai un tableau excel avec 7 colonnes et 86 lignes les valeurs que je voudrai utiliser commence ligne 2
sur mon form vb6 il y a un combobox où je voudrai mettre ma colonne1 pour le choix de titre (par exempler)et 6 zones de texte ou je voudrai mettre les colonnes restantes(chiffres)Les valeur qui vont apparaitre serviront par la suite à effectuer des calculs

mais je sais pas comment faire pourriez vous m'aider svp.
merci