Cacher une ligne après insertion
Résolu
sophie60400_1604
Messages postés
29
Statut
Membre
-
sophie60400_1604 Messages postés 29 Statut Membre -
sophie60400_1604 Messages postés 29 Statut Membre -
Bonjour,
Ci-dessous, vous trouverez le tableau. J'ai affecté une macro au bouton "insérer" pour pouvoir insérer une ligne à la fin de chaque tableau (d'ailleurs, je ne suis pas certaine de la validité de cette dernière). Cependant, lorsque j'insère une ligne, je souhaiterais en même temps cacher celle en-dessous de la ligne verte (dans chaque tableau) afin de ne pas me retrouver avec des tableaux qui s'allongent sur plusieurs pages.
En vous remerciant par avance,
Cordialement
https://www.cjoint.com/c/KGuiAs2rNHX
Ci-dessous, vous trouverez le tableau. J'ai affecté une macro au bouton "insérer" pour pouvoir insérer une ligne à la fin de chaque tableau (d'ailleurs, je ne suis pas certaine de la validité de cette dernière). Cependant, lorsque j'insère une ligne, je souhaiterais en même temps cacher celle en-dessous de la ligne verte (dans chaque tableau) afin de ne pas me retrouver avec des tableaux qui s'allongent sur plusieurs pages.
En vous remerciant par avance,
Cordialement
https://www.cjoint.com/c/KGuiAs2rNHX
6 réponses
-
-
Bonjour,
Il y a un petit souci dans la formule : sur le premier tableau, tout fonctionne correctement. Cependant, au fur et à mesure que l'on clique sur le bouton "insérer", le tableau 2 disparaît.
Les lignes vertes doivent rester. Il faut uniquement que la ligne en-dessous de la ligne verte se masque lorsque l'on insère une autre ligne à la fin du tableau.
En vous remerciant par avance,
Cordialement -
Bonjour,
Comme ceci:
Option Explicit Dim ligne As Long Sub Macro1() Recherchernom Range("TOTAL3").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.FillDown Rows("4:4").EntireRow.Hidden = True 'masquer Range("TOTAL4").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.FillDown Rows(ligne + 3 & ":" & ligne + 3).EntireRow.Hidden = True 'masquer End Sub Sub afficher() Cells.Select Selection.EntireRow.Hidden = False 'afficher toutes les lignes End Sub Sub Recherchernom() 'rechercher Tableau 2 Dim Plage As Range Dim Lignes(), i As Long Dim Texte As String Dim Flag As Boolean Set Plage = Sheets("Feuil1").Range("A1:J100") 'plage de recherche Texte = "Tableau 2" 'expression cherchée Flag = Find_Next(Plage, Texte, Lignes()) 'appel de la fonction 'si fonction retourne Vrai = expression trouvée dans la plage If Flag Then 'restitution des lignes correspondantes For i = LBound(Lignes) To UBound(Lignes) ligne = Lignes(i) Next i Else MsgBox "L'expression : " & Texte & " n'a pas été trouvée dans la plage : " & Plage.Address End If End Sub 'Sources : Michel_m 'http://www.commentcamarche.net/forum/affich-31432413-importation-de-donnees-sans-doublons#9 Function Find_Next(Rng As Range, Texte As String, Tbl()) As Boolean Dim Nbre As Integer, Lig As Long, Cptr As Long Nbre = Application.CountIf(Rng, Texte) If Nbre > 0 Then ReDim Tbl(Nbre - 1) Lig = 1 For Cptr = 0 To Nbre - 1 Lig = Rng.Find(Texte, Cells(Lig, Rng.Column), xlValues).Row Tbl(Cptr) = Lig Next Else GoTo Absent End If Find_Next = True Exit Function Absent: Find_Next = False End Function
voilà
-
Bonsoir,
J'ai fait un copier coller de la formule pour l'affecter au bouton "insérer", malheureusement, ça ne fonctionne pas. Les tableaux s'allongent et la macro ne semble pas fonctionner avec le tableau 1. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Merci, ça fonctionne correctement. Cependant, serait-il possible d'appliquer cette formule non plus sur 2 tableaux mais 5 tableaux (voir fichier joint) ?
En vous remerciant par avance,
Cordialement
https://www.cjoint.com/c/KGxiud5qyoX -
Bonjour,
Merci beaucoup pour la formule ! Cependant, est-il possible, lorsque j'ajoute une ligne, que cette dernière efface les données sans effacer les formules ?
En vous remerciant par avance,
Cordialement
https://www.cjoint.com/c/KGym5yQDcxX-
Comme ceci:
Range("TOTAL1").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.FillDown Range("B" & Range("TOTAL1").Row - 1 & ":J" & Range("TOTAL1").Row - 1).SpecialCells(xlCellTypeConstants, 23).ClearContents 'efface les données garde les formules
faire de même pour les autres
-