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 :

Comment inversé l'ordre d'enregistrement des lignes dans tableau ? [XL-2013]


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
    Ing Genie civil
    Inscrit en
    Février 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ing Genie civil

    Informations forums :
    Inscription : Février 2020
    Messages : 42
    Par défaut Comment inversé l'ordre d'enregistrement des lignes dans tableau ?
    Bonsoir a tous !!!

    Depuis un petit moment je suis confronté à un petit soucis. J'ai écrit un code VBA pour copier les données d'une listebox vers un tableau structuré. Cependant tout se passe bien mais le problème est que une fois insérer les enregistrements dans le tableau, l'ordre est inversé c'est a dire que la dernière ligne de données se retrouve en première ligne et la première ligne se retrouve à la dernière ligne insérer.

    Voici un peux le code
    Dim i as integer
    Dim x as long

    For i=0 To Me.list_des_taches.listcount-1

    Rows(x & ":" & x).insert shift:=xldown

    Cells(x,2)=Me.list_des_taches.list(i,0)
    Cells(x,3)=Me.list_des_taches.list(i,1)
    Cells(x,4)=Me.list_des_taches.list(i,8)

    Le code fonctionne parfaitement à la seule différence que les enregistrements dans le tableau sont renversé comme je l'ai expliqué déjà.
    Toutes aide me sera très utile. Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 182
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je pense qu'un simple tri de la ou des colonnes qui doivent être dans le bon ordre devrait suffire.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Salut,

    Je t'invite plutot à passer par l'objet ListObject, c'est l'interface permettant de manipuler les tableaux structurés.
    La fonction Add() de la propriété ListRows (qui représente les lignes) renvoie une référence vers la ligne ajoutée, ce qui sera beaucoup plus facile à manipuler que de calculer l'adresse d'une plage de cellules quelque part sur la feuille.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Ws As Excel.Worksheet
    Set Ws = ThisWorkbook.Worksheets("Feuil1")
     
    Dim Lo As Excel.ListObject
    Set Lo = Ws.ListObjects(1)
     
    Dim Lr As Excel.ListRow
    Set Lr = Lo.ListRows.Add
     
    Lr.Range.Cells(1).value = "bla bla bla"

  4. #4
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour

    ce qui te fera le moins de modif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i= Me.list_des_taches.listcount-1 to 0 step -1
    Mais si tu veux gagner un peu en performances, insère toutes les lignes d'un coup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(x & ":" & x + Me.list_des_taches.listcount).insert shift:=xldown
    puis en gardant le for dans l'ordre croissant de 0 à listcount,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(x+i,2)=Me.list_des_taches.list(i,0)
    etc.

  5. #5
    Membre averti
    Homme Profil pro
    Ing Genie civil
    Inscrit en
    Février 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ing Genie civil

    Informations forums :
    Inscription : Février 2020
    Messages : 42
    Par défaut Reponse
    Finalement c'est le code suivant que j'ai dû adopter

    For i= Me. List_ des _taches.listcount-1 to 0 step-1


    Que j'ai dû adopter. Il marche très bien.

    Merci a vous tous qui avez apporté vos contributions pour satisfaire mon inquiétudes. Je vous en suis très reconnaissant. Merci

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

Discussions similaires

  1. Somme des lignes dans tableau CROISE DYNAMIQUE
    Par maeva13 dans le forum QlikView
    Réponses: 7
    Dernier message: 24/10/2011, 18h22
  2. Réponses: 3
    Dernier message: 17/02/2011, 10h54
  3. [SQL] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Oracle
    Réponses: 20
    Dernier message: 01/03/2006, 00h00
  4. [Reports 6] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Reports
    Réponses: 2
    Dernier message: 17/02/2006, 17h21
  5. Réponses: 4
    Dernier message: 29/11/2005, 14h14

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