Lier 2 feuilles excel

vdh_xavier

XLDnaute Junior
Bonjour à tous.

Est-il possible de lier 2 feuilles d'un même classeur excel afin que si on insère une ligne ou si on supprime une ligne dans une des 2 feuilles, la même chose se passe au même endroit dans l'autre feuille?

Merci pour votre aide
 

JBARBE

XLDnaute Barbatruc
Re : Lier 2 feuilles excel

Bonjour,

Oui, avec une macro nommant les Feuilles ( ici Feuil1 et Feuil2),( exemple suppression de la ligne inférieur à la date du jour ) colonne 2 !

Code:
Sub Essai()

Sheets("Feuil1").Select
For h = 2 To Range("A1").End(xlDown).Row '''''
         If Cells(h, 2).Value = "" Then Exit Sub
          If Cells(h, 2).Value < Date Then
        Cells(h, 2).EntireRow.Delete
         Exit For
        Else
         Cells(h + 1, 2).Select
         End If
         Next h
Sheets("Feuil2").Select
For i = 2 To Range("A1").End(xlDown).Row '''''
         If Cells(i, 2).Value = "" Then Exit Sub
          If Cells(i, 2).Value < Date Then
        Cells(i, 2).EntireRow.Delete
        Exit Sub
         Exit For
        Else
         Cells(i + 1, 2).Select
         End If
         Next i
End Sub
 

vdh_xavier

XLDnaute Junior
Re : Lier 2 feuilles excel

Merci pour votre réponse.

Mais je ne comprends pas très bien l'utilité de cette macro. Comment dois-je la compléter pour que chaque ligne insérée ou supprimée dans une feuille fasse de même dans l'autre feuille?

Merci
 

JBARBE

XLDnaute Barbatruc
Re : Lier 2 feuilles excel

Code:
Sub Essai()

Sheets("Feuil1").Select
For h = 2 To Range("A1").End(xlDown).Row '''''
         If Cells(h, 2).Value = "" Then Exit Sub
          If Cells(h, 2).Value < Date Then '''''''''''''''''''''''''''''''''' ici la cellule fait référence à la date actuelle
         Cells(h, 2).EntireRow.Delete''''''''''''''''''''''''''''''''''''''''''ici la ligne est donc supprimée
         Exit For
        Else
         Cells(h + 1, 2).Select
         End If
         Next h

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sheets("Feuil2").Select
For i = 2 To Range("A1").End(xlDown).Row '''''
         If Cells(i, 2).Value = "" Then Exit Sub
          If Cells(i, 2).Value < Date Then'''''''''''''''''''''''''''''''''''''''''Comme pour la feuille1, les critères doivent être les '''''''''''''mêmes sinon je ne vois pas l'utilité de supprimer une ligne identique dans cette feuille 2

        Cells(i, 2).EntireRow.Delete ''''''''De ce fait, la même ligne est supprimée 
        Exit Sub
         Exit For
        Else
         Cells(i + 1, 2).Select
         End If
         Next i
End Sub

Enfin un fichier serait le bienvenu ! Merci!
 

vdh_xavier

XLDnaute Junior
Re : Lier 2 feuilles excel

Effectivement un fichier ne ferait pas de tort. En fait ce que je veux faire est un peu différent et j'avoue que je suis un peu perdu, donc je vous explique le tout par rapport à mon cas.

Dans la feuille 'Insertion créanciers', j'ai une série de créanciers qui sont entrés sous forme de base de données. Si on veut qu'un créancier aille se mettre dans la colonne B de la feuille 'Tableau des dettes', on peut le cocher à gauche.
Mes problèmes :
1. Le nombre de lignes dans la feuille 'Tableau des dettes' est inséré comme si chaque créancier était coché. Si un créancier n'est pas coché, il y a un "FAUX" qui se met dans la colonne B. A ce niveau-là, je peux encore m'en sortir : je pourrais faire une macro qui supprime les lignes qui contiennent faux en colonne B.
2. S'il y a un ajout d'un créancier dans la base de données, ça me casse tout. Il faudrait qu'une ligne s'ajoute dans la feuille 'Tableau des dettes' et ce au bon endroit (ordre alphabétique).

Enfin voilà c'est un peu compliqué, je fais avec les moyens que j'ai, mais je pense que sur ce coup-ci je suis trop limité.

Merci beaucoup pour votre aide
 

Pièces jointes

  • Excel Tableau créanciers.xls
    206.5 KB · Affichages: 199

JBARBE

XLDnaute Barbatruc
Re : Lier 2 feuilles excel

Pour la feuille Tableau des dettes tu peux ajouter cette macro afin de trier après la suppression !
( La ligne va s'intégrer à la fin du tableau )

Code:
Sub Macro2()

    Range("B1:J1").Select
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("Tableau des dettes").AutoFilter.Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Tableau des dettes").AutoFilter.Sort.SortFields.Add _
        Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Tableau des dettes").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

Discussions similaires

Réponses
16
Affichages
504

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma