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 :

classer des blocs de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut classer des blocs de cellules
    Bonjour a tous

    En cette période de fête, je dois classer des blocs de cellules en fonctions d une valeur prise par une cellule du bloc.
    Mais je sais pas trop comment faire sachant que chaque bloc a plusieurs lignes qui doivent etre deplacée, je peux pas utiliser le tri excel classique

    Mon exemple est plus claire dans le petit classeur joint

    Merci beaucoup pour votre aide, conseils, suggestions, code...
    et bonne fête a tous
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    je dois classer des blocs de cellules en fonctions d une valeur prise par une cellule du bloc.
    Commence par classer ces valeurs dans un tableau à deux dimensions, la première fournissant l'ordre, la valeur de la cellule et la plage du bloc correspondant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NoBloc(1,1) = La valeur de la cellule
    NoBloc(1,2) = LaPlage du bloc correspondant
    Tu peux éviter le tableau si, pour le tri, tu recopies les valeurs de chaque cellule qui t'intéresse dans une colonne et la plage du bloc correspondant dans la colonne voisine, ceci dans une autre feuille de calculs. Il te reste à effectuer un tri classique sur les valeurs.
    Juste une idée

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Merci pour ta réponse

    Mon probleme c est que ta solution me depasse un peu.

    Si j ai bien compris (et j en doute) tu me proposes dans ta "solution 2" de recopier sur une autre feuille les cellules sur lesquelles je me base pour effectuer mon classement en (i,1), avec en vis a vis les coordonnées de la page de cellule associée en (i,2)
    Comme ca je peux faire mon tri excel classique.
    Et après, une fois le tri effectué il me suffirait d'insérer la plage de cellule indiquée en (i,2)

    C es bien ca ?
    je t avoue etre un peu paumé sans exemple
    est ce que tu pourrais me faire une amorce de code sur le fichier que j ai joint dans mon 1er message
    La ou je bloque c est pour coder l inscription de la plage correspondante en face de chaque nom en G6. Apres je devrais pouvoir me debrouilller.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
     
    Dim i As Integer, n As Integer
    n = Range("c6").End(xlDown).Row
     
    For i = 6 To n Step 4
    Cells(i, 7).Select
    Selection.formular1c1 = 'la je sais pas quoi ecrire pour specifier les coordonnées de la plage de cellule
     
    End Sub

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tes blocs sont-ils nommés ?

  5. #5
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Non
    je pourrais nommer chaque plage mais ca serait trop long
    car mes listes de blocs sont enormes.

    a moins de faire une macro qui les nomment en cascade
    Ton approche est astucieuse mais je crois que j ai pas les connaissance pour traduire en vba ce que tu proposes

    comment faire une suite avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("C6:F9").Select
        ActiveWorkbook.Names.Add Name:="a", RefersToR1C1:="=exemple!R6C3:R9C6"
    End Sub

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Désolé, je me suis absenté.
    Je ne connais pas la structure de tes blocs, ni s'ils sont fixes ni les moyens que tu as pour les identifier. Ne peux-tu pas faire un tableau des adresses de chaque bloc ?
    Ainsi, tu pourrais placer le code que tu as mis dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AdB = array("","A1:G7", "H6:L18", "B8:F15", ...) 'adresses de tes blocs
    For i = 1 to Ubound(AdB)
               ActiveWorkbook.Names.Add Name:="Nom" & i, _
               RefersToR1C1:="=Feuil1!" & AdB(i)
    Next
    Juste une idée
    A+

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

Discussions similaires

  1. [Info]Coloration des { blocs }
    Par zerovolt dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/02/2005, 12h34
  2. Comment décaller un bloc de cellule Excel en VBA
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2005, 20h00
  3. Réponses: 13
    Dernier message: 20/01/2005, 12h40
  4. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13
  5. [Astuce][Thread]Utilisation des blocs synchronized
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 14
    Dernier message: 21/07/2004, 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