Macro pouur centraliser des données d'autres onglets sur un onglet

romdurk

XLDnaute Nouveau
Bonsoir à tous,

Je souhaiterais réaliser une macro afin de centraliser certaines données d'onglets dans un onglet centralisateur. Pour être plus concret je vous envoie le fichier en question en PJ.
Les deux onglets de droite (A000-0074 et A000-007) sont deux produits. Je souhaiterais transférer les données utiles dans l'onglet de gauche "LISTE". Par exemple, la cellule C8 des onglets produits irait dans la cellule A2 de LISTE.
Je souhaite avoir une macro car j'ai un paquet d'onglet comme cela. En outre, j'aimerais que mes cellules de liste soient liées aux onglets produits.

Qlqu'un a une idée?

Merci bcp par avance
 

Pièces jointes

  • Fiche de Prix Produits Famille 40.xlsx
    175.7 KB · Affichages: 52

Jack2

XLDnaute Occasionnel
Re : Macro pouur centraliser des données d'autres onglets sur un onglet

Bonjour romdurk,
Ci-après une proposition à mettre dans un module

Code:
Sub Copier_Onglets()
Dim Onglet As String
Dim i  As Integer, k As Integer
Dim Deb As Long
Dim TVar() As String
Dim Ts() As String

k = 1
For i = 3 To ActiveWorkbook.Sheets.Count
    Onglet = Sheets(i).Name
    If Onglet = "LISTE" Or Onglet = "TRAMES" Then GoTo Fin
    With Sheets(Onglet)
        ReDim Preserve TVar(k)
        TVar(k) = Onglet & "~" & .Range("C9") & "~" & .Range("C11") & "~" & .Range("C12") & "~" & .Range("C25") _
                  & "~" & .Range("C26") & "~" & .Range("C20") & "~" & .Range("C41") & "~" & .Range("C23")
        k = k + 1
    End With
Fin:
Next i

With Sheets("LISTE")
For i = 1 To UBound(TVar)
    Deb = Range("A1", Range("A65535").End(xlUp)).Rows.Count + 1
    Ts = Split(TVar(i), "~")
    Cells(Deb, 1) = Ts(0)
    Cells(Deb, 1).Offset(, 1) = Ts(1)
    Cells(Deb, 1).Offset(, 2) = Ts(2)
    Cells(Deb, 1).Offset(, 3) = Ts(3)
    Cells(Deb, 1).Offset(, 4) = Ts(4)
    Cells(Deb, 1).Offset(, 5) = Ts(5)
    Cells(Deb, 1).Offset(, 6) = Ts(6)
    Cells(Deb, 1).Offset(, 7) = Ts(7)
    Cells(Deb, 1).Offset(, 8) = Ts(8)
Next i
End With
End Sub

A+ Jack 2

PS J'aimerais trouver une solution où tout est placé dans un tableau (variant ou range) puis on affiche en une seule fois avec la fonction transpose ou resiez. Si quelqu'un a une idée...
 
Dernière édition:

romdurk

XLDnaute Nouveau
Re : Macro pouur centraliser des données d'autres onglets sur un onglet

Merci bcp, ca marche super bien.

Cependant, au lieu d'avoir des valeurs "dures" dans ma feuille de destination, j'aimerais que ces données soient liées à leur cellule d'origine. Càd par exemple que quand un cout de revient change dans un onglet, il faut que ca se mette également à jour dans l'onglet de destination.

Merci par avance
 

Jack2

XLDnaute Occasionnel
Re : Macro pouur centraliser des données d'autres onglets sur un onglet

Bonsoir romdurk,

Ci-après le nouveau code :
Code:
Sub Copier_Onglets()
Dim Onglet As String
Dim i  As Integer, k As Integer
Dim Deb As Long
Dim TVar() As String
Dim Ts() As String

k = 1
For i = 3 To ActiveWorkbook.Sheets.Count
    Onglet = Sheets(i).Name
    If Onglet = "LISTE" Or Onglet = "TRAMES" Then GoTo Fin
    With Sheets(Onglet)
        ReDim Preserve TVar(k)
        TVar(k) = "='" & Onglet & "'!C8" & "~" & "='" & Onglet & "'!C9" & "~" & "='" & Onglet & "'!C11" & "~" & "='" & Onglet & "'!C12" _
        & "~" & "='" & Onglet & "'!C25" & "~" & "='" & Onglet & "'!C26" & "~" & "='" & Onglet & "'!C20" _
        & "~" & "='" & Onglet & "'!C41" & "~" & "='" & Onglet & "'!C23"
        k = k + 1
    End With
Fin:
Next i

With Sheets("LISTE")
For i = 1 To UBound(TVar)
    Deb = Range("A1", Range("A65535").End(xlUp)).Rows.Count + 1
    Ts = Split(TVar(i), "~")
    Cells(Deb, 1) = Ts(0)
    Cells(Deb, 1).Offset(, 1) = Ts(1)
    Cells(Deb, 1).Offset(, 2) = Ts(2)
    Cells(Deb, 1).Offset(, 3) = Ts(3)
    Cells(Deb, 1).Offset(, 4) = Ts(4)
    Cells(Deb, 1).Offset(, 5) = Ts(5)
    Cells(Deb, 1).Offset(, 6) = Ts(6)
    Cells(Deb, 1).Offset(, 7) = Ts(7)
    Cells(Deb, 1).Offset(, 8) = Ts(8)
Next i
End With
End Sub
A+ Jack2
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94