[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:

Misange

XLDnaute Barbatruc
Re : Ajouter une feuille dans le code

Bonjour,
Que veux tu dire par ajouter une cible complémentaire ?
Tu ne peux pas en une seule instruction modifier deux tableaux à la fois, il faut travailler en deux temps.
 

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.
 

Thibault98

XLDnaute Occasionnel
Re : Ajouter une feuille dans le code

Oui mais comment ? car j'ai bien fais des essais mais la première ligne est refusée par VBA.

Code:
Private Sub Worksheet_Activate()
Merci.
Thibault :confused:
 

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

Bonjour Pierre Jean,

Merci pour votre code, il y a une erreur de compilation "variable non définie " "Les feuilles".
Merci encore et bon dimanche.

Thibault.
 

pierrejean

XLDnaute Barbatruc
Re : Ajouter une feuille dans le code

Re

2 solutions :
1) declare les variables Dim lesfeuilles et Dim lesobjets (sans autre ce sera Variant)
2) Ote l'option Explicit
 

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:

Thibault98

XLDnaute Occasionnel
Re : Ajouter une feuille dans le code

Je vais simplifier avec une seule feuille puis je vais créer des zones d'impressions.

Merci beaucoup à vous deux et je vous souhaite un bon Dimanche.

@+
Thibault.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas