Cacher une ligne après insertion

Résolu/Fermé
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 - 20 juil. 2021 à 10:27
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 - 24 juil. 2021 à 21:45
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

6 réponses

M-12 Messages postés 1279 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 24 novembre 2022 280
20 juil. 2021 à 11:32
Bonjour,
Si j'ai compris
https://mon-partage.fr/f/HJGBFsIv/
0
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
Modifié le 21 juil. 2021 à 13:18
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
0
cs_Le Pivert Messages postés 7856 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2022 723
21 juil. 2021 à 17:23
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à
0
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
21 juil. 2021 à 20:17
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.
0
cs_Le Pivert Messages postés 7856 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2022 723
22 juil. 2021 à 08:43
une autre approche :

https://www.cjoint.com/c/KGwgPKkEel1

@+ Le Pivert
0

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

Posez votre question
sophie60400_1604
23 juil. 2021 à 10:23
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
0
cs_Le Pivert Messages postés 7856 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2022 723
23 juil. 2021 à 12:13
0
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022
24 juil. 2021 à 14:58
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
0
cs_Le Pivert Messages postés 7856 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2022 723
24 juil. 2021 à 15:36
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
0
sophie60400_1604 Messages postés 28 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 7 février 2022 > cs_Le Pivert Messages postés 7856 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2022
24 juil. 2021 à 21:45
Merci, la fonctionne correctement.
Cordialement
0