Rechercher : dans
Par :

[VBA Excel] Macro quand ajout ou supprime ligne

Dernière réponse le 30 mai 2008 à 15:27:53 marieC, le 1 jun 2005 à 16:41:35 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [VBA Excel] Macro quand ajout ou supprime ligne » dans :
[Windows 2000] Affichage Ajout/suppression de programmes VoirUn beau jour, vous voulez désinstaller un programme mais la fenêtre Ajout/suppression de programmes n'affiche que du blanc et vous avez un message d'erreur du genre : Une erreur inattendue s'est produite Cet objet ne gère pas cette propriété ou...
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...

1

WhiteFang, le 1 jun 2005 à 17:20:49

;-)

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

;-) Wild and Free

Répondre à WhiteFang

2

Armojax, le 1 jun 2005 à 18:36:18

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 ?

Répondre à Armojax

3

WhiteFang, le 1 jun 2005 à 18:50:30

;-)

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

;-) Wild and Free

Répondre à WhiteFang

4

Armojax, le 1 jun 2005 à 21:17:20
  • +2

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

Répondre à Armojax

5

marieC, le 2 jun 2005 à 08:46:01
  • +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.

Répondre à marieC

6

Armojax, le 2 jun 2005 à 09:08:33

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.

Répondre à Armojax

7

WhiteFang, le 2 jun 2005 à 09:21:38

;-)

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

;-) Wild and Free

Répondre à WhiteFang

8

Armojax, le 2 jun 2005 à 09:31:57

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 ?

Répondre à Armojax

9

WhiteFang, le 2 jun 2005 à 09:43:38

;-)

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 ?

;-) Wild and Free

Répondre à WhiteFang

11

Armojax, le 2 jun 2005 à 10:25:14
  • +1

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.

Répondre à Armojax

12

WhiteFang, le 2 jun 2005 à 10:38:17

;-)

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 !! ;-))))
Wild and Free

Répondre à WhiteFang

13

Armojax, le 2 jun 2005 à 11:06:00

Bois un coup à ma santé, tu verras, ça va passer !

Répondre à Armojax

10

marieC, le 2 jun 2005 à 10:16: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.

Répondre à marieC

14

marieC, le 6 jun 2005 à 09:35:34

Juste pour infos, Comment créé les touches de raccourci vers une macro ?

Merci

Répondre à marieC

15

Armojax, le 6 jun 2005 à 11:08:16

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.

Répondre à Armojax

16

marieC, le 6 jun 2005 à 13:45:55

Merci à tous pour votre aide

Répondre à marieC

17

Vinzz88, le 2 oct 2007 à 12:29:32

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

Répondre à Vinzz88

18

nul en informatiq, le 18 déc 2007 à 10:14:17

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

Répondre à nul en informatiq

19

 urban, le 30 mai 2008 à 15:27:53

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

Répondre à urban