Transfert de feuille en feuille

Bonjour,

J'ai un énorme problème avec VBA.

J'ai une cinquantaine de feuilles complètement identique à quelques détails près.

J'ai des informations dans les cellules AM18-FZ18 que j'aimerai transférer dans les cellules C7-EP7, C8-EP8, etc dans une feuille qui récapitule toutes les autres.

Cela fait 2 semaines que je galère dessus.

J'ai cherché et essayé, mais la seule chose que j'ai réussi à faire fonctionner c'est :

Range("C7")=sheets("x").range("AM18")

Le "x" étant le nom d'une personne.

Je me dis que de taper ce code en changeant juste les no de cellules est trop compliqué et qu'il y a surement un moyen plus facile pour accomplir ma tâche, mais je ne suis qu'un débutant.

Et si possible, de faire en sorte que l'on puisse mettre à jour automatiquement.

Je vous remercie d'avance pour votre aide

Bonjour,

Tu dois simplement ajouter une boucle ...

Sans voir ton fichier, difficile de deviner le code exact ... mais un truc du genre :

Dim ws As Worksheet
Dim i As Integer
i = 7
For Each ws In Worksheets
   ActiveSheet.Range(Cells(i, 3), Cells(i, 146)) = ws.Range("AM18:FZ18")
   i = i + 1
Next ws

Re,

Merci pour l'aide.

Quand je lance la macro, rien ne se passe.

Je mets un exemple avec 4 feuilles pour garder un peu l'anonymat du reste des personnes.

Re,

Merci pour ton fichier ... cela facilite grandement la discussion ...

Du coup, la macro est ajustée ...

Merci beaucoup.

J'ai copié la formule dans le fichier de base, mais je ne peux toujours pas exécuter la macro.

ça me met erreur 1004 : erreur définie par l'application ou par l'objet.

En haut a droite, sur la liste déroulante, c'est marqué transfert. Quand je le change ene (Déclarations), et que j'exécute la macro, ça m'ouvre la fenêtre de sélection de macro. Je fais exécuter, et là il y a une autre fenêtre qui arrive : La Méthode 'Range' de l'objet'_Worksheet' a échoué.

Je n'ose pas trop toucher à la formule...

Re,

Je t'ajoute les commentaires dans le code ... pour clarifier ce que chaque instruction représente ...

Option Explicit
Sub Transfert()
Dim ws As Worksheet
Dim i As Integer

' permet de sélectionner la Feuille Récap
Feuil1.Range("C7").Select

' permet d'initialiser la variable i
i = ActiveCell.Row

' permet de faire la boucle de toutes les Feuilles ... sauf la Feuille Récap ...
For Each ws In Worksheets
   If ws.Name <> "Récap" Then
      Feuil1.Range(Cells(i, 3), Cells(i, 146)).Value = ws.Range("AM18:FZ18").Value
      i = i + 1
   End If
Next ws

End Sub

Attention, cela signifie qu'il faut que ta Feuille 1 soit bien nommée Récap ...

Re,

Sur le fichier de base, la feuille récap est la feuille 10.

Je me suis dit qu'en modifiant le "Feuil1.Range("C7")" en "Feuil10.Range("C7")" ça fonctionnerai.

Mais au pire je peux aussi modifier mes feuilles pour que la feuille récap puisse être la feuille 1.

Re,

Si ta Feuille Récap est la Feuille 10 ...

Option Explicit
Sub Transfert()
Dim ws As Worksheet
Dim i As Integer

' permet de sélectionner la Feuille Récap
Feuil10.Range("C7").Select

' permet d'initialiser la variable i
i = ActiveCell.Row

' permet de faire la boucle de toutes les Feuilles ... sauf la Feuille Récap ...
For Each ws In Worksheets
   If ws.Name <> "Récap" Then
      Feuil10.Range(Cells(i, 3), Cells(i, 146)).Value = ws.Range("AM18:FZ18").Value
      i = i + 1
   End If
Next ws

End Sub

Merci beaucoup.

C'est super sympa de ta part.

Je vais continuer de suivre les cours qu'il y a sur le site.

Ravi que tu aies finalement trouvé une solution "tip-top" à ton problème ...

Merci pour tes remerciements ...

Rechercher des sujets similaires à "transfert feuille"