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

creer un nouveau fichier

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 !

sev31130

XLDnaute Impliqué
bonsoir,


A partir d une feuille je voudrais créer 3 feuilles ....le plus facile c'est de lire dans ma page de commentaires(fichier joint) ce que je veux faire, mais je ne sais pas faire

fichier joint par avance merci
ces feuilles font partie d 'un classeur trop lourd pour l envoyer comlet mais je peux si vous me dites comment faire vous l'envoyez
merci par avance
 

Pièces jointes

Re : creer un nouveau fichier

Bonjour sev31130,

Ce problème peut se régler par formules matricielles mais c'est bien plus simple en VBA.

La macro à placer dans le ThisWorkbook (Alt+F11) :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim lettre As String, F As Worksheet, lig As Long
lettre = Right(Sh.Name, 1)
If InStr("TPO", lettre) = 0 Then Exit Sub
Set F = Sheets("ecart G")
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
For lig = lig To 5 Step -1 'adapter le 5 éventuellement
  If Sh.Cells(lig, "E") <> lettre Then Sh.Rows(lig).Delete
Next
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : creer un nouveau fichier

Re,

Si le tableau source est très grand (plusieurs années), la suppression ligne par ligne prend trop de temps.

Pour supprimer les lignes d'un seul coup :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim lettre As String, F As Worksheet, lig As Long
lettre = Right(Sh.Name, 1)
If InStr("TPO", lettre) = 0 Then Exit Sub
Set F = Sheets("ecart G")
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig < 5 Then Exit Sub 'adapter le 5 éventuellement
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
  Me.Names.Add "matrice", .Value 'nom défini par une matrice
  .FormulaArray = "=LN(matrice=""" & lettre & """)"
  .Value = .Value
  .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
  On Error Resume Next
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .Value = lettre
  Me.Names("matrice").Delete
End With
End Sub
Le tri place les valeurs d'erreur en bas, ce qui accélère leur suppression.

Fichier (2).

A+
 

Pièces jointes

Re : creer un nouveau fichier

bonjour,

tu as cerné ce que je voudrais faire, je te remercie énormément, le problème, j'ai un certain age (72 ans) j'ai passion pour les courses et l'informatique, mais je ne vais pas pouvoir faire ce que tu me dis, je ne sais pas le faire, et j'ai peur de casser ce qui existe déjà.
Je te demande si c'est possible que je te fasse un envoi du fichier complet (soit tu me donnes une astuce pour l'envoyer, soit je me débrouille) et que tu fasses directement dans le fichier et tu me le retournes.
Tu vas dire que je suis exigeant ...je m'en excuses

Par avance merci

yves
 
Re : creer un nouveau fichier

Re,

Très bien mais il faut nous dire ce que tu veux faire.

Quelles sont les feuilles à renseigner => précise pour chacune la feuille source.

A priori il y a plusieurs années, donc il faudra adapter la macro du post #3.

A+
 
Re : creer un nouveau fichier

regarde sur la feuilles commentaire il y a ce que j ai besoin merci
feuille source ecart G pour ecart GP - ecart GT -ecart GO
feuille source ecart P pour ecart PP - ecart PT - ecart PO
ces feuilles source ne prennent en compte que l'année 2013
 
Re : creer un nouveau fichier

allo
si c'est plus facile on peut prendre la source sur la feuille pronos des colonnes V a la colonne AA en prenant la date en B
pour remplir toutes les feuilles a créer..car en fait ecart G et ecart P prennes toutes leurs sources sur cette feuilles
 
Re : creer un nouveau fichier

Allo allo si c'est plus facile pour vous ...sur toutes les feuilles du classeur, ne gardait que l'année 2013, à condition que tous les calculs qui sont fait soit juste, car en fait j ai des archives de tout le reste...et finalement cela m arrangerais car au moins ce serait propre et que l année en cours

MILLE MERCI DE TOUS LES ENNUIS QUE JE VOUS CAUSE
 
Re : creer un nouveau fichier

Re,

Voici le fichier adapté sur cjoint.com :

http://cjoint.com/?CIfl1a2nKe5

Comme il y a 2 feuilles sources j'ai paramétré la macro.

Toujours dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Copie Sheets("ecart P"), Sh
Copie Sheets("ecart G"), Sh
End Sub

Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig < 5 Then Exit Sub 'début en ligne 5
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
  Me.Names.Add "matrice", .Value 'nom défini par une matrice
  .FormulaArray = "=LN(matrice=""" & lettre & """)"
  .Value = .Value
  .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
  On Error Resume Next
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .Value = lettre
  Me.Names("matrice").Delete
End With
End Sub
A+
 
Re : creer un nouveau fichier

voila il en fallait pas plus pour me rendre heureux ....par contre je ne sais pas comment faire pour te remercier...
même si je change la taille des caracteres, ils nes serons jamais assez gros pour exprimer mon MERCI

Question : elle est un peu en avance mais je prefere être prevoyant : comme je vais ouvrir un dossier 2014, si je fais un deplacer/copier, et avec remise à 0 des lignes est ce que j'aurais le même résultat ? ou me dire la conduite a tenir, afin de ne pas venir vous ennuyer encore ....

PAR AVANCE MERCI
 
Re : creer un nouveau fichier

Re,

Pas compris ce que tu feras en 2014 mais ça n'a aucune importance.

Les macros traitent les feuilles sources que l'on veut, quel que soit leur contenu.

Ce qui ne doit jamais changer :

- la ligne 5 => 1ère ligne des lettres qui permettent le filtrage

- la colonne E => colonne des lettres.

Edit : la lettre utilisée pour le filtrage est toujours la dernière du nom de la feuille activée.

A+
 
Dernière édition:
- 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

  • Question Question
Microsoft 365 Suivi de budget
Réponses
5
Affichages
291
  • Question Question
Réponses
32
Affichages
766
Réponses
2
Affichages
188
Deleted member 453598
D
  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
290
Réponses
8
Affichages
436
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…