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 :

Réorganisation d'un tableau [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2021
    Messages : 21
    Par défaut Réorganisation d'un tableau
    Bonjour forum,
    Deuxième discussion pour ma part, qui j'espère, sera aussi fructueuse que la première.
    J'ouvre cette discussion à propos d'une macro que je souhaiterais faire. Cela est en rapport avec la réorganisation d'un tableau. Voici une capture pour que vous visualisiez mon problème :
    Nom : Capture.PNG
Affichages : 163
Taille : 26,9 Ko

    En partant du tableau de gauche, j'aimerais arriver à celui de droite, mais ceci sur le même tableau, je m'explique :
    J'aimerais que le tableau ("A3:C22") se réorganise en fonction de la colonne A. J'aimerais mettre une boucle If avec pour conditions un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If Range("A3").Value = "B" OR Range("A3").Value = "F" OR Range("A3").Value = "L"
    ...
    La boucle parcourrait tout le tableau et couperait la ligne où se trouve un B, un F ou un L et la collerait à partir de la ligne 17.
    De plus il faudrait que quand une ligne est coupée, toutes les lignes de 4 à 16 remontent d'un cran pour combler les trous.
    J'espère avoir été assez clair dans mes propos.
    Merci d'avance pour vos pistes.

  2. #2
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Voici une proposition de code qui fait ta demande.

    Attention le code est préfait pour ton exemple précis. A toi de le modifier pour prendre en compte un nombre de lignes ou de colonnes variables par exemple. C'est un début qui est largement optimisable.

    On pourrait également mettre tes valeurs critères ("b", "f", "l" et d'autres qui pourraient arriver) dans un second tableau qui les contiendrait toutes et ainsi le code pourrait lire ce tableau et ne pas mettre ces valeurs en dur dans le code.

    Teste et dis nous.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    J'ai vu que tu as ouvert un autre fil concernant le tri de cellules non contiguës.

    Je ne sais pas si ton fil précédent est en rapport avec celui-ci mais dans le doute voici le même code de réorganisation de tableau qui en plus te fait un tri croissant de tes données.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    Ceci ne répond pas entièrement a ta demande mais devrait pouvoir t'aider a avancer.

    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
    Sub essai()
     
    derniereligne = Range("A3").End(xlDown).Row
     
    For ligne = 3 To derniereligne
     
    If Cells(ligne, 1).Value = "B" Or Cells(ligne, 1).Value = "F" Or Cells(ligne, 1).Value = "L" Then
    derniereligne = derniereligne + 1
    Range(Cells(derniereligne, 5), Cells(derniereligne, 7)).Value = Range(Cells(ligne, 1), Cells(ligne, 3)).Value
     
    Else
     
    Range(Cells(ligne, 5), Cells(ligne, 7)).Value = Range(Cells(ligne, 1), Cells(ligne, 3)).Value
    End If
     
    Next
    End Sub

    Bonne soirée

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2021
    Messages : 21
    Par défaut
    Merci beaucoup pour toutes vos solutions, je les teste demain et vous redis !
    Bonne soirée à tous

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2021
    Messages : 21
    Par défaut
    Bonjour,
    J'ai complètement oublié de vous donner une réponse. Vos deux techniques fonctionnent et peuvent servir donc ça aidera peut-être d'autres personnes sur ce forum.
    Pour ma part j'ai utilisé une autre technique propre à mon fichier Excel donc un peu compliqué de la détailler ici.
    Merci pour votre aide en tout cas !
    Bonne journée à vous

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

Discussions similaires

  1. Réorganisation d'un tableau
    Par samybelarbi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 26
    Dernier message: 09/05/2014, 11h30
  2. Réorganiser un tableau
    Par jiojio dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 13/07/2009, 12h27
  3. réorganiser un tableau
    Par Mo_Poly dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/11/2007, 05h47
  4. [Tableaux] Réorganiser un tableau apres un merge()
    Par Death83 dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2006, 01h39
  5. [Tableaux] Réorganiser un tableau
    Par skea dans le forum Langage
    Réponses: 6
    Dernier message: 03/01/2006, 11h59

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