copier une plage de plusieurs feuilles vers une seule

manikam

XLDnaute Junior
Bonjour à tous,

J'ai un classeur avec beaucoup de feuilles, je voudrais dans une nouvelle feuil1 copier /coller (valeurs) une ligne la 116 de chaque feuille du classeur, une ligne pour chaque feuille.

Ligne 1 : la ligne 116 de la feuil2

Ligne 2 la ligne 116 de la feuil3.

Merci.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier une plage de plusieurs feuilles vers une seule

Bonjour Manikam, bonjour le forum,

Essaie comme ça :
Code:
Sub Macro2()
Dim o As Object 'déclare la variable o (Onglet)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

For Each o In Sheets 'boucle sur tous les onglets du classeur
    If Not o.Name = "Feuil1" Then 'condition : si le nom de l'onglet n'est pas "Feuil1"
        With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
            'définit la cellule de destination dest (A1 si A1 est vide, sinon, la première cellule vide de la colonne A)
            Set dest = IIf(.Range("A1").Value = "", .Range("A1"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
        End With 'fin de la prise en compte de l'onglet "Feuil1"
        o.Rows(116).Copy dest 'copie la ligne 116 et la colle dans dest
    End If 'fin de la condition
Next o 'prochain onglet de la boucle
End Sub
 

Si...

XLDnaute Barbatruc
Re : copier une plage de plusieurs feuilles vers une seule

salut

autre code dans le module de la feuille de destination (Feuil1)
Code:
Sub Macro2()
 Dim F As Worksheet
 [A:II] = "" 'pour éviter le cumul en cas de relance
  For Each F In Sheets
    If F.Name <> Me.Name Then F.Rows(116).Copy Cells([A65000].End(xlUp).Row + 1, 1)
  Next
End Sub

(en adaptant, si nécessaire, II et 65000 avec la version)
 

manikam

XLDnaute Junior
Re : copier une plage de plusieurs feuilles vers une seule

Merci à vous tous,

j'ai réussi à le faire, avec quelques modifs près, je devais au fait créer une ligne de calcul dans chaque feuille puis reprendre cette même ligne pour faire une synthèse dans ma feuille 1.

j'ai donc créer ma ligne avec toutes les formules et calculs sur une feuille puis un petit code en vba pour faire le reste, sachant que les feuilles sont protégées par mot de passe il fallait ôter la protection. Après bcp de php c'était pas évident de remettre la main dans la patte VBA, mais quand même ...

je met le code au cas où ça pourrait intéresser quelqu'un
Code:
Dim WS_Count As Integer
         Dim I As Integer
         Dim myPassword As String
myPassword = "monpass"
         
         WS_Count = ActiveWorkbook.Worksheets.Count

        
         For I = 1 To WS_Count

            
            If ActiveWorkbook.Worksheets(I).Name <> "Feuil1" Then
            ActiveWorkbook.Worksheets(I).Unprotect Password:=myPassword
            ActiveWorkbook.Worksheets("Tarifs").Range("N116:AH116").Copy
            ActiveWorkbook.Worksheets(I).Range("N116:AH116").PasteSpecial xlPasteFormulas
            
            ActiveWorkbook.Worksheets(I).Range("N116:AH116").Copy
           
            ActiveSheet.Range("B" & I + 5).PasteSpecial xlPasteValues
            End If
            
            
            
            

         Next I
Merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 930
Membres
103 984
dernier inscrit
maliko67