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 :

Souci de code VBA pour trier par mois. [XL-2003]


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
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut Souci de code VBA pour trier par mois.
    Bonjour, bonjour. J'ai un petit souci pour mon code VBA, alors voilà, j'ai un tableau, trier par date, et je voudrais une insertion de ligne pour marquer la différence entre chaque mois.

    Je vous montre mon code, car il ne fonctionne pas. pourtant je ne vois pas d'erreur :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Trier_par_date()
     
    Columns("B:B").NumberFormat = "dd/mm/yy"
    q = 1
    For m = 1 To 12
    For u = 1 To Sheets("Crée stat").Cells(3, 2)
    If Month(Cells(u, 2)) = Month(m) Then q = q + 1
    Next
    Rows(q).Insert Shift:=xlDown
    Cells(q, 2) = Month(m)
    q = q + 1
    Next
     
    End Sub
    Voilà, si quelqu'un jette un petit coup d’œil, je le remercierai d'avance.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Si tes données en colonne B sont tous des dates triées par ordre croissant (ou décroissant), ci-joint proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim LastLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        For i = LastLig + 1 To 3 Step -1
            If Month(.Range("B" & i)) <> Month(.Range("B" & i - 1)) Then
                .Rows(i).Insert
                .Range("B" & i) = "Total " & Format(.Range("B" & i - 1), "mmmm")
            End If
        Next i
    End With

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut
    Grand merci encore à toi. T'as solution est beaucoup plus jolie à lire.

    Je l'ai essayé ça marche niquel !

    Bon me reste plus qu'a bien relire ton code, et tout comprendre

    Je t’embête encore un peu ;p, je voudrais savoir pour quoi sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = LastLig + 1 To 3 Step -1
    Tu as mis "to 3", on devrait pas plutôt mettre "to 1" ?

    Je galère encore sur le vba. On peut pas coder en python sur VBA ?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je compare le ligne i avec la ligne i-1
    Si le mois de la cellule i-1 est différent du mois de la cellule i, alors on insère une ligne

    Je me suis arrêté à 3 pour en fin de boucle je compare la cellule de la ligne 2 par rapport à la ligne 3
    J'ai supposé que la ligne 1 est la ligne des titres des colonnes.

    Si tu n'as pas de titres de colonnes, tu arrête la boucle à 2 (pour que la dernière comparaison compare la ligne 1 avec la ligne 2)

    PS: Si tu mets 1! la dernière comparaison va comparer la ligne 0!!! avec la ligne 1.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Code VBA pour un tri par mois
    Par tiralarc03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/01/2015, 13h20
  2. [XL-2010] Code VBA pour trier sur combobox
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/04/2011, 17h56
  3. [AC-2007] Code VBA pour trier un état l
    Par CrasherSEP dans le forum VBA Access
    Réponses: 4
    Dernier message: 18/11/2010, 13h54
  4. [Access 2007] Critère pour Trier par Mois
    Par Jerez62 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 05/06/2008, 17h44
  5. Pb pour trier par mois dans un état
    Par pedrolahn dans le forum IHM
    Réponses: 2
    Dernier message: 17/04/2008, 08h34

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