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 :

Tri sur les cellules [XL-2007]


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
    Responsable d'exploitation informatique
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Par défaut Tri sur les cellules
    Bonjour à tous,

    C'est la 1ere fois que je fais appel a une équipe d'experts en la matière puisque je demarre (en autodidact) dans le VBA.

    Je vous expose mon souci :
    j'ai une liste de produits dans une feuille excel 2007 (8500 lignes x 50 colonnes)
    1ere colonne : code du produit
    2eme colonne : 1er regroupement produit (valeur numérique de 1 à 99)
    3eme colonne : valeur du regroupement précedent (alphanumérique)
    4eme colonne : 2eme regroupement produit (valeur numérique de 1 à 99 toujours supérieure au regroupement précédent)
    5eme colonne : valeur du regroupement précédent (alphanumérique).
    et ainsi de suite...
    le nombre de regroupement n'est pas le même pour les 8500 produits
    Un meme regroupement peut avoir des valeurs différentes en fonction des produits.

    mon souhait :
    créer 99 colonnes (correspondant aux 99 regroupements possibles)
    et à l'intersection produit/regroupement, mettre la valeur du regroupement correspondant si elle existe.

    Si vous le désirez je peux vous joindre une feuille excel d'exemple.

    merci pour votre aide.

    FAUFAU57


    je rajoute en piece jointe un exemple de ce que j'ai et ce que je désire obtenir.

    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Par défaut
    Bonjour,
    c'est toujours moi,

    personne ne peux m'aider ?
    Le problème serait-il insolvable ?

    a quoi correspondent les petits icones a coté a gauche des messages car il semblerait que je sois le seul a avoir une enveloppe fermée acec une flêche retour dessus.

    MERCI D'AVANCE.

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ci dessous une proposition mise en place dans ton fichier
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Tri()
     
    Dim ShSource As Worksheet
    Dim ShCible As Worksheet
    Dim i As Long
    Dim iCible As Long
    Dim Col As Integer
    Dim Rg As Range
     
    Set ShSource = ThisWorkbook.Sheets("Feuil1")
    Set ShCible = ThisWorkbook.Sheets("Feuil2")
     
    For i = 5 To ShSource.Range("A" & Rows.Count).End(xlUp).Row
        iCible = ShCible.Range("A" & Rows.Count).End(xlUp).Row + 1
     
        ShCible.Range("A" & iCible).Value = ShSource.Range("A" & i).Value
     
        For Col = 2 To 11 Step 2 'traitement des colonnes
            'Cherche la colonne  cible
            Set Rg = ShCible.Range("A1:L1").Find(what:=ShSource.Cells(i, Col).Value, lookat:=xlWhole)
            'Traitement si trouvé
            If Not Rg Is Nothing Then
                ShCible.Cells(iCible, Rg.Column).Value = ShSource.Cells(i, Col + 1).Value
            End If
     
        Next Col
     
    Next i
     
    End Sub
    tri.xls

  4. #4
    Membre averti
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Par défaut
    Merci beaucoup

    c'est exactement la solution désirée.
    on ne peut pas faire mieux.
    Il me suffit de la tester sur mes 8500 lignes et 55 colonnes reventilées en 8500 lignes et 99 colonnes. et voir le temps que cela prend.
    j'avais déja fait une "sorte" de macro dont le traitement avec des imperfections avait mis plus de trois heures pour faire 2000 lignes. Problème de déclarations de variables je crois (entre autre). Néophyte explique cela.

    Merci encore.

    je cloture l'appel

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

Discussions similaires

  1. [struts]: Pagination et tri sur les colonnes
    Par sleepy2002 dans le forum Struts 1
    Réponses: 3
    Dernier message: 09/07/2007, 15h16
  2. Tri sur les listes
    Par frizou11 dans le forum Général Python
    Réponses: 4
    Dernier message: 14/05/2006, 11h33
  3. [MySQL] Tri sur les champs
    Par Pias dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 14/04/2006, 08h56
  4. Tri sur les champs
    Par Pias dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/04/2006, 17h14
  5. Réponses: 12
    Dernier message: 31/03/2006, 20h02

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