Copier coller plage variable dans une feuille synthèse

Bonjour, je sais que beaucoup d'autre sujet en parle, mais étant novice en vba, je n'arrive pas à résoudre mon problème
Je voudrais pouvoir créer une feuille de synthèse de plusieurs autres feuilles dans le même classeurs.

Problème : j'ai une erreur "400" lors de l'exécution, le problème vient donc surement des variables qui me servent à définir la range sur laquelle je veut effectuer le copier/coller
Je vous joins, un fichier d'exemple avec les macros que j'ai tester, Listrecap1 marche et je ne comprend pas pourquoi Listrecap non...
Pour l'individu, je peux y remplir manuellement, ne vous compliquez pas la tache, pour le nom, il peut parfois être vide.

Merci d'avance pour votre aide, en espérant trouvez une solution :s
Cordialement.

bonjour,

une proposition

Un énorme merci, sa fonctionne nickel, je comprend pas vraiment le code honnêtement (si vous auriez le temps d'une petite explication pour que je puisse peut-être le faire seul une prochaine fois) mais tant que sa marche je ne vais pas me plaindre.
Encore Merci, vous me sauvez !!!

bonjour,

voici le code commenté

Sub aargh()
    Set wss = Sheets("Synthese") 'wss = feuille synthèse
    For Each ws In Worksheets 'on prend chaque feuille du classeur on y accède dans la suite du code par la variable ws
        If ws.Name <> wss.Name Then 'si le nom de la feuille est <> de synthèse
            dl = wss.Cells(Rows.Count, 1).End(xlUp).Row 'on compte le nombre de lignes de la feuille synthèse
            dc = wss.Cells(1, Columns.Count).End(xlToLeft).Column 'on compte le nombre de colonnes de la feuille synthèse
            For c = 2 To dc ' on passe en revue les colonnes de la feuille synthèse
                d1 = ws.Range("D1") ' on récupère la valeur de la cellule D1 sur la feuille en cours (ws)
                champs = wss.Cells(2, c) 'on récupère l'identifiant de la (des) cellule(s) à récupérer pour cette colonne
                champs = Replace(champs, "&(6+D1)", 6 + d1) 'si l'identifiant contient "&(6+D1)" on remplace cette chaine par le résultat du calcul 6+D1
                Set ch = ws.Range(champs) ' ch est la plage de cellules à récupérer
                nrch = ch.Rows.Count 'nombre de lignes de cette plage
                wss.Cells(dl + 1, c).Resize(nrch, 1).Value = ws.Range(champs).Value 'on copie la plage de cellules dans la synthèse
            Next c 'on passe au champ suivant
            wss.Cells(dl + 1, 1).Resize(d1 + 1, 1).Value = ws.Name 'on recopie le nom de la feuille pour toutes les lignes copiées de cette feuille, en colonne 1
        End If
    Next ws
End Sub
Rechercher des sujets similaires à "copier coller plage variable feuille synthese"