XL 2016 format du code

doclaude

XLDnaute Nouveau
bonjour
j'ai une partie du code d'une macro qui ne se formate pas correctement (la majuscule en début de mot clé)
selection.AutoFilter
selection.AutoFilter Field:=2, Criteria1:="="
selection.AutoFilter Field:=21, Criteria1:=Array("+21 ans", "-21 ans"), Operator:=xlFilterValues
selection.SpecialCells(xlVisible).Select
selection.Copy Sheets("Sabbatiques").Range("a1")
le code fonctionne correctement, c'est juste que je ne comprends pas
c'est la première fois que cela m'arrive et c'est un peu dérangeant
Quelqu'un a une idée ?
merci d'avance
Claude
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, doclaude, sylvanu

•>doclaude
Ainsi écrit (TestA) je n'ai pas de majuscule
PS: TestB fait la même chose (ou presque) ;)
VB:
Sub Test_A()
Dim selection As Range
Set selection = Range("$A$1:$U$8")
selection.AutoFilter
selection.AutoFilter Field:=2, Criteria1:="="
selection.AutoFilter Field:=21, Criteria1:=Array("+21 ans", "-21 ans"), Operator:=xlFilterValues
selection.SpecialCells(xlVisible).Select
selection.Copy Sheets("Sabbatiques").Range("a1")
End Sub
Sub Test_B()
ActiveSheet.Range("$A$1:$U$8").AutoFilter Field:=21, Criteria1:=Array("+21 ans", "-21 ans"), Operator:=xlFilterValues
ActiveSheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Sabbatiques").Range("a1")
End Sub
 

doclaude

XLDnaute Nouveau
bonjour
c'est bête :
d'habitude quand j'écris le code
selection.delete
ou
selection.autoFilter

l'éditeur me transforme aussitôt le code en
Selection.Delete
ou
Selection.AutoFilter
(ce qui est bien pratique pour trouver les erreurs)

et là ça ne marche pas (comme montré dans le bout de code du premier message)
ce qui n'empêche pas le code de fonctionner normalement
Claude
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Doclaude, Staple,

Juste un essai qui expliquerait :
Cas où selection est déclaré comme variable :
VB:
Sub Test1()
Dim selection As Range
Set selection = Range(("A:A"))
selection.AutoFilter
End Sub
Cas où selection est utilisé comme mot clé :
Code:
Sub test()
Range("A:A").Select
Selection.AutoFilter
End Sub
Utilisé comme variable, selection s'écrit comme déclaré.
Utilisé comme mot clé, selection prend automatiquement une majuscule car reconnue par le VBA.

Ceci dit, utiliser selection comme variable ... ;)
 

doclaude

XLDnaute Nouveau
bonjour
merci à vous de vos réponses
effectivement à un moment j'ai nommé une macro"Selection"
(je devais avoir la tête ailleurs)
ça a fichu le b... et j'ai cherché puis renommé la macro
je pense que c'est là que les problèmes de format sont apparus
mais avoir renommé la sub n'a pas corrigé le problème
bon ! le code fonctionne normalement, c'est le principal
je vais essayer de détruire le code et le reconstituer
:)
Claude
 

Staple1600

XLDnaute Barbatruc
Re,

•>sylvanu
Dans Test_A, il y avait selection, non?
Le Test_B, c'était juste un bonus.

Mais m'est avis, qu'on se trompe tout les deux ;)
(Nul doute que docclaude se souviendrait d'avoir mis dans son code un truc du genre: Dim selection As Range, non ?)

PS: Sans soute trop habitué aux échanges d'antan entre XLDiens, où nous renvoyions la balle avec des echanges du genre
"Tout comme X dans le message#3, je penche pour la même piste etc..."
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Pour une raison qui m'échappe, il est un phénomène étrange.
Si on met ce code dans le même module :
VB:
Sub Test1()
Dim selection As Range
Set selection = Range(("A:A"))
selection.AutoFilter
End Sub

Sub Test2()
Range(("A:A")).Select
selection.AutoFilter
End Sub
Et bien dans le Test2 selection ne prend pas de majuscule alors qu'il n'est pas déclaré en variable, et que son comportement est bien celui de Selection.
Bizarre, mais bon, on est quand même en dehors des règles minimales de codage.
 

Staple1600

XLDnaute Barbatruc
Re

•>sylvanu
cf mon édition du précédent message
Sinon pourquoi les deux ( en trop ?)
Effectivement idem chez moi
VB:
Sub Test1()
Dim selection As Range
Set selection = Range("A:A")
selection.AutoFilter
End Sub
Sub Test2()
Range("A:A").Select
selection.AutoFilter
End Sub
 

Discussions similaires

Réponses
2
Affichages
113
Réponses
1
Affichages
2 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé