Ajout de colonne ou de ligne et actualistion /modification du code des macros

fox_mulder

XLDnaute Nouveau
Ajout de colonne ou de ligne et actualisation /modification du code des macros

Bonjour à tous,

N'ayant pas trouvé de sujet se reportant à mon problème, je viens faire appel à vous car je suis débutant en vba.

Voilà je vous explique mon problème :

1-j'ai sur une feuille d'un fichier excel, des groupes de lignes et/ou des colonnes que je fais apparaître ou disparaitre grâce à diverses macros répondant à des conditions (liste déroulante , case à cocher), jusque la pas de souci .

2- mon souci, c'est que je suis amené à ajouter une ou plusieurs lignes (idem pour les colonnes) dans ces groupes, et cela, a pour conséquence de ne plus "masquer" ou "afficher" tout le bloc de ligne ou de colonne. Je sais pas si je suis bien claire , prenons un exemple :

J'ai une liste déroulante tel que :
plage de cellule : $AA$1:$AA$9
cellule lié : $Y$1
1->AA1 = item 1
2->AA2 = item 2
3->AA3 = item 3
4->AA4 = item 4

ma macro fait :
si $Y$1= 1 alors masqué ou affiché les lignes (ou colonne) de "i" à "j" : exemple
Rows("6:25").Select
Selection.EntireRow.Hidden = True
Rows("6:6").Select
Selection.EntireRow.Hidden = False
Rows("13:13").Select
Selection.EntireRow.Hidden = False
Rows("17:17").Select
Selection.EntireRow.Hidden = False

si $Y$1= 2 alors masqué ou affiché les lignes de "i" à "j" : exemple
Rows("26:76").Select
Selection.EntireRow.Hidden = True
Rows("26:26").Select
Selection.EntireRow.Hidden = False
Rows("35:35").Select
Selection.EntireRow.Hidden = False
Rows("60:60").Select
Selection.EntireRow.Hidden = False
Rows("69:69").Select
Selection.EntireRow.Hidden = False
ect pour les autres items ...

Mon souci, est que lorsque j'ajoute une ligne (idem pour les colonnes) , cette ligne en plus n'est pas répercutée dans le code de la macro, ce qui a pour conséquence de créer un décalage :

si j'ajoute une ligne dans le blocs de ligne "26 à 76" (disons une ligne entre la n° 35 et la n°36), j'aurais donc le bloc "26 à 77", la ligne initialement (avant ajout de la ligne) 76 devient la ligne 77.
mais le code de la macro reste figé à "76".

La ligne initialement n°59 devient la n°60, qui selon le code était caché devient visible, et
La ligne initialement n°60 devient la n°61, qui selon le code était visible devient cachée, même conséquence pour la ligne 69 ...


Comment doit-on faire dans le code de la macro (ou toutes les macros de la feuille), pour que cette dernière "s'incrémente" en même temps que l'ajout de ligne ou de colonne. Même question, si au lieu d'ajouter des lignes on les supprimait .

J'espère que ma petite explication vous suffira.

Remarque :

A-/dans mes blocs (de lignes ou de colonnes) que je cache ou affiche, il y a d'autres boutons (pictures) qui actionnent d'autres macros qui elles aussi vont faire apparaitre ou disparaitre un certain nombre de ligne au sein du bloc. C'est pour ça que ma demande concerne "l'incrémentation" de toutes les macros de la feuille après ajout ou suppression de ligne ou de colonne.
B-/ je précise que l'ajout ou la suppression de ligne ou de colonne , se fait manuellement (clique droit sur le n° de ligne où je veux ajouter une ligne, puis insérer) à l'endroit où j'ai besoin de rajouter ou supprimer une ligne;

En vous remerciant,

Fox

:rolleyes:PS : Si le sujet est déjà traité, merci de me donner le lien pour que je m'y reporte.... :D merci d'avance ;)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ajout de colonne ou de ligne et actualistion /modification du code des macros

Bonjour fox,

une petite idée, comme ca au passage, utiliser des plages nommées, tu sélectionnes ton groupe de lignes => barre de menu Excel => insertion => noms => définir, tu donnes un nom, ensuite dans ton code tu peux l'utiliser ainsi :

Code:
Range("maplagedelignes").Rows.Hidden = True

bonne soirée.
@+
 

fox_mulder

XLDnaute Nouveau
Re : Ajout de colonne ou de ligne et actualistion /modification du code des macros

Bonjour fox,

une petite idée, comme ca au passage, utiliser des plages nommées, tu sélectionnes ton groupe de lignes => barre de menu Excel => insertion => noms => définir, tu donnes un nom, ensuite dans ton code tu peux l'utiliser ainsi :

Code:
Range("maplagedelignes").Rows.Hidden = True

bonne soirée.
@+

Bonsoir Pierrot 93

Merci pour ta réponse; j'ai qq questions au sujet de ce que tu écris :

1- Comment fais-tu ce que tu proposes avec excel 2007 pour donner un nom à une plage de lignes ?

2- avec ton code, c'est toutes les lignes de "maplagedelignes" qui vont être caché ou non ?

Moi je ne veux que ne veut que certaine .

A moins que tu sous-entends de créer plusieurs plages et de les appeler au bon moment ?

merci

fox
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Ajout de colonne ou de ligne et actualistion /modification du code des macros

Re,

sous 2007, je ne sais pas.... Oui, si besoin tu peux créér une zone de nom par ligne, même si son adresse est modifiée du fait d'une insertion, l'exécution se fera sur la ligne définie au départ....
 

fox_mulder

XLDnaute Nouveau
Re : Ajout de colonne ou de ligne et actualistion /modification du code des macros

Re,

Je vais essayer de trouver comment on fait avec excel 2007 ...
Merci pour cette piste de réflexion .. je vais voir si ca fait bien ce que je désire,

Bonne soirée,

Fox :;)
 
G

Guest

Guest
Re : Ajout de colonne ou de ligne et actualistion /modification du code des macros

Bonjour le fox_mulder,
Pierrot:)

Sous 2007, onglet "Formules" Groupe "Nom définis" bouton "Définir un nom"

Sélectionner la plage de cellules( ou ligne entière) avant

A+
[Edit] Oups! trop tard!
 

Discussions similaires

Statistiques des forums

Discussions
312 225
Messages
2 086 412
Membres
103 202
dernier inscrit
Claire2BM