Alimentation automatique des colonnes depuis un fichier source

Bonjour,

cela fait plusieurs jours que j'essaie de trouver une marco pour mon cas ci-dessous. Je vous serai vraiment reconnaissante pour votre aide!

Cas:Un onglet "conso" avec 90 colonnes. Les valeurs des colonnes de cet onglet "conso" doivent alimenter automatiquement les mêmes colonnes de d'autres onglets "O", "1", "2" ,""3 tout en sachant que les libellés ne sont pas les mêmes.

J'ai donc créé une matrice mapping des numéros de colonnes selon les onglets ci-dessous avec:

en ligne: les numéros des colonnes de l'onglet "Conso"

en colonne: Numéro des onglets à alimenter

La formule à avoir:

Pour la premiere ligne: Vérifier première cellule à compter de la colonne 2, si vide, saute à la cellule de droite suivante,

SI NON VIDE : ce qui est le cas dans notre tableau car cellule = 33

1.récupère la valeur de la cellule (ce qui correspond au numéro de la colonne ou index colonne dans l'onglet mentionné en entête colonne) (Colonne 33 dans onglet1)

2. Tu vas dans onglet "conso" et tu copie les données de la colonne 1 à partir de la A2 car on prend pas l'entête

3. Tu vas dans onglet1, tu cherches la colonne 33 et tu colles à partir de la cellue en ligne 2 (dans notre exemple Cells(2,33))

4. Loop sur les colonnes: Continue même contrôle à droite jusqu'à colonne 5 du tableau c-dessous

5. Loop sur les lignes jusqu'à la fin : par ligne contrôle toutes les colonnes

#colonne ConsoOnglet 0Onglet1Onglet2 Onglet3
1334
251

Sacré challenge cette macro et je m'en sors pas, pouvez-vous m'aider SVP? Milles mercis à vous

Bonjour et bienvenue sur le forum

Tu devrais joindre ton fichier...

Bye !

Bonjour

Un essai à tester, si j'ai bien compris.

Te convient-il ?

Option Explicit

Dim tabloM, tabloC, tabloF(), f As Worksheet, fc As Worksheet
Dim iC&, iM&, j&, k&, colC&, colF

Sub Report()

    tabloM = Sheets("Mapping").Range("A1").CurrentRegion
    Set fc = Sheets("Conso") '.Range("A1").CurrentRegion
    tabloC = fc.Range("A1").CurrentRegion

    For j = 3 To UBound(tabloM, 2)
        Set f = Sheets(CStr(tabloM(1, j)))
        ReDim tablof(1 To UBound(tabloM, 1), 1 To f.Cells(1, Columns.Count).End(xlToLeft).Column)
        k = 0
        For iC = 2 To UBound(tabloC, 1)
            For iM = 2 To UBound(tabloM, 1)
                If tabloM(iM, j) <> "" Then
                    colF = tabloM(iM, j)
                    colC = tabloM(iM, 1)
                    tablof(k + 1, colF) = tabloC(iC, colC)
                End If
            Next iM
            k = k + 1
        Next iC
        f.Range("A3").CurrentRegion.Offset(2, 0).ClearContents
        f.Range("A3").Resize(k, UBound(tablof, 2)) = tablof
        Erase tablof
    Next j
End Sub

Bye !

Rechercher des sujets similaires à "alimentation automatique colonnes fichier source"