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 :

incompréhension tri dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut incompréhension tri dates
    Bonjour, je souhaiterais bien comprendre le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub question1()
      Dim annee As Integer
      Range("A6").Select
      Do
        annee = Year(Selection.Value)
        If Year(Selection.Offset(1, 0).Value) <> annee Then
          Selection.Offset(1, 0).EntireRow.Insert
          Selection.Offset(2, 0).Select
        Else
          Selection.Offset(1, 0).Select
        End If
      Loop While Selection.Value <> ""
    End Sub
    Pourriez-vous le commenter ?

    Notez que voici le problème dont le code ci-dessus est censé être la solution :

    Trier les données dans l'ordre croissant des dates, puis écrire un programme qui permet de d'insérer une ligne vide entre les différentes années.

    Je ne vois pas en quoi ça trie quoi que ce soit.

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    donc on est bien d'accord, il n'y a aucune instruction de tri dans ce code.

    voila les commentaires
    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
    Sub question1()
      Dim annee As Integer
      Range("A6").Select
     
      'ici on commence une boucle qui va parcourir tout ton tableau jusqu'à trouvé une cellule vide dans la colone A
      Do
        'on mémorise l'année correspondant au contenu de la cellule active
        annee = Year(Selection.Value)
        'on vérifie si l'année de la ligne suivante est égale à l'année de la ligne en cours
        If Year(Selection.Offset(1, 0).Value) <> annee Then
            'si c'est le cas on insère une ligne
          Selection.Offset(1, 0).EntireRow.Insert
          'on se décale de 2 ligness (oui, tu veins d'insérer une ligne vide !
          Selection.Offset(2, 0).Select
        Else
            'si on est sur la même année on passe simplement à la ligne suivante
          Selection.Offset(1, 0).Select
        End If
        'fin de la boucle
      Loop While Selection.Value <> ""
    End Sub
    J'ajoute un commentaire :
    Moins tu .select dans ton code, mieux c'est en terme de rapidité d'exécution.

    GG

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par Matthieu_12 Voir le message
    Notez que voici le problème dont le code ci-dessus est censé être la solution :

    Trier les données dans l'ordre croissant des dates, puis écrire un programme qui permet de d'insérer une ligne vide entre les différentes années.

    Je ne vois pas en quoi ça trie quoi que ce soit.
    D'après l'énoncé le tri n'est pas dans le programme, il est fait avant

Discussions similaires

  1. Tri Dates variable tableau
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2012, 19h25
  2. [AC-2007] Tri - Date Formaté - ordre croissant - Etat/Requête
    Par rch05 dans le forum IHM
    Réponses: 24
    Dernier message: 21/03/2011, 14h47
  3. Réponses: 35
    Dernier message: 12/03/2010, 10h34
  4. Tri date avec format spécial
    Par jojom13 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/01/2008, 15h21
  5. tri dates dans fenêtre modale
    Par TBMB51 dans le forum IHM
    Réponses: 1
    Dernier message: 12/11/2007, 09h12

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