[Résolu]Ajouter une feuille dans le code

Thibault98

XLDnaute Occasionnel
Bonsoir à tous,

Dans le code ci-dessous je voudrais ajouter une cible supplémentaire ( "feuil6" contenant un tableau appelé "tableau6" ) comment faire ?
Sur cette ligne :
Code:
With Feuil1.ListObjects("ReproSuivi")

Code:
Private Sub Worksheet_Activate()
Dim c As Range
 
Application.ScreenUpdating = False
With Feuil1.ListObjects("ReproSuivi")
    If .ListRows.Count > 0 Then .DataBodyRange.Rows.Delete
    For Each c In Feuil5.ListObjects("Saisies").ListColumns(1).Range
        If c.Value = "OUI" Then
            With .Range(.ListRows.Count + 2, 1)
                .Value = c.Offset(0, 1)
            End With
         End If
    Next c
End With
End Sub

Merci d'avance.

Thibault :confused:
 
Dernière édition:

Thibault98

XLDnaute Occasionnel
Re : Ajouter une feuille dans le code

Bonjour,

D'accord, si on ne peux pas modifier deux tableaux à la fois et qu'il faut travailler en deux temps alors comment faire ?
Sur le même code il faut remplacer ou ajouter
Code:
With Feuil1.ListObjects("ReproSuivi")

Par
Code:
With Feuil6.ListObjects("Tableau6")

Le reste du code ne change pas puisque
Code:
For Each c In Feuil5.ListObjects("Saisies").ListColumns(1).Range
        If c.Value = "OUI" Then
            With .Range(.ListRows.Count + 2, 1)

Sera commandé de cette même feuille "Feuil5" et son tableau "Saisies".

Merci.
Thibault.
 

pierrejean

XLDnaute Barbatruc
Re : Ajouter une feuille dans le code

Bonjour Thibault

Bises Misange

A tester:

Code:
Private Sub Worksheet_Activate()
Dim c As Range
 lesfeuilles = Array(1, 6)
 lesobjets = Array("Saisies", "Tableau6")
Application.ScreenUpdating = False
For n = LBound(lesfeuilles) To UBound(lesfeuilles)
With Sheets(lesfeuilles(n)).ListObjects(lesobjets(n))
    If .ListRows.Count > 0 Then .DataBodyRange.Rows.Delete
    For Each c In Feuil5.ListObjects("Saisies").ListColumns(1).Range
        If c.Value = "OUI" Then
            With .Range(.ListRows.Count + 2, 1)
                .Value = c.Offset(0, 1)
            End With
         End If
    Next c
End With
Next
End Sub
 

Thibault98

XLDnaute Occasionnel
Re : Ajouter une feuille dans le code

J'ai ajouté :

Code:
Private Sub Worksheet_Activate()
Dim c As Range
Dim lesfeuilles
Dim lesobjets
Dim n
 lesfeuilles = Array(1, 6)
 lesobjets = Array("ReproSuivi", "Tableau6")
Application.ScreenUpdating = False
For n = LBound(lesfeuilles) To UBound(lesfeuilles)
[B]With Sheets(lesfeuilles(n)).ListObjects(lesobjets(n))[/B] ça bloque ici
    If .ListRows.Count > 0 Then .DataBodyRange.Rows.Delete
    For Each c In Feuil5.ListObjects("Saisies").ListColumns(1).Range
        If c.Value = "OUI" Then
            With .Range(.ListRows.Count + 2, 1)
                .Value = c.Offset(0, 1)
            End With
         End If
    Next c
End With
Next
End Sub
ça bloque sur la ligne en gras With Sheets(lesfeuilles(n)).ListObjects(lesobjets(n))

Merci
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 756
Membres
101 812
dernier inscrit
trufu