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 :

Amélioration du code


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
    Avril 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 48
    Par défaut Amélioration du code
    Bonsoir,

    Dans le code VBA que j'écris, je remplis 6 feuilles sur 20 colonnes en moyennes chacune et mon code VBA commence vraiment a être long. J'aimerais l'améliorer un peu en éliminant les lignes que je pourrais condenser pour finalement obtenir le même résultat, donc voici quelques exemples ci-dessous.

    Veuillez traiter les 4 cas ci-dessous indépendamment SVP

    A condenser en 1 ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cellule_vide.Offset(0, 1).NumberFormat = "m/d/yyyy h:mm"
    Cellule_vide.Offset(0, 2).NumberFormat = "m/d/yyyy h:mm"

    A condenser en 1 ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Donnees2").Range("F5", "G34").NumberFormat = "0"
    Worksheets("Donnees2").Range("I5", "J34").NumberFormat = "0"

    A condenser en 1 ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Donnees2").Columns("F:G").EntireColumn.AutoFit
    Worksheets("Donnees2").Columns("I:J").EntireColumn.AutoFit
    Merci

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Essaye de regarder l'aide sur la fonction union
    sinon cas numéro 3 quand tu sélectionne une collonne il est inutile de préciser toute la colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Donnees2").Columns("F:G").AutoFit
    Worksheets("Donnees2").Columns("I:J").AutoFit

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Une piste avec les codes suivants
    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
     
    Const CELL_VIDE As String = "b1"  'à adapter
     
    Sub Launch()
    Sheets("test").Activate
    ActiveSheet.Cells.Delete
    Call aa
    End Sub
     
    Sub aa(Optional dummy As Byte)
    Dim R As Range
    Dim i&
    Set R = Range(CELL_VIDE)
    For i& = 1 To 20  ' à adapter
      Set R = Application.Union(R, R.Offset(0, i&))
    Next i&
    R.NumberFormat = "m/d/yyyy h:mm"
    '--- Pour visualiser (à virer une fois vu) ---
    R.HorizontalAlignment = xlCenter
    R.Orientation = 90
    R = #7/9/2009 3:15:00 PM#
    R.Interior.ColorIndex = 34
    Call bb
    '---------------------------------------------
    End Sub
     
    Sub bb(Optional dummy As Byte)
    Dim S As Worksheet
    Dim R As Range
    Dim i&
    Set S = ActiveSheet 'Worksheets("Donnees2")  à adapter
    Set R = S.Range("F5:G34")
    For i& = 1 To 20  ' à adapter
      Set R = Application.Union(R, R.Offset(0, R.Columns.Count + 1))
    Next i&
    R.NumberFormat = "0"
    '--- Pour visualiser (à virer une fois vu) ---
    R = 123.456789
    R.Interior.ColorIndex = 36
    Call cc
    '---------------------------------------------
    End Sub
     
    Sub cc(Optional dummy As Byte)
    Dim S As Worksheet
    Dim R As Range
    Dim i&
    Set S = ActiveSheet 'Worksheets("Donnees2")  à adapter
    Set R = S.Columns("F:G")
    For i& = 1 To 20  ' à adapter
      Set R = Application.Union(R, R.Offset(0, R.Columns.Count + 1))
    Next i&
    R.Columns.AutoFit
    End Sub
    Pour plus de facilité, téléchargez l'exemple ci-joint.

    Cordialement.

    PMO
    Patrick Morange

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    Voilà mes propositions de réduction de lignes
    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cellule_vide.Offset(0, 1).Range("A1:B1").NumberFormat = "m/d/yyyy h:mm"
    2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Donnees2").Range("F5:G34,I5:J34").NumberFormat = "0"
    3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F:G,I:J").EntireColumn.AutoFit

Discussions similaires

  1. Amélioration de code
    Par Devilju69 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 15h01
  2. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 15h05
  3. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  4. [Tableaux] Amélioration de code (if)
    Par Sir Tengu dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2006, 00h26
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

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