Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Copie de données de plusieurs feuilles dans une seule

Renaud22

XLDnaute Junior
Bonjour à tous,

J'aurais besoin qu'on m'aide à concevoir un code VBA afin de permettre la copie de données de différentes feuilles dans une seule feuille.

Dans fichier ci-joint (Exemple 1.xlsm), pour chaque feuille visible (nom et nombre variés : 001, 002,...XX) contenant les caractères "ID :" en "B8" et des caractères différents de "xx" en "C8", copier toutes les valeurs (même nulles) des cellules "AI2 à AK2", de la première feuille (à gauche) dans les cellules "E10 à QG10" de la feuille BDIST. Répéter les mêmes étages pour la deuxième feuille en copiant les cellules "AI2 à AK2" à la suite de la plage "E10 à QG10" soit dans les cellules "E11 à QG11" de la feuille BDIST et ainsi de suite jusqu'à la dernière feuille contenant les caractères "ID :" en "B8" et des caractères différents de "xx" en "C8".

Une fois toutes les données copiées, des filtres devront être appliqués dans les cellules "E9 à QG9" de la feuille BDIST afin de trier ou rechercher des données précises.

En vous remerciant par avance pour votre précieuse aide.

Salutations,

Renaud22
 

Pièces jointes

  • Exemple 1.xlsm
    436.3 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Renaud,
Un essai avec ce que j'ai compris :
VB:
Sub Consolide()
Dim Nom$, F, L%
Nom = ActiveSheet.Name
L = 10
[E10:QG1000].ClearContents
For Each F In Worksheets
    If F.Name <> Nom Then
        With Sheets(F.Name)
            If .[C7] <> "" And .[B8] <> "ID" And .[C8] <> "" Then
                Range(Cells(L, "E"), Cells(L, "QG")) = .Range("AI2:RK2").Value
                L = L + 1
            End If
        End With
    End If
Next F
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Range("E6:QG" & [E60000].End(xlUp).Row).AutoFilter
End Sub
 

Pièces jointes

  • Exemple 1.xlsm
    446.4 KB · Affichages: 2

Renaud22

XLDnaute Junior
Bonjour sylvanu,

Merci beaucoup pour votre aide. J'ai changé la ligne : "If .[C7] <> "" And .[B8] <> "ID" And .[C8] <> "" Then" pour : " If .[B8] = "ID :" And .[C8] <> "xx" Then" afin de tenir compte de mes contraintes. Tout fonctionne donc à merveille.

Sincères salutations,

Renaud22
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…