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

Ventilation dans feuilles différentes

  • Initiateur de la discussion Initiateur de la discussion Jiheme
  • 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 !

Jiheme

XLDnaute Accro
Bonjour le Forum,

Je bloque complètement sur le point suivant qui est d'ailleurs le dernier de mon projet (au moins pour l'instant...).

Le problème est de ventiler toutes les lignes d'une feuille "Contrat" en fonction du nom du client sur l'onglet correspondant à ce client (l'onglet porte le nom du client).

Des explications peut être un peu plus claire sur le fichier.

Merci
A+
 

Pièces jointes

Re : Ventilation dans feuilles différentes

Bonjour Jiheme

regarde le code ci-dessous, mais suppose qu'il y ait au moins déjà un enregistrement pour chaque clients, ce qui n'est pas le cas dans le fichier joint, moins facile à gérer les lignes vides :

Code:
Sub test()
Dim i As Integer
For i = 10 To Range("D65536").End(xlUp).Row
    Range(Cells(i, 1), Cells(i, Range("IV" & i).End(xlToLeft).Column)).Copy _
        Sheets(Range("D" & i).Value).Range("A65536").End(xlUp).Offset(1, 0)
Next i
End Sub

bon après midi
@+
 
Re : Ventilation dans feuilles différentes

Re

pour gérer enregistrement à partir de la ligne 10 :

Code:
Option Explicit
Sub test()
Dim i As Integer, x As Integer
For i = 10 To Range("A65536").End(xlUp).Row
    x = Sheets(Range("D" & i).Value).Range("A65536").End(xlUp).Offset(1, 0).Row
    If x < 10 Then x = 10
    Range(Cells(i, 1), Cells(i, Range("IV" & i).End(xlToLeft).Column)).Copy _
        Sheets(Range("D" & i).Value).Range("A" & x)
Next i
End Sub

@+
 
Re : Ventilation dans feuilles différentes

Bonjour Jiheme, Pierrot 🙂,

voici un code qui vide d'abord les onglets (pour éviter les doublons si je ne me trompe pas).
Code:
Sub test()
  Dim NomClt As Range, TrouveNom As Range
  Dim firstAddress As String
  'on récupère la liste de nom
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each NomClt In Range([D10], [D10].End(xlDown))
    If Not MonDico.Exists(NomClt.Value) Then MonDico.Add NomClt.Value, NomClt.Value
  Next
  'on désactive les macros évenementielles car pas applicable je pense
  Application.EnableEvents = False
  For Each v In MonDico
    With Sheets(v)
      'on vide tous les onglets concernés
      DerLig = .[A1].SpecialCells(xlCellTypeLastCell).Row
      .Rows("10:" & DerLig).ClearContents
      'on alimente tous les onglets concernés
      Set TrouveNom = Columns("D").Find(v, LookIn:=xlValues, lookat:=xlWhole)
      firstAddress = TrouveNom.Address
      LigSuiv = 10
      Do
        TrouveNom.EntireRow.Copy .Rows(LigSuiv)
        LigSuiv = .[D65536].End(xlUp).Row + 1
        Set TrouveNom = Columns("D").FindNext(TrouveNom)
      Loop While Not TrouveNom Is Nothing And TrouveNom.Address <> firstAddress
    End With
  Next
 
  'on résactive les macros évenementielles
  Application.EnableEvents = True
End Sub
 
Re : Ventilation dans feuilles différentes

Bonjour Pierrot, Skoobi

Désolé pas eu le temps de faire des essais hier...

Un grand merci à vous deux cela marche impec avec un petit "mix" entre autre l'idée de désactiver les macros évenementielles... pour l'effacement des feuilles clients, j'ai préféré faire appel au module externe que j'avais écrit, ce qui me permet entre autre d'effacer sans faire de mise à jour.

Encore merci et sûrement à bientôt, car il y a en prévision un second volet de développement, je ne sais pas si tout le monde est comme moi, mais dès que le projet initial est Ok je me pose la question de savoir comment l'améliorer!!!

A+
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…