Optimisation du code

  • Initiateur de la discussion Initiateur de la discussion Efgé
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Efgé

XLDnaute Barbatruc
Bonjour à tous,
Je possède, grace au forum XLD, quelques notions de VBA. En récupérant un bout de code par ici et un par là, j'ai réussi a réaliser une mise en forme conditionnelle (double ligne en haut des cellules A à J, si la cellule en colonne B est égale à 1)
Seulement voila, pour ce faire, je recopie ma formule autant de fois qu'il y a de cellule à mettre en forme (en tout 10). Ca fonctionne, mais question opimisation ce n'est pa terrible...
Pourriez vous m'indiquer le code qui me permettrait de traiter la ligne en une foi ?
Je vous joint l'exemple et remercie ceux qui ont pris le temps de me lire.
 

Pièces jointes

Re : Optimisation du code

bonjour Efgé

Tester le remplacement de test2 par

Code:
Sub test3()
Dim VotreDerniereLigne As Integer
VotreDerniereLigne = 100
For i = 4 To VotreDerniereLigne
    If Cells(i, 2).Value = 1 Then
      For n = 1 To 10
        Cells(i, n).Select
            With Selection.Borders(xlEdgeTop)
            .LineStyle = xlDouble
            .Weight = xlThick
            .ColorIndex = xlAutomatic
            End With
     Next n
    End If
Next i
End Sub
 
Re : Optimisation du code

Bonjour,

Bonjour, PierreJean 🙂🙂

un petit essai :

Code:
Sub test2()

Dim VotreDerniereLigne As Integer

VotreDerniereLigne = [B65000].End(xlUp).Row
For i = 4 To VotreDerniereLigne
    If Cells(i, 2).Value = 1 Then
        With Cells(i, 1).Resize(1, 9).Borders(xlEdgeTop)
            .LineStyle = xlDouble
            .Weight = xlThick
            .ColorIndex = xlAutomatic
        End With
    End If
    If Cells(i, 9).Value = 1 Then
        With Cells(i, 10).Borders(xlEdgeTop)
            .LineStyle = xlDouble
            .Weight = xlThick
            .ColorIndex = xlAutomatic
        End With
    End If
Next i
End Sub
 
Re : Optimisation du code

Bonjour, Salut pierrejean,

Dans le même esprit d'optimisation :

Code:
Sub test2()
  For i = 4 To [B65536].End(xlUp).Row
      If Cells(i, 2) = 1 Then
          With Range(Cells(i, 1), Cells(i, 10)).Borders(xlEdgeTop)
              .LineStyle = xlDouble
              .Weight = xlThick
              .ColorIndex = xlAutomatic
          End With
      End If
  Next i
End Sub

édit : salut bhbh
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
Retour