Tri et copie

onyx41

XLDnaute Junior
Bonjour à tous !

J'ai beau chercher, je bute vraiment pour y arriver. J'ai créer une base et j'aimerais pouvoir filtrer mes données suivant le critère " instance " ou "classé" et les recopier dans une autre feuille, se faisant automatiquement à chaque saisie de nouvelles données ou par un bouton affecté.
Je vous joint le fichier en vous demandant de l'aide

Merci d'avance
 

Pièces jointes

  • Base.zip
    16.6 KB · Affichages: 28
  • Base.zip
    16.6 KB · Affichages: 30
  • Base.zip
    16.6 KB · Affichages: 27

JNP

XLDnaute Barbatruc
Re : Tri et copie

Bonjour Onyx41 :),
Ton fichier me parraît très bien fait.
Il te suffit de générer une macro qui va filtrer ta colonne "instance" ou "classé" (filtre automatique), puis dans les 2 cas de faire une copie de ta feuille triée. Etant sous 2007, je ne suis pas sûr que le code sois bon dans ton cas, mais il devrait ressembler à :
Code:
    Sheets("Base").Select
    Range("AU7").Select
    ActiveSheet.Unprotect
    Selection.AutoFilter
    ActiveSheet.Range("$AT$7:$AU$12").AutoFilter Field:=2, Criteria1:="=.", _
        Operator:=xlOr, Criteria2:="=instance"
Maintenant, le problème du filtrage, c'est qu'il bugue facilement si le filtre existe déjà, ce que tu peux résoudre par :
Code:
On Error Resume Next
...Contenu de ta macro...
On Error Goto 0
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : Tri et copie

Re :),
Si je comprends ta demande (pas toujours évident de se mettre dans la tête des autres :eek:), tu souhaites extraire au jour le jour les dossiers en instance. Pour celà, je te propose :
Code:
Private Sub Workbook_Open()
Dim DateDuJour As String
DateDuJour = Year(Now) & "_" & Month(Now) & "_" & Day(Now)
Dim Existe As Boolean
Existe = False
Dim Feuille As Worksheet, NouvelleFeuille As Worksheet
For Each Feuille In ActiveWorkbook.Worksheets
    If Feuille.Name = DateDuJour Then
        Existe = True
        Exit For
    End If
Next Feuille
If Existe = False Then
    Sheets("Instance").Copy before:=Sheets("Base")
    ActiveSheet.Name = DateDuJour
End If
Sheets(DateDuJour).Activate
End Sub
Où la feuille Instance est mise en forme tel que tu le souhaites. Il ne te reste plus qu'à la compléter avec les dossiers en instance.
:cool:
 

onyx41

XLDnaute Junior
Re : Tri et copie

Je ne dirais pas au jour le jour. Disons que lorsque j'execute la macro, une nouvelle feuille ( nommée à la date du jour ) se créée et qui contient la copie des dossiers en instance. Je sais c'est tordu...
Sinon, je n'arrive pas avec ton dernier code..
 

JNP

XLDnaute Barbatruc
Re : Tri et copie

Re :),
Le code plante certainement parce que tu n'as pas créé de feuille "Instance" devant servir de modèle pour ta présentation. Ci-joint ton premier fichier avec le code fonctionnant.
Bon courage :cool:
 

Pièces jointes

  • Base_2.xls
    61.5 KB · Affichages: 51

onyx41

XLDnaute Junior
Re : Tri et copie

Oui, j'ai vu. En fait, c'est que j'aimerais que les données en instance de la base se recopie dedans automatiquement à l'ouverture ( dans le même genre de tableau). J'ai de plus une autre question, c'est au niveau de la base, de pouvoir rechercher un nom ( dans la colonne A) en prenant référence à celui que l'on tape dans une cellule (A1 par exemple)
 

JNP

XLDnaute Barbatruc
Re : Tri et copie

Re :),
En ce qui concerne ton fichier, un certain nombre de colonnes sont masquées, ce qui ne simplifie pas les choses (surtout lorsqu'on ignore pourquoi ...:eek:).
pour les dossiers en instance, il te sufit d'un test:
Code:
Dim I as Integer, J as Integer, LigneTestée as Integer
J = 1
For LigneTestée = 1 to 100
    If Cells(LigneTestée, 47) = "instance" then
        For I = 1 to 57
            Sheets(Date).Cells(J, I)= Sheets("Base").Cells(LigneTestée, I)
        Next I
        J = J + 1
    End If
Next LigneTestée
:cool:
 

onyx41

XLDnaute Junior
Re : Tri et copie

On peut supprimer ces colonnes masquées, il n'y a plus de problème. Peux-tu me dire où je met ce code, je ne suis pas doué en vb, modifier, à peu près, mais placer et créér, c'est pas ça du tout. j'apprend doucement en voyant, je te promet
 

JNP

XLDnaute Barbatruc
Re : Tri et copie

Bonjour :),
Ce code doit être mis dans ton module dans une Sub CopieInstance () par exemple. En n'oubliant pas de rajouter :
Date = Year(Now) & "_" & Month(Now) & "_" & Day(Now)
Sinon, il va te renvoyer une erreur de variable non définie.
Bon courage :cool:
 

onyx41

XLDnaute Junior
Re : Tri et copie

Désolé du retard de mes remerciements, ça fonctionne. Le souci, c'est que je risque de changer encore mon tableau et modifier la façon de faire, mais en tout cas, je garde tes renseignement sous le coude.

Encore un grand merci.
 

Discussions similaires

Réponses
10
Affichages
435

Statistiques des forums

Discussions
312 336
Messages
2 087 388
Membres
103 534
dernier inscrit
Kalamymustapha