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

O

onyx41

Guest
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

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 😎
 
Re : Tri et copie

Re 🙂,
Si je comprends ta demande (pas toujours évident de se mettre dans la tête des autres 😱), 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.
😎
 
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..
 
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 😎
 

Pièces jointes

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)
 
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 ...😱).
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
😎
 
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
 
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 😎
 
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.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
1 K
Retour