XL 2013 Séparer une base de donnée excel en plusieurs onglets selon une quantité voulue

chac10

XLDnaute Junior
Bonjour à toute la communauté,
J'ai une nouvelle mission :) , vous pourrez peut être m'aider à la résoudre.
Je souhaiterais séparer entièrement un fichier Excel contenant un grand nombre de ligne, en plusieurs onglets qui contiendront aux maximum un nombre de 500 lignes.
Il faudrait que chaque onglet soit séparé avec les mêmes en tètes que le fichier d'origine.

Est ce possible de mettre en place un code vba pour ce type de demande ?
J'ai joins un fichier avec le résultat attendu.
Il y a bien 25 colonne dans mon fichier d'origine.
Le nombre de ligne varie.

Chac10
 

Pièces jointes

  • Modèle objectif séparation d'une base de donnée en plusieurs onglets de taille prédéterminée.xlsx
    159.6 KB · Affichages: 27

chac10

XLDnaute Junior
Bonjour Cathodique,
Pourquoi n'importe quoi ?
Je ne peux pas mettre des données confidentielles . Et ta réponse et plus irrespectueuse que mon fichier.
1er onglet le fichier source que souhaite séparé, les onglets qui suivent représentent le résultat attendu.
Si tu ne comprends pas pose la question. Je ne vois pas comment faire autrement et
Je pense y avoir mis le sérieux qu'il fallait.
Si , mon travail ne te plaît pas, rien ne t'oblige de m'aider.
Merci,

chac10
 

cathodique

XLDnaute Barbatruc
Bonjour Cathodique,
Pourquoi n'importe quoi ?
Je ne peux pas mettre des données confidentielles . Et ta réponse et plus irrespectueuse que mon fichier.
1er onglet le fichier source que souhaite séparé, les onglets qui suivent représentent le résultat attendu.
Si tu ne comprends pas pose la question. Je ne vois pas comment faire autrement et
Je pense y avoir mis le sérieux qu'il fallait.
Si , mon travail ne te plaît pas, rien ne t'oblige de m'aider.
Merci,

chac10
Personne ne t'as demandé de mettre des données confidentielles. C'est même vivement déconseillé.
J'espère qu'une autre personne comprendra les tenants et aboutissants au vu de ton fichier.
Moi, je n'ai rien compris. C'est raison pour laquelle je ne peux pas t'aider.
Et, ce n'est pas ainsi que tu vas susciter l'envie de t'aider.
Sur ce, bonne continuation.
 

chac10

XLDnaute Junior
Non, on ne s'adresse pas à quelqu'un de cette façon. Il ne faut pas inverser les rôles.
Si tu ne comprenais pas mon fichier , il suffisait de le dire avec la forme et la politesse qu'il convient.
Et certainement pas en sous entendant que je prenais les utilisateurs pours des imbéciles ou encore que mon fichier n'était pas sérieux… On ne parle aux gens de cette manière.

Et pour information, c'est ton mail qui est dérangeant et qui du coup fait réfléchir à deux fois avant de demander de l'aide. Je te laisse réfléchir à ça. Peut être qu'à l'avenir tu diras les choses avec un peu plus de respect, sinon tant pis, tu ne seras pas le premier ni le dernier.

On demande de l'aide sur cette plateforme pas à se faire insulter.
Bonne journée,
Chac 10.
 

cathodique

XLDnaute Barbatruc
Non, on ne s'adresse pas à quelqu'un de cette façon. Il ne faut pas inverser les rôles.
Si tu ne comprenais pas mon fichier , il suffisait de le dire avec la forme et la politesse qu'il convient.
Et certainement pas en sous entendant que je prenais les utilisateurs pours des imbéciles ou encore que mon fichier n'était pas sérieux… On ne parle aux gens de cette manière.

Et pour information, c'est ton mail qui est dérangeant et qui du coup fait réfléchir à deux fois avant de demander de l'aide. Je te laisse réfléchir à ça. Peut être qu'à l'avenir tu diras les choses avec un peu plus de respect, sinon tant pis, tu ne seras pas le premier ni le dernier.

On demande de l'aide sur cette plateforme pas à se faire insulter.
Bonne journée,
Chac 10.
Je t'invite à ré-ouvrir ton fichier joint au post#1.
D'après ce que j'ai souligné et mis en gras, tu as l'habitude...
Je sais ce qui me reste à faire.
 

chac10

XLDnaute Junior
Cathodique,
Il semblerait que tu ne comprennes pas le message, comme les précédents d'ailleurs. Néanmoins, fais ce que tu veux. Petite conseil, fais autre chose vraiment. Tu n'es pas fait pour venir en aide aux gens.
A mon avis, tu as une autre mission ici qui ne colle pas vraiment avec l'état d'esprit de la plateforme...
Merci de ne plus m'écrire.

Chac10
 

job75

XLDnaute Barbatruc
Bonjour chac10, cathodique,

Ne vous fachez pas, cathodique a mal compris c'est tout.

Rien de très compliqué :
VB:
Sub Partager()
Dim nlig&, F As Worksheet, n&, P As Range
nlig = 500 'à adapter
Set F = Feuil1 'CodeName, à adapter
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'---supprime les feuilles---
For n = Worksheets.Count To 1 Step -1
    If Worksheets(n).Name <> F.Name Then Worksheets(n).Delete
Next
'---ajoute les feuilles nécessaires---
Set P = F.[A1].CurrentRegion
For n = 1 To Application.RoundUp((P.Rows.Count - 1) / nlig, 0)
    With Sheets.Add(After:=Sheets(Sheets.Count))
        .Name = "Campagne " & n
        P.Rows(1).Copy .[A1]
        P.Rows(2 + nlig * (n - 1)).Resize(nlig).Copy .[A2]
        .Columns.AutoFit 'ajustement largeurs
    End With
Next
With ActiveSheet.UsedRange: End With 'actualise la barre de défimement verticale de la dernière feuille
F.Activate
End Sub
A+
 

Pièces jointes

  • Partager(1).xlsm
    96.5 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 899
Membres
101 834
dernier inscrit
Jeremy06510