XL 2010 copier le contenu de plusieurs feuilles sur une seule

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 !

komarlehomard

XLDnaute Junior
Bonjour à tous, tout d'abord bonne année à tous avec plein de bonnes choses de cellules et VBA.
Je reviens vers vous car je n'arrive pas à adapter les discussions antérieures à mon fichier.
J'ai un fichier avec un nombre de feuilles aléatoires, le contenu de chaque feuille peut l'être aussi.
J'aimerais que vous m'aidiez à copier sur la feuille synthèse, les lignes contenant "N° série train" et "Kilométrage absolu" afin de les placer dans la feuille synthèse.
Si ça n'est pas trop gourmand d'indiquer la feuille d'origine (exemple dans syntèse).
D'avance je vous remercie pour le temps que vous alllez m'accorder, bonne journée.
 

Pièces jointes

bonjour

un essai par macro
VB:
Sub ImporterSynth()

Dim ws As Worksheet
Dim WsSynt As Worksheet

Set WsSynt = Sheets("Synthèse")
FinSynth = 1
For Each ws In ActiveWorkbook.Sheets
    If ws.Name <> "synthèse" Then
        With ws
            LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
            WsSynt.Range("A" & FinSynth) = ws.Name
            FinSynth = FinSynth + 2
            For i = 1 To LastLine
                If .Range("A" & i) Like "N° série train" & "*" Then
                    
                    WsSynt.Range("A" & FinSynth).Resize(3, 1) = .Range("A" & i).Resize(3, 1).Value
                    FinSynth = FinSynth + 4
                End If
            Next i
        End With
    End If
Next ws
End Sub
 
bonjour

un essai par macro
VB:
Sub ImporterSynth()

Dim ws As Worksheet
Dim WsSynt As Worksheet

Set WsSynt = Sheets("Synthèse")
FinSynth = 1
For Each ws In ActiveWorkbook.Sheets
    If ws.Name <> "synthèse" Then
        With ws
            LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
            WsSynt.Range("A" & FinSynth) = ws.Name
            FinSynth = FinSynth + 2
            For i = 1 To LastLine
                If .Range("A" & i) Like "N° série train" & "*" Then
                   
                    WsSynt.Range("A" & FinSynth).Resize(3, 1) = .Range("A" & i).Resize(3, 1).Value
                    FinSynth = FinSynth + 4
                End If
            Next i
        End With
    End If
Next ws
End Sub
Bonjour vgendron
Ta solution me convient parfaitement, merci de t'être penché sur mon cas.
Si je peux rajouter encore un merci 🙂
 
- 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