Concaténation plusieurs feuilles

Bonjour à tous, j'espère que vous passez de bonne fêtes.

je bloque sur un sujet que je ne maitrise pas vraiment.

je m'explique:

dans le fichier en annexe, il y a plusieurs feuilles (1,2 et 3 ) où des statuts (colonnes N) sont en "open" "en cours" "closed".

j'aimerai pouvoir regrouper dans la feuille "en cours" tout ceux qui sont en statut "open" et "encours" de toutes les feuilles de mon classeur ( feuille 1,2,3)

je ne sais pas vraiment quelle formule utiliser (concaténer, si conditions ou recherche)

en annexe le classeur.

Merci pour votre aide.

4fichier-test.xlsx (30.79 Ko)

Salut Imagin,

quelque chose ainsi ?
Un double-clic en feuille 'en-cours' ligne 1, démarre la macro

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim sWk As Worksheet
'
Set sWk = Worksheets("en-cours")
Application.ScreenUpdating = False
'
If Not Intersect(Target, Rows(1)) Is Nothing Then
    Cancel = True
    For x = 1 To Sheets.Count
        If IsNumeric(Sheets(x).Name) Then
            With Sheets(x)
                For y = .Range("B" & Rows.Count).End(xlUp).Row + 1 To 9 Step -1
                    If .Range("N" & y).Value <> "CLOSED" Then _
                        sWk.Range("A" & sWk.Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(1, 14).Value = _
                            .Range("B" & y).Resize(1, 14).Value: _
                            .Rows(y).Delete shift:=xlUp
                Next
            End With
        End If
    Next
End If
'
Application.ScreenUpdating = True
'
End Sub
3imagin.xlsm (37.83 Ko)


Joyeuses Fêtes !

A+

Bonjour à tous

Utilise les tableaux structurés et évite les fusions de cellules qui n'apportent que des problèmes

Une solution PowerQuery, intégré à Excel

Tu peux ajouter d'autres onglets avec des tableaux dont le nom commence par T_ : ils seront pris en compte

Actualiser par Données, Actualiser Tout

6synthese2-pq.xlsx (29.64 Ko)

Bonsoir @curulis57, merci pour ton aide.

ca correspond plus à ce que je cherche sauf que les lignes s'effacent de la feuille initiale. le but dans la feuille "encours" c'est juste de visualiser ce qui n'est pas encore exécuté mais conserver toutes les lignes dans leur feuilles initiales.

si j'ajoute d'autres onglets, commen dois-je modifier la macro?

désolé mais je gère mal la vba.

merci pour votre aide

Salut Imagin,
Salut 78chris,

en l'état, tu peux ajouter autant de feuilles que souhaité : la macro ne lira que les feuilles autres que 'en-cours'.
Ainsi, tu peux les nommer n'importe comment.

Je t'aurais bien ajouté en bonus des fonctions de tri mais tes cellules fusionnées ("Description") f... le cazin et j'ai la flemme de corriger cela...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim sWk As Worksheet
'
Set sWk = Worksheets("en-cours")
Application.ScreenUpdating = False
'
If Not Intersect(Target, Rows(1)) Is Nothing Then
    Cancel = True
    If [A3] <> "" Then Range("A3:N" & Range("A" & Rows.Count).End(xlUp).Row).Value = ""
    For x = 1 To Sheets.Count
        If Sheets(x).Name <> "en-cours" Then
            With Sheets(x)
                For y = .Range("B" & Rows.Count).End(xlUp).Row + 1 To 9 Step -1
                    If .Range("N" & y).Value <> "CLOSED" Then _
                        sWk.Range("A" & sWk.Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(1, 14).Value = .Range("B" & y).Resize(1, 14).Value
                Next
            End With
        End If
    Next
End If
'
Application.ScreenUpdating = True
'
End Sub
4imagin.xlsm (44.70 Ko)


A+

Salut Curulis,

un tout grand merci pour ton aide.

au risque de paraître embêtant, la formule ne fonctionne pas vraiment et honnêtement je n'arrive pas à la déchiffrer.

j'ai ajouté une feuille intitulée "feuille1" avec plusieurs "open" et "encours" mais seul une ligne apparait...

j'ai mis le fichier en annexe si jamais tu as un peu de temps.

1imagin-1.xlsm (47.72 Ko)

un grand merci

Salut Imagin,

il est vrai que je tablais mes calculs en fonction d'un tableau complété.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim sWk As Worksheet
'
Set sWk = Worksheets("en-cours")
Application.ScreenUpdating = False
'
If Not Intersect(Target, Rows(1)) Is Nothing Then
    Cancel = True
    If [A3] <> "" Then Range("A3:N" & Range("M" & Rows.Count).End(xlUp).Row).Value = ""
    For x = 1 To Sheets.Count
        If Sheets(x).Name <> "en-cours" Then
            With Sheets(x)
                For y = .Range("N" & Rows.Count).End(xlUp).Row To 9 Step -1
                    If .Range("N" & y).Value <> "CLOSED" Then _
                        sWk.Range("A" & sWk.Range("M" & Rows.Count).End(xlUp).Row + 1).Resize(1, 14).Value = .Range("B" & y).Resize(1, 14).Value
                Next
            End With
        End If
    Next
End If
'
Application.ScreenUpdating = True
'
End Sub


A+

Top merci, cette fois ca fonctionne :-)

un grand merci et passe une bonne fin d'année

Rechercher des sujets similaires à "concatenation feuilles"