[VBA Excel] Macro quand ajout ou supprime ligne

Résolu/Fermé
marieC Messages postés 10 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 17 décembre 2007 - 1 juin 2005 à 16:41
 urban - 30 mai 2008 à 15:27
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
A voir également:

10 réponses

marieC Messages postés 10 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 17 décembre 2007 4
2 juin 2005 à 08:46
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
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
2 juin 2005 à 09:08
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.
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
2 juin 2005 à 09:21
;-)

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

;-)
1
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
2 juin 2005 à 09:31
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 ?
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204 > Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024
2 juin 2005 à 09:43
;-)

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 ?

;-)
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528 > WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008
2 juin 2005 à 10:25
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.
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204 > Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024
2 juin 2005 à 10:38
;-)

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 !! ;-))))
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528 > WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008
2 juin 2005 à 11:06
Bois un coup à ma santé, tu verras, ça va passer !
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
1 juin 2005 à 17:20
;-)

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

;-)
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
1 juin 2005 à 18:36
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 ?
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
1 juin 2005 à 18:50
;-)

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

;-)
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528 > WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008
1 juin 2005 à 21:17
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...
0

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

Posez votre question
marieC Messages postés 10 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 17 décembre 2007 4
2 juin 2005 à 10:16
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.
0
marieC Messages postés 10 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 17 décembre 2007 4
6 juin 2005 à 09:35
Juste pour infos, Comment créé les touches de raccourci vers une macro ?

Merci
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
6 juin 2005 à 11:08
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.
0
marieC Messages postés 10 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 17 décembre 2007 4
6 juin 2005 à 13:45
Merci à tous pour votre aide
0
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
0
nul en informatiq
18 déc. 2007 à 10:14
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
0
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
0