S
Startus
Guest
Bonsoir tout le monde,
Dans un classeur, j'ai crée des plages nommées dynamiques sur 5 feuilles...
La formule est : =DECALER(Feuil1!$C6$;;;NBVAL($C$6:$C$1500))
Ces plages se nommes respectivement:
Opér.Compte1,Opér.Compte2... Le N° fait référence à l'index de la feuille
Un code VBA auquel je n'arrive pas à terminer, Copie la plage nommée de la feuille active, la Colle dans une autre feuille (vierge), Tri cette liste et Supprime les Doublons.
La feuille vierge, contient également une plage dynamique ('Test_Liste') que la macro utilise pour supprimer les doublons
Ensuite une autre macro ajoute cette même liste à la propriété RowSoure d'une ComboBox d'un Userform
Voilà le Code:
Mon ennui est que ce code me tri la colonne A de la feuille active, au lieu de me trier la Colonne A de la feuille vierge ???
En revanche, si je modifie la ligne qui copie la plage comme ceci:
Range('Opér.Compte1').Copy
Tout marche comme je le souhaite.
Mais en fait, je voudrai que ce code utilise plutôt la plage nommée de le feuille active comme référence et poursuive son exécution...
J'espère avoir été simple, mais pas facile...Ouarf...
Merci de votre aide...
Dans un classeur, j'ai crée des plages nommées dynamiques sur 5 feuilles...
La formule est : =DECALER(Feuil1!$C6$;;;NBVAL($C$6:$C$1500))
Ces plages se nommes respectivement:
Opér.Compte1,Opér.Compte2... Le N° fait référence à l'index de la feuille
Un code VBA auquel je n'arrive pas à terminer, Copie la plage nommée de la feuille active, la Colle dans une autre feuille (vierge), Tri cette liste et Supprime les Doublons.
La feuille vierge, contient également une plage dynamique ('Test_Liste') que la macro utilise pour supprimer les doublons
Ensuite une autre macro ajoute cette même liste à la propriété RowSoure d'une ComboBox d'un Userform
Voilà le Code:
Code:
Sub Zone_Liste()
Dim Cible As Object
Dim Idx As Byte
Idx = Val(ActiveSheet.Index)
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Range('Opér.Compte' & Idx).Copy
Worksheets(8).Range('A1').PasteSpecial Paste:=xlPasteValues
Columns('A:A').Sort Key1:=Range('A1'), Order1:=xlAscending
For Each Cible In Range('Test_Liste')
If Cible.Offset(1, 0) = Cible Then Cible.ClearContents
Next Cible
Columns('A:A').Sort Key1:=Range('A1'), Order1:=xlAscending
Application.Calculation = xlCalculationAutomatic
End Sub
Mon ennui est que ce code me tri la colonne A de la feuille active, au lieu de me trier la Colonne A de la feuille vierge ???
En revanche, si je modifie la ligne qui copie la plage comme ceci:
Range('Opér.Compte1').Copy
Tout marche comme je le souhaite.
Mais en fait, je voudrai que ce code utilise plutôt la plage nommée de le feuille active comme référence et poursuive son exécution...
J'espère avoir été simple, mais pas facile...Ouarf...
Merci de votre aide...