Copier données de plusieurs feuilles sous condition

Bonjour,

Je suis nouvellement inscrit sur ce forum et débute en VBA.

J'ai pas mal cherché sur le web, mais je n'arrive pas à faire ce que je voudrais. Je me retourne donc vers vous pour un petit coup de pouce.

Je dois faire un fichier excel contenant plusieurs pages de données. Chaque page est construite de manière similaire.

Dans la colonne 1 du texte dans chaque case

Dans les colonnes 2 à 10 des X dans certaines cases.

Je voudrais faire une nouvelle page sur laquelle soit copié les cellules de la colonne A qui ont un X sur leur ligne et ceci pour chaque page.

*Un exemple.

page 1 : dans les cases B4, C6 et E8 figurent un X, les cases A4, A6 et A8 seront donc recopiées sur la feuille résultat

Page 2 : dans les cases B6, D7 et E3 figurent un X, les cases A3 A6 et A7 seront donc recopiées sur la feuille résultat à la suite des résultats de la page 1

Idem pour la page 3.

Merci par avance pour votre aide

cordialement

Macgivre67

11essai.xlsx (9.89 Ko)

Bonsoir et bienvenu,

Ce qui manque dans ton fichier, c'est le résultat que tu attends.

Bonsoir Raja

Merci pour ton message

Je voudrais que le texte des différentes lignes répondant à la condition soit recopier dans la feuille résultat les uns sous les autres.

je joins à nouveau le fichier avec la présentation de la feuille résultat

Merci encore pour ton aide

cordialement

Macgivre67

14essai.xlsx (10.07 Ko)

Re,

Insère un bouton de commande dans l'onglet "résultat" et affecte cette macro à ce bouton.

Sub Bouton1_Cliquer()
    k = 3
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "résultat" Then
            derLig = Sheets(i).Range("A" & Rows.Count).End(xlUp).Row
            For j = 1 To derLig
                Set valeur = Sheets(i).Rows(j).Find(What:="x", LookIn:=xlValues, lookat:=xlWhole)
                If Not valeur Is Nothing Then
                    Sheets(i).Cells(j, "A").Copy Destination:=Sheets("résultat").Cells(k, "A")
                    k = k + 1
                End If
            Next j
        End If
    Next i
End Sub

Bonjour Raja,

Merci beaucoup pour ton aide ca fonctionne très bien.

j'ai juste encore une question.

comment est-ce que je peux limiter la recherche des cases cochées par un "x" à certaines colonnes, par exemple que la macro ne recherche que les cases cochées dans les colonnes B, C, D, E, F

Cordialement

Macgivre67

Re,

Il faut adapter cette ligne en la modifiant la ligne complète, c'est à dire toutes les colonnes :

Set valeur = Sheets(i).Rows(j).Find(What:="x", LookIn:=xlValues, lookat:=xlWhole)

en limitant la plage de recherche par le code suivant :

Set valeur = Sheets(i).Range("B" & j & ":F" & j).Find(What:="x", LookIn:=xlValues, lookat:=xlWhole)

Re,

merci beaucoup ca marche nickel.

Rechercher des sujets similaires à "copier donnees feuilles condition"