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 dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut Tri dans une macro
    Bonjour a tous,

    Voici mon petit problème:
    Dans une feuille j'ai une base données comprenant plusieurs colonnes:
    - Lignes
    - Tronçon A
    - Tronçon B
    -Zone
    - Feuille
    Dans la seconde feuille utilisée pour la macro, je voudrais faire une recherche par ligne troncon A et troncon B. Je souhaiterais faire un genre de triage automatique c'est à dire apres avoir sélectionné une ligne, il me permettrait de seulement choisir les troncon de la ligne selectionnée et le même principe pour le troncon B.
    Est-ce clair? Quelqu'un a t il une idée à me proposer.Je peux vous fournir mon fichier.
    Merci d'avance.

    Voici le code déjà encodé:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    sub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 18/04/2008 par AXC8300
    '
    '
    Dim j As Double, k As Double
        Sheets("Feuil2").Select
        Range("A9").Select
        ligne = Range("A9").Value
        Cells(9, 2).Select
        A = Cells(9, 2).Value
        Cells(9, 3).Select
        B = Cells(9, 3).Value
        Range("A6").Select
        zone = Range("A6").Value
        Cells(6, 2).Select
        feuille = Cells(6, 2).Value
        Range("A13:T999").Select
        Selection.ClearContents
        Range("j6:T6").Select
        Selection.ClearContents
        Sheets("resume").Select
        Cells(1, 1).Select
        k = 13
        l = 2
        i = 1
        If zone <> "" Then
        While l > i
        Cells.Find(What:=zone, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False).Activate
        l = ActiveCell.Row
        Cells(l, 5).Select
        If feuille = Cells(l, 5).Value Then
        Rows(l).Select
        Selection.Copy
        Sheets("Feuil2").Select
        Cells(k, 1).Select
        ActiveSheet.Paste
        k = k + 1
        Sheets("resume").Select
        i = i + 1
        Cells(l + 1, 1).Select
        If l < i Then
        Sheets("Feuil2").Select
        Rows(k - 1).Select
        Rows(k - 1).Clear
        End If
        Else
        i = i + 1
        End If
       Wend
       Else
       While l > i
         Cells.Find(What:=ligne, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
        l = ActiveCell.Row
        Cells(l, 2).Select
        If A = Cells(l, 2).Value Then
        If B = Cells(l, 3).Value Then
        Rows(l).Select
        Selection.Copy
        Sheets("Feuil2").Select
        Cells(k, 1).Select
        ActiveSheet.Paste
        k = k + 1
        Sheets("resume").Select
        i = i + 1
        Cells(l, 1).Select
         End If
        Else
        i = i + 1
        Cells(l, 1).Select
        End If
       Wend
       End If
       Sheets("Feuil2").Select
       For i = 0 To 10
       Cells(6, 10 + i).Select
       ActiveCell.FormulaR1C1 = "=MAX(R[7]C:R[9999]C)"
       Next
       End Sub

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Ton code étant peu lisible,
    je le reformatte pour essayer de comprendre quelquechose.

    Pense à utiliser les balises code (Tu clique sur # et tu insères ton code entre les 2 balises).
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    ub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 18/04/2008 par AXC8300
    '
    '
    Dim j As Double, k As Double
    Sheets("Feuil2").Select
    Range("A9").Select
    ligne = Range("A9").Value
    Cells(9, 2).Select
    A = Cells(9, 2).Value
    Cells(9, 3).Select
    B = Cells(9, 3).Value
    Range("A6").Select
    zone = Range("A6").Value
    Cells(6, 2).Select
    feuille = Cells(6, 2).Value
    Range("A13:T999").Select
    Selection.ClearContents
    Range("j6:T6").Select
    Selection.ClearContents
    Sheets("resume").Select
    Cells(1, 1).Select
    k = 13
    l = 2
    i = 1
    If zone <> "" Then
    While l > i
    Cells.Find(What:=zone, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
    l = ActiveCell.Row
    Cells(l, 5).Select
    If feuille = Cells(l, 5).Value Then
    Rows(l).Select
    Selection.Copy
    Sheets("Feuil2").Select
    Cells(k, 1).Select
    ActiveSheet.Paste
    k = k + 1
    Sheets("resume").Select
    i = i + 1
    Cells(l + 1, 1).Select
    If l < i Then
    Sheets("Feuil2").Select
    Rows(k - 1).Select
    Rows(k - 1).Clear
    End If
    Else
    i = i + 1
    End If
    Wend
    Else
    While l > i
    Cells.Find(What:=ligne, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate
    l = ActiveCell.Row
    Cells(l, 2).Select
    If A = Cells(l, 2).Value Then
    If B = Cells(l, 3).Value Then
    Rows(l).Select
    Selection.Copy
    Sheets("Feuil2").Select
    Cells(k, 1).Select
    ActiveSheet.Paste
    k = k + 1
    Sheets("resume").Select
    i = i + 1
    Cells(l, 1).Select
    End If
    Else
    i = i + 1
    Cells(l, 1).Select
    End If
    Wend
    End If
    Sheets("Feuil2").Select
    For i = 0 To 10
    Cells(6, 10 + i).Select
    ActiveCell.FormulaR1C1 = "=MAX(R[7]C:R[9999]C)"
    Next
    End Sub 
     
     
    Règles de messages

Discussions similaires

  1. Exécuter une sub d'un module dans une macro
    Par pnoel-bi dans le forum Access
    Réponses: 3
    Dernier message: 03/03/2006, 10h39
  2. Code asm dans une macro C
    Par progfou dans le forum C
    Réponses: 11
    Dernier message: 01/03/2006, 18h50
  3. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44
  4. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29
  5. Tri dans une DBGrid sur un champ date au format jj/mm
    Par Jeankiki dans le forum Bases de données
    Réponses: 10
    Dernier message: 31/10/2004, 12h32

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