Besoin d'aide VBA optimiser un code svp !!!
mat
-
mat -
mat -
Bonjour,
Je suis étudiant débutant en VBA sous excel et je cherche a :
'Modifiez et optimisez au maximum le code suivant de telle sorte qu'il puisse s'adapter à des situations diverses
J'ai réalisé ca mais je pense qu'on peut mieux faire. C'est pourquoi je vous sollicite :
ma réponse (a améliorer):
Merci a toute personne pouvant m'aider à améliorer le code
Merci d'avance internaute !!!
Mat
Je suis étudiant débutant en VBA sous excel et je cherche a :
'Modifiez et optimisez au maximum le code suivant de telle sorte qu'il puisse s'adapter à des situations diverses
Sub Exercice2() Dim Zone As Range 'Zone à mettre en forme Set Zone = Worksheets("Exercice 2").[a1:d4] Zone.Interior.ColorIndex = 5 Zone.Borders(xlInsideHorizontal).LineStyle = xlDash Zone.Borders(xlInsideVertical).LineStyle = xlDash Zone.Borders(xlInsideHorizontal).Weight = xlMedium Zone.Borders(xlInsideVertical).Weight = xlMedium Zone.Borders(xlEdgeBottom).LineStyle = xlContinuous Zone.Borders(xlEdgeTop).LineStyle = xlContinuous Zone.Borders(xlEdgeRight).LineStyle = xlContinuous Zone.Borders(xlEdgeLeft).LineStyle = xlContinuous [a1:a4].Font.Bold = True [a1:a4].Font.Italic = True [a1:a4].Font.Name = "comic sans ms" End Sub
J'ai réalisé ca mais je pense qu'on peut mieux faire. C'est pourquoi je vous sollicite :
ma réponse (a améliorer):
Sub Exercice2() Dim Zone As Range 'Zone à mettre en forme Set Zone = Range("a1").CurrentRegion With Zone .Interior.ColorIndex = 5 With .Borders(xlInsideHorizontal) .LineStyle = xlDash .Weight = xlMedium End With With .Borders(xlInsideVertical) .LineStyle = xlDash .Weight = xlMedium End With .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeLeft).LineStyle = xlContinuous End With With [a1:a4].Font .Bold = True .Italic = True .Name = "comic sans ms" End With End Sub
Merci a toute personne pouvant m'aider à améliorer le code
Merci d'avance internaute !!!
Mat
A voir également:
- Besoin d'aide VBA optimiser un code svp !!!
- Code ascii - Guide
- Optimiser son pc - Accueil - Utilitaires
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
5 réponses
Bonsoir,
C'est bon
juste à améliorer
.Borders.LineStyle = xlContinuous
au lieu de:
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous
pour le principe:
l'écriture [A1;A4] devrait ^être range("A1:A4")
les crochets étant l'abrégé de la fonction EVALUATE pour utiliser des formules matricielles en VBA
et surtout utilisée par "poil dans la main " (je l'utilise donc souvent)
Si ton prof est pas d'accord la source: de cette info est de Laurent Longre ( il doit connaitre vu la valeur de LL)
3/
Vérifie si currentregion admet des cellules vides au milieu de la zone; Pour ma part, j'aurais laissé range("A1:D43) mais ca se discute...
Bonne soirée
C'est bon
juste à améliorer
.Borders.LineStyle = xlContinuous
au lieu de:
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous
pour le principe:
l'écriture [A1;A4] devrait ^être range("A1:A4")
les crochets étant l'abrégé de la fonction EVALUATE pour utiliser des formules matricielles en VBA
et surtout utilisée par "poil dans la main " (je l'utilise donc souvent)
Si ton prof est pas d'accord la source: de cette info est de Laurent Longre ( il doit connaitre vu la valeur de LL)
3/
Vérifie si currentregion admet des cellules vides au milieu de la zone; Pour ma part, j'aurais laissé range("A1:D43) mais ca se discute...
Bonne soirée
Bonsoir,
Pourquoi considérer que les crochets étant l'abrégé de la fonction EVALUATE...
Ce n'est pas seulement ça et l'aide excel nous dit :
Référence à des cellules à l'aide d'un raccourci
Vous pouvez utiliser soit le style de référence A1 soit une plage nommée entre crochets comme raccourci de la propriété Range.
Y'a-t-il une raison de se priver de cette facilité pour désigner des cellules ? (et facilité de lecture aussi)
Jusqu'à maintenant je n'ai rencontré aucun problème...
eric
Pourquoi considérer que les crochets étant l'abrégé de la fonction EVALUATE...
Ce n'est pas seulement ça et l'aide excel nous dit :
Référence à des cellules à l'aide d'un raccourci
Vous pouvez utiliser soit le style de référence A1 soit une plage nommée entre crochets comme raccourci de la propriété Range.
Y'a-t-il une raison de se priver de cette facilité pour désigner des cellules ? (et facilité de lecture aussi)
Jusqu'à maintenant je n'ai rencontré aucun problème...
eric
Salut Eric,
Excuses moi, ceci est est dit sans aucune méchanceté:
Laurent Longre, tu connais!
Et d'autre part, je précise que je les emploie souvent, moi aussi, sans aucun problème.... Effectivement, des grands manitous comme Boisgontier et Vallon les emploie tout le temps,
Mais en formation, il est nécessaire à mon avis de bien montrer les objets comme "range" pour que le stagiaire puisse bien piger ce qu'il fait (quitte après à mettre des crochets)
Pour Mat:
Ma simplification des 4 lignes est fausse, excuses moi...
Par contre, je n'utiliserais pas "currentregion" car la zone déterminé est peut-être au milieu d'autres données donc, tu peux avoir une zone beaucoup + grande que prévue
Excuses moi, ceci est est dit sans aucune méchanceté:
Laurent Longre, tu connais!
Et d'autre part, je précise que je les emploie souvent, moi aussi, sans aucun problème.... Effectivement, des grands manitous comme Boisgontier et Vallon les emploie tout le temps,
Mais en formation, il est nécessaire à mon avis de bien montrer les objets comme "range" pour que le stagiaire puisse bien piger ce qu'il fait (quitte après à mettre des crochets)
Pour Mat:
Ma simplification des 4 lignes est fausse, excuses moi...
Par contre, je n'utiliserais pas "currentregion" car la zone déterminé est peut-être au milieu d'autres données donc, tu peux avoir une zone beaucoup + grande que prévue
Bonsoir michel,
Ne t'inquiète pas, je n'y ai vu aucune méchanceté... :-)
Mais plutôt une information potentielle des fois qu'excel ait une de ses bizarreries dont il a le secret dans certains cas d'utilisation. Maintenant si c'est plus dans un soucis de rigueur (que j'ai parfois dans d'autres domaines) c'est tout bon.
On a toujours à apprendre.... ;-)
Merci
eric
Ne t'inquiète pas, je n'y ai vu aucune méchanceté... :-)
Mais plutôt une information potentielle des fois qu'excel ait une de ses bizarreries dont il a le secret dans certains cas d'utilisation. Maintenant si c'est plus dans un soucis de rigueur (que j'ai parfois dans d'autres domaines) c'est tout bon.
On a toujours à apprendre.... ;-)
Merci
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je vous remercie pour tout !
j'ai trouvé une autre méthode si ca peut interesse quelqu'un je la laisse la :
Encore merci a tout ceux (les callés en vba) qui m'on répondu.
thanks
bye
j'ai trouvé une autre méthode si ca peut interesse quelqu'un je la laisse la :
Sub Exercice2() Dim Zone1 As Range 'Zone 1 à mettre en forme Dim Zone2 As Range 'Zone 2 à mettre en forme Set Zone1 = Worksheets("Exercice 2").[a1:d4] Set Zone2 = Worksheets("Exercice 2").[a1:a4] With Zone1 .Interior.ColorIndex = 5 .Borders(xlInsideHorizontal).LineStyle = xlDash .Borders(xlInsideVertical).LineStyle = xlDash .Borders(xlInsideHorizontal).Weight = xlMedium .Borders(xlInsideVertical).Weight = xlMedium .BorderAround LineStyle:=xlContinuous End With With Zone2.Font .Bold = True .Italic = True .Name = "comic sans ms" End With End Sub
Encore merci a tout ceux (les callés en vba) qui m'on répondu.
thanks
bye