XL 2016 Copier une feuille avec une condition de valeur dans une colonne

  • Initiateur de la discussion Initiateur de la discussion Dadi147
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dadi147

XLDnaute Occasionnel
Copier une feuille Excel avec une condition de valeur dans une colonne et filtrer les données dans un tableau

1.png
 

Pièces jointes

  • A.png
    A.png
    24.2 KB · Affichages: 19
  • B.png
    B.png
    22.3 KB · Affichages: 18
  • C.png
    C.png
    23.8 KB · Affichages: 18
  • D.png
    D.png
    26.7 KB · Affichages: 18
  • test01.xlsm
    test01.xlsm
    89.6 KB · Affichages: 4
Voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim choix As Range, deb As Range, nom$, w As Worksheet, i&, x$, j&
Set choix = [C5] 'à adapter éventuellement
Set deb = [A18] 'à adapter éventuellement
nom = CStr(choix)
If Intersect(Target, choix) Is Nothing Or nom = "" Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
Set w = Sheets(nom)
On Error GoTo 0
'---création de la feuille---
If w Is Nothing Then
    Me.Move Before:=Sheets(1)
    Set w = Sheets.Add(After:=Me)
    w.Name = nom
    For i = 2 To Sheets.Count - 1
        x = Sheets(i).Name
        For j = i + 1 To Sheets.Count
            If Sheets(j).Name < x Then Sheets(j).Move Before:=Sheets(i) 'classement
    Next j, i
End If
'---copies---
Cells.Copy w.[A1] 'copier-coller
w.Range(choix(1, 0).Address).Resize(, 2).Clear
w.Range(deb.Address).CurrentRegion.Clear
choix(0) = "NAME"
deb.CurrentRegion.AdvancedFilter xlFilterCopy, choix(0).Resize(2), w.Range(deb.Address) 'copie le filtre avancé
choix(0) = ""
With w.UsedRange: End With 'actualise la barre de défilement verticale
w.Activate
End Sub
Edit : bonjour JHA.
 

Pièces jointes

Dernière édition:
Voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim choix As Range, deb As Range, nom$, w As Worksheet, i&, x$, j&
Set choix = [C5] 'à adapter éventuellement
Set deb = [A18] 'à adapter éventuellement
nom = CStr(choix)
If Intersect(Target, choix) Is Nothing Or nom = "" Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
Set w = Sheets(nom)
On Error GoTo 0
'---création de la feuille---
If w Is Nothing Then
    Me.Move Before:=Sheets(1)
    Set w = Sheets.Add(After:=Me)
    w.Name = nom
    For i = 2 To Sheets.Count - 1
        x = Sheets(i).Name
        For j = i + 1 To Sheets.Count
            If Sheets(j).Name < x Then Sheets(j).Move Before:=Sheets(i) 'classement
    Next j, i
End If
'---copies---
Cells.Copy w.[A1] 'copier-coller
w.Range(choix(1, 0).Address).Resize(, 2).Clear
w.Range(deb.Address).CurrentRegion.Clear
choix(0) = "NAME"
deb.CurrentRegion.AdvancedFilter xlFilterCopy, choix(0).Resize(2), w.Range(deb.Address) 'copie le filtre avancé
choix(0) = ""
With w.UsedRange: End With 'actualise la barre de défilement verticale
w.Activate
End Sub
Edit : bonjour JHA.
Merci pour votre aide. Le problème est que lorsque je copie le code dans le fichier d'origine, j'obtiens un message d'erreur malgré le changement de numéro de cellule

J'avais précédemment essayé de créer un code, mais je n'ai pas réussi à copier les données sur chaque feuille
 

Pièces jointes

J'espère que vous vous rendez compte que votre fichier est bien différent de celui du post #1.

Les cellules fusionnées du tableau A30:S34 posaient problème mais je m'en suis sorti en copiant les formats de la 1ère ligne vers le bas.

Par ailleurs j'ai ajouté ce code dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim feuille
feuille = Array("AA", "AB", "C", "D") 'liste des feuilles à traiter
If IsNumeric(Application.Match(Sh.Name, feuille, 0)) Then Sheets("main").[B27] = Sh.Name 'lance la macro Worksheet_Change
End Sub
pour que les feuilles se mettent à jour quand on les active.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour