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
🙄PS : Si le sujet est déjà traité, merci de me donner le lien pour que je m'y reporte.... 😀 merci d'avance 😉
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
🙄PS : Si le sujet est déjà traité, merci de me donner le lien pour que je m'y reporte.... 😀 merci d'avance 😉
Dernière édition: