Vba dictionary disparait en changeant de feuille

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 !

grodep

XLDnaute Occasionnel
Bonsoir à tous, un mystère de plus pour moi dans le vba:
Quand j'écris ceci
Code:
Dim Dico As Object, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
 With Worksheets("Sept-2014")
For Each c In Range("C12", [C65000].End(xlUp))
Dico(c.Value) = ""
Next c
'End With
'With Worksheets("Recap")
[L2].Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
End With
tout fonctionne, et ma colonne L se remplit avec les valeurs sans doublons

Mais si jamais je glisse un end with puis un autre with pour transposer ma liste sur une nouvelle feuille, ça ne fonctionne plus! le code suivant est identique au précédent, excepté les deux lignes de commentaires qui ne sont plus en commentaires.


Code:
Dim Dico As Object, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
 With Worksheets("Sept-2014")
For Each c In Range("C12", [C65000].End(xlUp))
Dico(c.Value) = ""
Next c
End With
With Worksheets("Recap")
[L2].Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
End With

J'en perds mon latin!
Merci d'avance aux aficionados du code 🙂
 
Re : Vba dictionary disparait en changeant de feuille

Bonsoir grodep.



Code:
Dim Dico As Object, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
 With Worksheets("Sept-2014")
For Each c In .Range("C12", .[C65000].End(xlUp))
Dico(c.Value) = ""
Next c
End With
With Worksheets("Recap")
.[L2].Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
End With
peut-être ?​


Bonne soirée.


ℝOGER2327
#7578


Lundi 16 Absolu 142 (Saint Ibicrate le Géomètre, pataphysicien - fête Suprême Quarte)
2 Vendémiaire An CCXXIII, 7,2735h - safran
2014-W39-2T17:27:23Z
 
Dernière édition:
Re : Vba dictionary disparait en changeant de feuille

Bonjour à tous

Et pourquoi ne pas l'écrire ainsi:

Code:
Sub D()
Dim Dico As Object, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
 For Each c In Worksheets("Sept-2014").Range("C12", [C65000].End(xlUp))
     Dico(c.Value) = ""
 Next c
Worksheets("Recap").[L2].Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
End Sub
 
Re : Vba dictionary disparait en changeant de feuille

Re...


Bonjour à tous,

Ne faudrait-il pas préfixer aussi [C65000] par un point si jamais on démarre la macro d'un autre feuille que "Sept-2014" ?
Bien sûr ! Où donc avais-je la tête ?

Je corrige !

Bonne soirée.


ℝOGER2327
#7579


Lundi 16 Absolu 142 (Saint Ibicrate le Géomètre, pataphysicien - fête Suprême Quarte)
2 Vendémiaire An CCXXIII, 7,6502h - safran
2014-W39-2T18:21:38Z
 
- 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
3
Affichages
665
Réponses
4
Affichages
461
Retour