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 :

Problème avec ma macro


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Problème avec ma macro
    Salut à tous,

    Je suis en train d'adapter un fichier avec une macro qui classe mes données par ordre décroissant sur une autre feuille.
    Ca marchait mais j'ai ajouté une colonne dans mon fichier et il n'y a plus rien qui fonctionne. (si cela provient de ca ?)

    J'ai essayé de bidouiller, mais étant donné que je n'y connait rien je n'arrive pas à solutionner mon problème.

    Pourriez me dire ce qui ne va pas
    Merci d'avance

    Je met mon fichier en pièce jointe
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Le mieux serait que tu donnes l'extrait du code de ta macro, en précisant un peu le contenu de ton fichier. Les fichiers joints ne devraient servir qu'exceptionnellement, lorsque la complexité de la situation empêche la rédaction d'une question claire (ce qui est plutôt rare...)

    Merci donc de bien vouloir reformuler ta question en tenant compte de ce qui précède.

    Bonne continuation sur nos forums
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Problème avec ma macro
    Bien je reformule,

    J'ai une première feuille de résultats dans le désordre

    J'ai une seconde feuille avec un tableau ('Tableau AES")

    J'ai créer un bouton avec une macro qui contient ce code (ci après) pour pouvoir classer mes résultats qui sont dans le désordre dans ma seconde feuille par ordre décroissant

    Au départ cela marchait puis j'ai fait des modifs de forme de mon premier document et ca ne marche plus et je ne comprend pas pourquoi (j'ai rajouté une colonne et j'ai modifié la sélection à prendre en compte, de Range("X5:Z378").Select vers Range("Y5:AA378").Select)

    Et puis plus rien

    MACRO :

    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
    Sub ExtractionAES()
    '
    ' ExtractionAES Macro
    ' Macro enregistrée le 17/07/02 
    '
     
    '
        Range("Y5:AA378").Select
        Selection.Copy
        Sheets("Tableau AES").Select
        ActiveWindow.ScrollRow = 14
        ActiveWindow.ScrollRow = 1
        Range("F8").Select
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Range("F7:H381").Select
        Application.CutCopyMode = False
        Selection.Sort Key1:=Range("F8"), Order1:=xlDescending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        Range("G6").Select
        ActiveWindow.SmallScroll ToRight:=3
        ActiveWindow.SmallScroll Down:=86
        ActiveWindow.SmallScroll ToRight:=-1
        Range("F105:H383").Select
        Selection.ClearContents
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        Range("G109").Select
    End Sub

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Ok. Merci pour le "code"...

    Je n'ai pas compris le Et puis plus rien...

    Ton code illustre parfaitement le problème d'un code créé avec l'enregistreur puis que l'on essaie de modifier.

    Je sais que même sur nos forums, certains conseillent d'utiliser l'enregistreur de macros, mais je trouve que ce conseil est souvent très mauvais!!. Le code créé de cette façon est souvent illisible, très difficilement maintenable et toujours trop lourd.

    Ce que tu dois faire, c'est d'abord analyser ton contexte et le problème qui se pose à toi.

    Si j'ai bien compris le code, tu souhaites
    1. Copier une plage de cellule d'une feuille à l'autre
    2. Trier la plage de cellule
    3. Aller vider une plage de données
    4. Mettre en forme cette plage de données

    Voici un code plus propre pour les deux premiers points. Les deux points suivants devraient être créés dans une autre procédure, pour une facilité de maintenance du code, et tu appelles les deux procédures à la suite l'une de l'autre... Néanmoins, j'ai tout mis dans le même code pour une facilité de lectuer sur le forum
    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
     
        Dim PlageDepart As Range
        Dim PlageArrivee As Range
        Dim PlageQuadrillage As Range
     
        ' Copie de la plage de départ
        Set PlageDepart = Range(""Y5:AA378"")
        PlageDepart.Copy
        Sheets("Tableau AES").Range("f8").PasteSpecial xlPasteFormats
        Sheets("Tableau AES").Range("f8").PasteSpecial xlPasteValues
        Application.CutCopyMode = False
     
        ' Tri sur la plage d'arrivée
        Set PlageArrivee = Sheets("Tableau AES").Range("f7:h381")
        PlageArrivee.Sort key1:=PlageArrivee.Range("f7"), order1:=xlAscending, header:=xlYes
     
        ' Mise en forme du quadrillage
        Set PlageQuadrillage = Sheets("Tableau AES").Range("F105:H383")
        with PlageQuadrillage
            .ClearContents
            .Borders(xlDiagonalDown).LineStyle = xlNone
            .Borders(xlDiagonalUp).LineStyle = xlNone
            .Borders(xlEdgeLeft).LineStyle = xlNone
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeTop).Weight = xlThin
            .Borders(xlEdgeTop).ColorIndex = xlAutomatic
            .Borders(xlEdgeBottom).LineStyle = xlNone
            .Borders(xlEdgeRight).LineStyle = xlNone
            .Borders(xlInsideVertical).LineStyle = xlNone
            .Borders(xlInsideHorizontal).LineStyle = xlNone
        end with
     
        set PlageDepart = Nothing
        set PlageArrivee = Nothing
        set PlageQuadrillage = Nothing
    Ce code est plus facile à analyser et tu peux le suivre pas à pas avec F8 pour repérer où le bât blesse.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Problème avec une macro
    Par Nyck0las dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 28/11/2007, 15h04
  2. Problème avec les macros _RPT et _RPTF
    Par pikatshu dans le forum C++Builder
    Réponses: 0
    Dernier message: 12/11/2007, 12h31
  3. Problème avec une macro impression
    Par Border_xls dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2007, 15h18
  4. Problème avec une macro faisant apel à un tableau Excell
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 52
    Dernier message: 19/06/2007, 12h38
  5. Réponses: 7
    Dernier message: 11/07/2006, 09h31

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