Macro

Bonjour le Forum,

Vous serait-il possible de me simplifié la macro que j'ai fait au niveau débutant et m'expliquer cette simplification

Bien cordialement

ericp

8ericp.xlsm (31.99 Ko)

Bonjour Eric, bonjour le forum,

L'enregistreur de macro et très pratique pour découvrir le langage VBA mais il a l'inconvénient de tout enregistrer et notamment des choses inutiles comme les déplacements, les Select inutiles qui ne font que ralentir l'exécution du code, et autres qui n'apportent rien. Je n'ai pas le temps de t'expliquer en détails mais si tu compares les deux codes tu devrais comprendre par toi-même.

Sub ericp()
With Range("A6:AF60").Font
    .Name = "Trebuchet MS"
    .Size = 10
End With
With Range("A6:AF60")
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With
Range("A8,A10,A12,A14,A16,A18,A20,A22,A24,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A50,A52,A54,A56,A58").ClearContents
Range("A7:A59").Cut Range("A8")
Range("A9,A11,A13,A15,A17,A19,A21,A23,A25,A27,A29,A31,A33,A35,A37,A39,A41,A43,A45,A47,A49,A51,A53,A55,A57,A59").EntireRow.Delete
Range(Columns("B:B"), Columns("AE:AE")).AutoFit
Columns("AF:AF").ColumnWidth = 7.86
End Sub

Bonjour,

Flanque ça à la poubelle ! Dis ce que tu veux obtenir, à partir de quoi, ce sera bien plus rapide !!

Je vois que ThauThème a été plus patient que moi !

Je me suis arrêté au Cut, parce que là, j'ai eu un profond sentiment qu'il y avait une absurdité rédhibitoire dans la chose...

Bonjour à vous 2

merci à toi ThauThème, c'est ce que je voulais que la macro fasse, la mienne bien sûr était un bazar, mais bon, le débutant par excellence

Je sais que ce j'ai fait n'était pas bon MFerrand, mais il y a un commencement à tout, aussi je vais disséquer le code de ThauThème pour mieux comprendre la prochaine fois que je ferais une macro, c'est tellement difficile le langage vba.

Un grand merci à vous 2 de vous être intéresser et de m'avoir apporté la solution à ce langage

Bien cordialement

ericp

Re,

ThauThème a bien répercuté ce que tu as fait... Ce que j'ai voulu dire, c'est que tes 3 lignes de commandes (après épuration) : effacement, couper-coller, suppression, pouvait se faire autrement : par remplissage sans effacement ni couper-coller, et suppression.

Cordialement.

Re

Là pour moi, je ne comprends rien, peux-tu être plus explicite s'il te plait, je pourrais mieux comprendre

Merci

Ton code résulte d'un enregistrement de manipulations sur Excel. L'épurer est une première démarche, on opère en VBA en singeant Excel, à l'instar de l'enregistreur. Il faut revenir au point de départ où la série de manipulations résultait d'une traduction de l'objectif visé en gestes qu'il était possible d'accomplir avec Excel pour y parvenir. Si VBA peut généralement reproduire les manoeuvres opérées avec Excel, il dispose aussi d'autres moyens pour atteindre un même objectif. Il faut donc revenir à l'objectif visé pour réexaminer les différentes façons d'opérer en VBA et choisir la plus économique...

La séquence de commandes que j'ai évoquée, pouvait par exemple être réalisée ainsi :

    With Worksheets("Feuil1")
        .Range("A7").Insert xlShiftDown, xlFormatFromRightOrBelow
        With .Range("A9:A59")
            For i = 1 To .Rows.Count Step 2
                .Cells(i, 1).ClearContents
            Next i
            .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        End With
    End With

Et on peut trouver d'autres méthodes, qu'il convient d'examiner selon la configuration de départ et le résultat final souhaité...

ericp a écrit :

Bonjour à vous 2

Je sais que ce j'ai fait n'était pas bon MFerrand, mais il y a un commencement à tout, aussi je vais disséquer le code de ThauThème pour mieux comprendre la prochaine fois que je ferais une macro, c'est tellement difficile le langage vba.

ericp

Bonjour ericp.

Tu peux aussi jeter un œil, sur les Cours VBA

https://www.excel-pratique.com/fr/vba.php

Cordialement

Bonjour F4crw

Je te remercie, je vais y jeter un coup d'oeil et essayer de comprendre

Ce qui est bien sur ce site, c"est que vous êtes disponible pour aider et orienter les novices

Bien cordialement

ericp

Re,

Effectivement MFerrand, faire des macro est du grand art, j'ai testé ta macro, exellent, cela veut dire qu'il y a plusieurs chemins pour arriver à ses fins, c'est pas gagné pour moi, lequel prendre, là est toute la question, à moi de chercher et de ne pas me tromper

Merci à vous tous

Bien cordialement

ericp

Rechercher des sujets similaires à "macro"