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

Excel Discussion :

Aide pour faire un tri sur Excel


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide pour faire un tri sur Excel
    Bonjour,

    Je suis nouveau ici mais peut être je trouverais de l'aide.

    J'ai un petit soucis, je tien une liste de mes mangas (Ceux acheter puis la suite de la série avec les différentes date de parution).

    Sur ma liste j'ai différent onglet, Liste Général, Achat Aout, Achat Septembre ... comme ça jusqu'en décembre.

    Ce que je voudrait faire ses que le manga présent dans la liste général ou la date de sortie est en septembre par exemple soit automatiquement copier dans l'onglet "Achat Septembre". Je voudrait que tout la ligne soit copié.

    Voici le lien pour télécharger la liste pour m'aider
    http://files.filefront.com/Liste+de+.../fileinfo.html

    Merci par avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut legolas51 et le forum
    Je suis nouveau ici mais peut être je trouverais de l'aide.
    Bienvenue d'abord
    Le but de se ce forum est d'aider à ressoudre les difficultés, plutôt que de créer la solution. Mais entre otaku...
    Le nom de tes feuilles doit obligatoirement commencer par "Achat " et le mois dans une orthographe compréhensible par Excel, avec ou sans majuscules. (Menu>>Outils>>Option>>Liste pers. : il y a une liste de mois, c'est cette orthographe qu'il faut (Août, Décembre par exemple) impérativement)

    Ce que tu demandes ne peut se faire que par macro (à moins d'une usine à gaz).
    Clic-droit sur le nom "Liste Général" => Menu contextuel>>Visualiser le code. Dans la feuille de droite (sous (général) et (Déclaration), tu colles le code suivant (problème avec les pièces jointes, désolé)
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Déclaration ======================================
    Dim F As Worksheet
    Dim Plg As Range, Cel As Range, Cel_1 As Range
    Dim Lig As Long
    Dim Flg As Boolean
    Dim Txt_Msg As String
    'MEI ==============================================
    If Intersect(Target, Columns("C")) Is Nothing Then Exit Sub
    Set Plg = Intersect(Target, Columns("C"))
    'Boucle de Traitement =============================
    For Each Cel In Plg
        'Validité du traitement -----------------------
        If IsDate(Cells(Cel.Row, "C")) Then
            'Recherche feuille ------------------------
            Flg = True
            For Each F In Sheets
                If UCase(Mid(F.Name, 7, 4)) Like UCase(Left(Format(Cel, "mmmm"), 4)) Then
                    Flg = False
                    Exit For
                End If
            Next F
            'Feuille non-trouvée ----------------------
            If Flg Then
                MsgBox Chr(13) & "La feuille ""Achat " & Format(Cel, "mmmm") & _
                 """ n'existe pas ou est mal orthographiée(Voir liste L16)!" & _
                 "VEUILLEZ LA CRÉER AVANT", vbExclamation + vbOKOnly, _
                 "-- FEUILLE ABSENTE --"
                 Exit Sub
            End If
            'MAJ --------------------------------------
            Flg = True
            For Lig = 2 To F.[A65536].End(xlUp).Row
                If Cel.Offset(0, -2) = F.Cells(Lig, "A") And _
                            Cel.Offset(0, -1) = F.Cells(Lig, "B") And _
                            Cel.Offset(0, 4) = F.Cells(Lig, "E") Then
                    F.Cells(Lig, "C") = Cel
                    Flg = False
                    Exit For
                End If
            Next Lig
            'Création ----------------------------------
            If Flg Then
                Rows(Cel.Row).Copy F.Rows(Lig)
                F.Range(F.Cells(Lig, "E"), F.Cells(Lig, "F")).Delete Shift:=xlToLeft
            End If
            Txt_Msg = Txt_Msg & Chr(13) & F.Name
        End If
    Next Cel
    If Txt_Msg <> "" Then MsgBox "Mise à jour de(s) page(s) :" & _
                               Txt_Msg, vbOKOnly, "COPIE VALEURS"
    End Sub
    Attention : même si tu connais la date de sortie, il faut que la colonne C ne soit renseignée qu'en dernier : L'édition d'une cellule de la colonne C déclenche le traitement.
    Si ce n'est qu'une modification de date (à condition de ne modifier que le jour), la macro la mettra à jour sans recréer une ligne.
    A+
    (la liste des mois est en L16 de la feuille "Liste Général")

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de ton aide je vais essayer de comprendre le code si j'ai besoin d'explication je peux te demander?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut
    legolas51Merci de ton aide je vais essayer de comprendre le code si j'ai besoin d'explication je peux te demander?
    ça dépend combien tu payes

    Un code utilisé sans compréhension est immaintanble, donc, n'hésite pas.
    Avoir des lacune n'est pas grave, ce qui est grave, c'est de ne pas vouloir les combler (comme disait Fucius qui étéit loin d'être con).

    UCase(Mid(F.Name, 7, 4)) Like UCase(Left(Format(Cel, "mmmm"),4))
    Mise en majuscules des deux termes, pour éviter les non-égalités dûes aux différences minuscules/majuscules

    Case(Mid(F.Name, 7, 4)) Like UCase(Left(Format(Cel, "mmmm"),4))
    Normalement, je m'en sert avec "*" ou "?" (caractéres génériques qui remplace un texte ou une lettre. Ici on pourrait le remplacer par "="

    Mid(F.Name, 7, 4)
    F.Name : le nom qui apparaît sur l'onglet de la feuille F
    On recherche ici les 4 lettres qui apparaissent à partir de la 7ème position

    Format(Cel, "mmmm")
    La cellule Cel contient une date. On transforme ici la date (01/01/2008 par exemple) en un texte qui représente le mois (janvier)
    Effectivement, j'ai pas testé sur mai, mais ça ne devrait pas poser de problème

    Left(janvier),4)
    renvoi les 4 lettres de gauche : janv

    Si tu as d'autres interrogations, surtout ne pas hésiter
    A+

  5. #5
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Bonjour,

    Je t'en propose un sans macro.

    Pose des questions ici si tu ne comprends pas bien, je ne suis pas en ligne ici très souvent.
    Fichiers attachés Fichiers attachés
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2011, 02h01
  2. Aide pour faire les jointures sur une requête
    Par calitom dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/06/2010, 18h33
  3. [XL-2003] Besoin d'aide pour faire une boucle loop sur une macro
    Par spacesheep dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/04/2010, 11h42
  4. Réponses: 3
    Dernier message: 24/05/2007, 15h46
  5. [VBA-E] Macro Pour Faire un Tri sur plage variable
    Par tabarly35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 19h02

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