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 :

[VBA-E] Limitation des With...End With


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut [VBA-E] Limitation des With...End With
    Bjr,

    Peut-on optimiser ce genre de code pour éviter les répétitions with (F1 ne donne pas beaucoup d'exemples)
    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
        With Range("A1")
        .FormulaR1C1 = "ANCIEN"
        .Interior.ColorIndex = 35
        End With
    With Range("B1")
    .FormulaR1C1 = "NOUVEAU"
        .Interior.ColorIndex = 36
    End With
        With Range("C1")
        .FormulaR1C1 = "RESTÉES"
        .Interior.ColorIndex = 37
        End With
    With Range("D1")
    .FormulaR1C1 = "BAPB"
    .Interior.ColorIndex = 38
    End With
        With Range("E1")
        .FormulaR1C1 = "NOUVELLES"
        .Interior.ColorIndex = 39
        End With

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    tu peux tester


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Tableau()
    Dim i As Integer
     
    Tableau = _
      Array("ANCIEN", "NOUVEAU", "RESTÉES", "BAPB", "NOUVELLES")
     
    For i = 0 To UBound(Tableau)
        With Cells(1, i + 1)
            .Value = Tableau(i)
            .Interior.ColorIndex = 35 + i
        End With
    Next i

    michel

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2006
    Messages : 47
    Points : 31
    Points
    31
    Par défaut
    Je pense qu'il serait bon de modifier ton titre en "limitation des With...End With ?" ou un truc dans le genre

    C'est une suggestion mais le sujet étant intéressant, des personnes pourraient passé à coté...

  4. #4
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut VBA-E Limitation des With...End With
    Merci Silky ça fonctionne.
    Le seul problème c'est si on veut pas des index couleurs qui se suivent.
    Mais c'est un détail pas très important.

    Ps
    J'ai modifié le titre pour faire plaisir à Dvano.
    Cdt

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    Le seul problème c'est si on veut pas des index couleurs qui se suivent.
    Dans ce cas tu peux simplement adapter le premier exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Tableau(), TabCouleur()
    Dim i As Integer
     
    Tableau = _
      Array("ANCIEN", "NOUVEAU", "RESTÉES", "BAPB", "NOUVELLES")
    TabCouleur = Array(35, 37, 44, 26, 4)
     
    For i = 0 To UBound(Tableau)
        With Cells(1, i + 1)
            .Value = Tableau(i)
            .Interior.ColorIndex = TabCouleur(i)
        End With
    Next i

    michel

  6. #6
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut
    Ça c'est parfait.
    Merci encore.
    Bon Week End

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

Discussions similaires

  1. With, End With ?
    Par benoît14 dans le forum Débuter
    Réponses: 8
    Dernier message: 30/01/2013, 12h36
  2. Utilité de With/End With ?
    Par OtObOx dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/02/2011, 01h30
  3. Gerer les propriété d'un TextBox (With, end With)
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2007, 17h57
  4. [VB.NET] With...End With et performances ?
    Par Dnx dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2005, 12h37

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