Duplication celulle

Bonjour tout le monde,

Dans un sujet précédemment créé, j'avais demandé de l'aide vis à vis de la récupération d'informations disséminées dans différents onglets sur un onglet principal.

La solution qui m'a été proposée est parfaite et a même été au delà de ce que j'espérais puisqu'elle ajoutait des éléments visuels très utiles auxquels je n'avais pas pensé et qui a beaucoup plus à la personne à qui le fichier est destiné.

La macro du fichier (rattachée au bouton "mettre à jour" dans l'onglet "Sommaire") permet de récupérer le contenu de chacun des onglets et de rapatrier ces informations sur l'onglet principal et ajoute automatiquement le nom de l'onglet en colonne A, ce qui est parfaitement ce qui était voulu initialement.

Cependant, la personne est revenue vers moi en me demandant une petite évolution (initialement non prévue).Elle souhaiterait maintenant que le nom des onglets s'affiche en face de chacun des lignes qui sont rapatriées des onglets (comme je le montre dans l'onglet "Résultats_Modif_Macro").

J'ai bien tenté de modifier la macro initiale en déclarant la variable et en ajoutant...

Range("A6"& ln).Select
For Each cell In Selection
    If cell.Value = "" Then
        cell.Value = cell.Offset(-1, 0).Value
    End If
Next cell

...à la fin de la macro (avant le End Sub), ou même à d'autres endroits (toujours avant le End Sub), cependant, la macro continu de bien faire le boulot qui lui est demandé, mais ne tient pas du tout compte de la partie où je lui demande de recopier les informations.

J'ai essayé également d'autres méthodes, mais sans succès.

Quelqu'un aurait-il une idée ou pourrait me dire pourquoi cela ne fonctionne pas?

Je joins une copie du fichier contenant la macro avec la modification non fonctionnelle que j'ai faite:

Par avance, merci pour l'aide fournie.

Bonjour,

De ce que j'ai vu et testé, il suffit de changer cette ligne de code:

Range("A" & ln) = Feuille.Name

En:

Range("A" & ln).Resize(UBound(tablo, 1), 1).Value = Feuille.Name

ça permet de mettre le nom de la feuille d'où vient les données sur toutes les lignes plutôt qu'uniquement sur la ligne des en-têtes

Vous pouvez donc enlever ce que vous avez tenté d'ajouter et juste remplacer cette ligne par la nouvelle.

Résultat:

Option Explicit

Dim Feuille As Worksheet, tablo
Dim ln&, n&, cell

Sub MettreAjour()

    Range("A6").CurrentRegion.Offset(1, 0).Interior.Pattern = xlNone
    Range("A6").CurrentRegion.Offset(1, 0).ClearContents
    n = 0
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "Sommaire" And Feuille.Name <> "Résultats_Modif_Macro" And Feuille.Range("C6") = "Responsable MOA" Then
            tablo = Feuille.Range("A6:I" & Feuille.Range("A" & Rows.Count).End(xlUp).Row)
            ln = Range("B" & Rows.Count).End(xlUp)(2).Row
            Range("B" & ln).Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
            If n = 0 Then
                Range("A" & ln).Resize(UBound(tablo, 1), UBound(tablo, 2) + 1).Interior.Color = RGB(253, 233, 217)
                n = 1
            Else
                n = 0
            End If
            Range("A" & ln).Resize(UBound(tablo, 1), 1).Value = Feuille.Name
            Erase tablo
        End If
    Next Feuille
End Sub

PS: je me suis permis de remplacer le nom f par Feuille parce que je préfère quand les variables ont des noms qui me parlent...

Han, super merci!

J'avais bien compris que c'était bien la ligne

Range("A" & ln) = Feuille.Name

sur laquelle il fallait jouer, mais impossible de trouver la méthode qui fonctionnait.

Pour ce qui est d'avoir renommer la variable, pas de souci, c'est vrai que c'est plus parlant quand tu lis le code (surtout quand ça n'est pas le tiens), mais étant débutant j'avoue que quand quelqu'un me propose une solution qui fonctionne, j'essaye de comprendre comment ça fonctionne mais je bidouille pas trop histoire de pas tout casser hehehe

Merci, encore en tout cas, c'est nickel et ça va plaire à la personne

Pas de problème,

j'avoue que le code n'était pas évident à comprendre comme je ne suis pas celui qui l'a fait et qu'on a pas les mêmes habitudes de codage...

Content que ça fasse le travail, merci d'avoir passé le sujet en résolu

Bonne journée

Avec plaisir.

Merci également pour les petites explications.

Rechercher des sujets similaires à "duplication celulle"