Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Répétition macro sur nombre de lignes X

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

thoch63

XLDnaute Nouveau
Bonjour à tous ;

J'aurai besoin de votre expertise pour réaliser une macro Excel

Je dois répéter ma macro sur 350 lignes, savez vous quelle code mettre pour que ma macro en automatique aille chercher ligne par ligne ?

Voici mon code macro:




Sub Macrotesttemplate()
'
' Macrotesttemplate Macro
'

'
Range("A2").Select
Selection.Copy
Sheets("TEMPLATE 1").Select
ActiveWindow.SmallScroll Down:=9
Range("B22").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B23").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("C2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
ActiveWindow.SmallScroll Down:=-21
Range("B3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B8").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("E2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B11").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("F2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B10").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
Range("G2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B4").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("H2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1").Select
Range("B7").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("TEMPLATE 1").Select
Application.CutCopyMode = False
Sheets("TEMPLATE 1").Copy After:=Sheets(2)
Sheets("Sheet1").Select
Range("A3").Select
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
ActiveWindow.SmallScroll Down:=9
Range("B22").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B23").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-21
Sheets("Sheet1").Select
Range("C3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B3").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("D3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B8").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("E3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B11").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("F3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B10").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("G3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B4").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("H3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TEMPLATE 1 (2)").Select
Range("B7").Select
ActiveSheet.Paste
End Sub




Merci à tous ! 🙂
 
Solution
Re,
@Phil69970 😉
@thoch63 : Je partage l'avis de Phil69970. En effet, le code ci-dessous plantera au-delà de 255 onglets.
VB:
Option Explicit

Sub Macrotesttemplate()
    Dim i As Long, dl As Long, Sh As Worksheet
    Application.DisplayAlerts = False
    'on supprime toutes les feuilles "Template.."
    For Each Sh In Worksheets
        If Sh.Name Like "Template*" Then
            Sheets(Sh.Name).Delete
        End If
    Next

    'on traite les lignes
    With Sheets("INFOS BRUTS")
        dl = .Range("A1").CurrentRegion.End(xlDown).Row

        For i = 2 To dl
            Sheets.Add(After:=Worksheets("template")).Name = "Template" & i - 1    'on ajoute et on nomme les feuilles...
Bonsoir,

Pas très clair! Tu as édité un code brut obtenu avec l'enregistreur de macro. Que tu peux déblayer en retirant les select, selection, ActiveWindow.SmallScroll Down:=xx, etc...
Exemple de simplification:
VB:
Application.ScreenUpdating = False
With ActiveSheet
.Range("A2").Copy Sheets("TEMPLATE 1").Range("B22")
'la même chose pour les autres cellules
End With
Application.ScreenUpdating = True

Bonne soirée.

Edit: Bonsoir @Phil69970 😉
 
Désole , je ne suis pas très doué en Excel donc tout devient vite compliqué pour moi …

Je veux copier toutes les infos de la ligne 2 de la feuille "INFOS BRUTS " et les retranscrire sur la feuille "Template" dans les bonnes cellules

Quand toutes ces infos sont ajoutés à "Template"
Créer une copie de la feuille Template

Et ajouter les infos de la ligne 3 de la feuille "INFOS BRUTS "


Mon problème est que je ne sais pas comment apprendre cette automatisation à ma macro pour qu'elle répète l'action jusqu'à la ligne 300 par exemple
 

Pièces jointes

Bonjour,

@thoch63 :
1- Tu nous laisses deviner qu'elles sont les bonnes cellules.
2- tu nous dis copier les infos de la ligne 2, ensuite jusqu'à au moins 300 lignes.

Faudrait-il comprendre que tu cherches à créer une feuille pour chaque ligne de la feuille INFOS BRUTS?

A+
 
Bonjour!

Par exemple :

Cellule A2 (INFOS BRUT) copié vers Cellule B22 (Template)
Cellule B2 (INFOS BRUT) copié vers Cellule B23 (Template)
Cellule C2 (INFOS BRUT) copié vers Cellule B3 (Template)

Il faut que les cellules A2 à H2 soient copiés vers les cellules correspondante sous TEMPLATE

C'est exactement ça , il faut créer une feuille TEMPLATE remplis avec toutes les infos de chaque ligne INFOS BRUTS

J'ai mis un exemple en PJ d'où les infos doivent être copiés


Merci beaucoup en tous cas pour la réactivité 🙂
 

Pièces jointes

Re

Avec 350 onglets c'est pas la peine de te dire que le résultat sera INGERABLE 😵
Désolé mais perso je me refuse à faire un fichier avec 350 onglets qui te sera inexploitable .

Pose toi la question comment tu retrouveras facilement le 189eme onglet
qui correspond à la ligne 189 ==> c'est pratiquement impossible ....

@Phil69970
 
Réactions: cp4
Re @Phil69970 ,

Je ne sais pas si une feuille s'appelle un onglet ,

Mais le but 1° n'est pas de savoir retracer les feuilles,
C'est juste de pouvoir ajouter les informations de chaque ligne à une feuille
Le but n'est pas de retracer mais avoir un gain de temps considérable

Pour t'expliquer, c'est une campagne d'appel sortants que j'ai à réaliser pour mes études
Et j'ai un fichier client de 350 lignes avec toutes les infos que tu retrouve dans la feuille "infos brut" à recopier 1 par 1 sur chaque feuille " Template" pour ensuite dispatcher à mon équipe

Thoch
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
547
Réponses
17
Affichages
1 K
Réponses
1
Affichages
406
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…