Macro - spliter une feuille en plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion eddylle
  • Date de début Date de début

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 !

eddylle

XLDnaute Nouveau
Bonjour à tous!

Je travaille actuellement avec un fichier excel de 2501 colonnes. La première colonne étant des dates, les 2500 suivantes sont des données pour 500 actions (donc 5 colonnes par action).

J'aimerais avoir le résultat suivant : Avoir 500 nouvelles feuilles, contenant a chaque fois les 5 colonnes par action. Sur chaque feuille, il faudrait également que le nom de l'action et que la 1ère colonne (la date) soit reprise.

Voici en très simplifié ce que j'aimerais (ici 2 actions au lieu de 500, donc seulement 2 nouvelles feuilles au lieu de 500)

Un très grand merci d'avance!

NB : Ne faites pas attention aux chiffres, ils sont bien sur censés etre les memes lorsqu'on passe du modèle initial au final. C'est juste qu'ici pour aller plus vite j'ai généré une fonction aléatoire.
 

Pièces jointes

Dernière édition:
Re : Macro - spliter une feuille en plusieurs feuilles

Bonjour eddylle
Une proposition
Les feuilles nécessaires sont crées au fur et à mesure, si la feuille existe déja, elle est d'abord vidée de son contenue avant de mettre les nouvelles données.
Sur 500 feuilles je ne promets rien, même pas que tu puisse ouvrir un classeur aussi chargé....
VB:
Sub test()
Dim i&, TTmp As Variant, Tdate As Variant
Dim F As Worksheet, D As Object
Application.ScreenUpdating = False
With Sheets("Initial")
    Tdate = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(3))
    For i = 2 To .Cells(2, .Columns.Count).End(1).Column Step 5
        TTmp = .Range(.Cells(1, i), .Cells(UBound(Tdate, 1), i + 4))
        On Error Resume Next
        Set F = Sheets(TTmp(1, 1))
        If Err Then
            Err.Clear
            Sheets.Add(After:=Sheets(Sheets.Count)).Name = TTmp(1, 1)
            D(TTmp(1, 1)) = ""
            Set F = Sheets(TTmp(1, 1))
        End If
        If Not D.exists(F.Name) Then
            F.Range(F.Cells(1, 1), F.Cells(F.Rows.Count, 1).End(3)(1, 6)).ClearContents
            D(F.Name) = ""
        End If
        F.Cells(1, 1).Resize(UBound(Tdate, 1), 1) = Tdate
        F.Cells(1, 2).Resize(UBound(Tdate, 1), 5) = TTmp
        F.Columns.AutoFit
    Next i
    .Activate
End With
End Sub
Cordialement
 

Pièces jointes

Dernière édition:
Re : Macro - spliter une feuille en plusieurs feuilles

Bonjour,

avec ce code
Code:
Sub Macro1()
'
' Macro1 Macro
'

For i = 1 To 500 Step 5
    Union(Range("A:A"), Range(Columns(i + 1), Columns(i + 5))).Select
    'Range("G1").Activate
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    'on renomme l'onglet du nom du site
    ActiveSheet.Name = Cells(1, 2)
    Sheets("Initial").Activate
    
Next i
End Sub

attention, il va te créer 500 onglets meme si il n'y en a que 2 ou 800 à faire.
dans ce cas. il faut modifier la valeur finale du i..

Edit, salut Efgé..
solution beaucoup plus aboutie ;-)
 
Dernière édition:
Re : Macro - spliter une feuille en plusieurs feuilles

Bonjour tout le monde,

Efgé, Vgendron et dyonis0s, j'ai un problème similaire..Je voudrais faire la même chose, cad splitter le worksheet de la même facon, mais au lieu de creer de nouveaux worksheets, plutot creer de nouveaux workbooks. Pourriez vous m'aider svp?

Un enorme merci pour votre aide
 
Re : Macro - spliter une feuille en plusieurs feuilles

Bonjour TBC et bienvenu sur le forum
Il serait préférable d'ouvrir ta propre discution en donnant quelques explications ainsi qu'un petit fichier exemple anonyme pour que l'on puisse effectuer des tests.
Cordialement
 
- 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

Retour