IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer un onglet par date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Par défaut Créer un onglet par date
    Bonjour à tous,


    J'espère que vous allez bien en cette période estivale.


    Je me tourne vers vous pour un problème d'automatisation d'un fichier de suivi. Je vous explique ce que je cherche à réaliser, j'aimerai pouvoir à travers une base extraite toutes les semaines, lancé une macro qui filtre sur la date et qui copie le résultat dans un nouvel onglet. J'aurai donc pour chaque onglet les données correpondants à la date (exemple feuil1 (01_08) feuil2(02_08)...).
    Le fichier de suivi se fait sur une semaine du lundi au samedi.

    Voilà ce que j'ai pu récupérer comme code, qui est un bon début pour mon problème, je dois donc réussir à l'adapter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub FiltreSurDate()
      Dim DLig As Long, StartDate As Long, EndDate As Long
     
     
      Application.ScreenUpdating = False
      With Sheets("Feuil1")
        ' Activer la feuille (n'est pas nécessaire)
       .Activate
        ' Trouver la dernière ligne du tableau
       DLig = .Range("A" & Rows.Count).End(xlUp).Row
        ' Vérifier le filtre auto
       If .FilterMode = False Then
          .Range("A1:AH1").AutoFilter
        Else
          ' Supprimer le filtre sur les dates (au cas ou)
         .Range("A1:AH1").AutoFilter Field:=6
        End If
        ' --Fourchette de date
       StartDate = DateValue("18/05/2015")
        EndDate = DateValue("19/05/2015")
        ' Filtrage des dates selon leur numéro de série
       .Range("A1:AH1").AutoFilter Field:=2, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
        ' Copie des lignes
       .Range("A1:AH" & DLig).Copy Destination:=Sheets("Feuil2").Range("A1")
      End With
      Application.ScreenUpdating = True
    End Sub

    C'est maintenant que ça se complique dans ma tête, je ne sais pas comment procéder. Faut-il créer 6 variables pour chaque jours ?

    Le problème de la saisie manuelle de la date dans le code se pose également.



    Voilà j'espère avoir été clair, n'hésitez pas à me demander plus de renseignements et vous remercie très sincèrement pour l'aide que vous puissiez m'apporter.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quelle est la finalité de sortir chaque journée dans une feuille différente ? quelles données vas-tu manipuler ?

    ne serait-il pas opportun de créer un Tableau Croisé Dynamique, qui te permettra de facilement consulter une journée ?


    (solution annexe, si la description de ton contexte d'utilisation ne sera pas compatible avec un TCD : filtre avancé avec export des données ... totalement automatisable par macro)


    on attend ton retour d'infos.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Par défaut
    Bonjour joe.levrai merci pour ta réponse,


    La finalité de sortir chaque journée dans une feuille différente, c'est que ceci me permet ensuite de faire tourner des requêtes en fonction des données de chaque jours. Exemple je prends les données de la feuil 2 qui correspond au jour X, je réalise ma requête sur business objects et je complète ensuite les données dans Excel.


    Voilà j'espère que ceci répond à ta question, donc passer par un TCD n'est pas envisageable.

  4. #4
    Membre actif
    Homme Profil pro
    Chercheur à pôle emploi
    Inscrit en
    Juin 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur à pôle emploi

    Informations forums :
    Inscription : Juin 2015
    Messages : 43
    Par défaut
    Bonjour, est-ce que le fichier convient ?
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut Re : Créer un onglet par date
    Bonjour,

    Ci-joint un bout de code qui copie des dates (avec le titre de colonne) dans une feuille extraction , puis qui fait une extraction sans doublon, puis un tri et qui via une boucle créée autant d'onglets que de dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Dates()
        Range("r3:r130").Copy
        Sheets("Extraction").Select
        Range("a1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Selection.RemoveDuplicates Columns:=1, Header:=xlYes
        'tri
        Columns("A:A").EntireColumn.Select
        ActiveSheet.Sort.SortFields.Clear
        ActiveSheet.Sort.SortFields.Add Key:=ActiveCell
        With ActiveSheet.Sort
            .SetRange Selection
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
        Range("A2").Select
        While ActiveCell <> ""
        a = ActiveCell
        Sheets("Data").Select
        Range("R3").Select
        ActiveCell.AutoFilter Field:=18, Criteria1:= _
            "=" & CDate(a), Operator:=xlAnd
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Cells.Select
        Cells.EntireColumn.AutoFit
        ActiveSheet.Name = "J " & Format(a, "dd mm")
        Range("A1").Select
        Sheets("Extraction").Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Wend
        Sheets("Data").Select
        ActiveSheet.ShowAllData
    End Sub
    Cordialement

Discussions similaires

  1. [AC-2010] Créer des enregistrements par date à partir d'une période
    Par tangono dans le forum Access
    Réponses: 1
    Dernier message: 23/04/2013, 11h46
  2. [XL-2010] Créer un onglet avec la date du jour
    Par canary dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2012, 13h43
  3. Créer et nommer des onglets par le contenu d'une variable
    Par titi0685 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/09/2010, 23h48
  4. selection par date
    Par adgabd dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/01/2004, 10h28
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo