Dispatching données sur plusieurs onglets

clemzor

XLDnaute Nouveau
Bonjour à toutes et à tous,

Etant novice en VBA et nouveau sur ce forum, je me permets de faire appel à vous.

Voici mon cas de figure :

J'ai un fichier de données, ici nommé Nancy 06 2013.

Etape une :
Colorer les lignes en vert dont le COPE APE (colonne F) est égal à 011A ; 011C ; 011D ; 011F ; 011G ; 012A ; 012C ; 012E ; 012J ; 013Z ; 014A ; 014B ; 014D ; 015Z
Dispatcher les données de ce fichier, sur plusieurs onglets : 1 onglet par groupe (406 ; 451 ; 426 ; 870 ; 540 ; 485 ; 875) en faisant en sorte que la date d'échéance (colonne O) soit classée du plus ancien au plus récent

Etape deux : affectation automatisée des dossiers aux collaborateurs de mon équipe

Il faudrait dans une macro définir le mois qui nous intéresse sur le fichier, ici par exemple du 01/08 au 31/08/2013 (colonne O) et que pour chaque collaborateur j'indique le nombre de dossier à lui affecter dans un fichier annexe.

Etant donné, que dans l'ordre il faudrait d'abord affecter les RD : D11 D4 et D3 (colonne L) puis ensuite affecter par ordre d'échéance, c'est à dire 01/08, 02/08, 03/08 etc..., sachant que du moment où la colonne R est renseignée, le dossier est considéré comme traité et ne doit pas être affecté.

Le but étant d'insérer de manière automatique les initiales du collaborateur dans la R en suivant la logique d'affectation ci dessus.

Nous pourrions nous servir du dossier mis en pièce jointe, pour que la macro aille chercher combien de dossier affecter à chaque collaborateur pour chaque ville.

Par exemple, indiquer 10 dans la colonne 406 pour le collaborateur LM. Ce qui reviendrait à affecter dix dossiers à LM sur l'onglet 406 en respectant le fait de d'abord affecter les RD : D11/D4/D3 du mois M concerné et dès qu'il n'y a plus ces RD affecter par ordre chronologique, sachant que nous pouvons affecter à un même collaborateur des dossiers sur plusieurs onglets.

Dernière étape :
Lancer une impression automatisée qui reprendrait pour chaque collaborateur la liste de dossier qui lui a été attribués pour chacun des onglets

Celà me parait assez compliqué, et j'espère que vous pourrez m'aider à réaliser cet outil qui me permettrait de gagner un temps considérable au travail.
Je me rends compte de l'ampleur du travail, mais pensez vous qu'il soit réalisable ?

Je vous remercie et vous souhaite une bonne journée.
 

Pièces jointes

  • NANCY 06 2013 appure.xlsx
    276.6 KB · Affichages: 53
  • suivi affect hebdo.xls
    36.5 KB · Affichages: 48
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Dispatching données sur plusieurs onglets

Bonjour à tous,

Un essai pour la première étape

VB:
Option Explicit

Sub Agence()
    Dim Sh As Worksheet
    Dim Cel As Range
    Dim DerLig As Long
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
    For Each Sh In Sheets
        If Sh.Name <> "Data" And Sh.Name <> "Modèle" And Sh.Name <> "APE" Then
            Sh.Delete
        End If
    Next Sh
    Sheets("Modèle").Visible = True
    With Sheets("Data")
        Columns("A:T").Select
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("O2:O10000"), _
                             SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SetRange Range("A1:T10000")
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
        Range("A1").Select
        DerLig = .[A65000].End(xlUp).Row
        .Range("A1:T" & DerLig).Name = "Base"
        .[Z1] = .[B1]
        .Range("B1:A" & DerLig).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("Z1"), Unique:=True
        For Each Cel In .Range("Z2:Z" & .[Z65000].End(xlUp).Row)
            If Cel.Value <> "" Then
                .[Z2] = Cel.Value
                Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
                ActiveSheet.Name = Cel.Value
                .Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range("Z1:Z2"), _
                                              CopyToRange:=Range("A1:T1"), Unique:=False
                ActiveSheet.Cells.EntireColumn.AutoFit
            End If
        Next Cel
        .Columns(26).Clear
        .Select
    End With
    Sheets("Data").[A1].Select
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
    Sheets("Modèle").Visible = False
    Sheets("APE").Visible = False
End Sub

A+ à tous
 

Pièces jointes

  • JC Ventilation par Agence.xlsm
    315.1 KB · Affichages: 63

eriiic

XLDnaute Barbatruc
Re : Dispatching données sur plusieurs onglets

Bonjour,

peut-être que poster sur plusieurs forum dissuade ?
Surtout pour un travail qui demanderait plusieurs heures, pour rien pour certains.
Il faudrait être un peu plus réglo.
eric
 

clemzor

XLDnaute Nouveau
Re : Dispatching données sur plusieurs onglets

Bonjour,

peut-être que poster sur plusieurs forum dissuade ?
Surtout pour un travail qui demanderait plusieurs heures, pour rien pour certains.
Il faudrait être un peu plus réglo.
eric

Bonjour Eric,

J'avoue ne pas bien saisir le caractère "non reglo" de poser une problématique sur différents forums.
Sauf erreur, j'ai toujours pris le soin de répondre à mes différents interlocuteurs, en les remerciant.
Le fait d'être sur plusieurs forums permet d'avoir également des points de vue différents qui pourraient étayer ma vision du problème (des personnes peuvent voir/penser à des choses que j'ai omises)

Je me rends bien compte du travail demandé, mais j'ai toujours pris soin de faire en sorte que les personnes ne travaillent pas pour "rien" que ce soit sur des forums liés à Excel, ou sur d'autres.

Bonne journée
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16