Retranscrire l'enregistreur de macro
Bonjour
Je voudrais retranscris ce code de l'enregistreur de macro, mais je ne parvient pas à faire quelque chose de beaucoup plus simplifié et surtout... ça plante !
Je travaille sur les boucles pour essayer de réduire, mais sans succès. Une lumière serait très appréciée.
Merci à vous.
Range("C2").Select
ActiveCell.FormulaR1C1 = "1"
Range("C3").Select
ActiveCell.FormulaR1C1 = "2"
Range("C2:C3").Select
Selection.AutoFill Destination:=Range("C2:C500"), Type:=xlFillDefault
Range("C2:C500").Select
ActiveWindow.SmallScroll Down:=-192
Range("C2:H500").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End WithSalut Tespark,
En français, que cherches-tu à obtenir ?
A+
Bonsoir curulis57,
Merci pour ton accueil sur le forum
Ce que je veux faire ? En français ?
je veux automatiser par une action plus simple le code proposé par l'enregistrement automatique des macros.
Exemple en PJ.
Je travaille sur un tableau qui extrait des valeurs sur plusieurs feuilles et via une filtration et je n'ai trouver que comme solution pour cette méthode, la suppression des lignes selon des critères et cela afin d'aboutir aboutir à mon résultat.
Elle supprime des lignes donc ma référence exemple "C2:C500". Je voudrais garder malgré cette suppression ma mise en forme et mon comptage de ligne.
Voilà pourquoi dans ma demande j'affiche l'enregistrement automatique des macros.
Un, garder ou refaire mon incrémentation de 1 à 500 et ensuite garder ou refaire ma mise en forme des bordures. Surement idiot comme demande, mais je bloque, car je voudrais raccourcir ce code.
Fichier joint et en xlsx car pas de macro dans celui-ci. Si je dois faire un enregistrement automatique, merci de me le dire.
Merci pour ta réponse
Salut le fil...
Voilà un bout de code pour te mettre sur la voie.
A noter que je ne fais pas de boucle utilisation de la fonction Evaluate
'// On déclare un objet Range
Dim MyRange As Range
'// On définie notre plage de cellule pour l'incrémentation
Set MyRange = Range("C2:C500")
'// On rempli la plage on aurait pu faire une boucle...
MyRange = Evaluate("Row(1:500)")
'// On défini la plage de cellules pour le traçage des bordures
Set MyRange = Range("C2:H500")
With MyRange
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
With .Borders
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End WithBon codage
Bonjour Jean-Paul,
Merci beaucoup pour ce code qui correspond tout à fait à ma recherche.
Adapté à mon code de base, cela fonctionne très bien sur ma macro.
Il faut que je garde en mémoire cette méthode Application.Evaluate (Convertit un nom Microsoft Excel en objet ou valeur).
Merci.