Copie d'un Range en mémoire

mixedparts Messages postés 4 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 9 août 2007 - 7 août 2007 à 14:16
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 9 août 2007 à 11:30
Bonjour, je suis nouveau en VBA et j'essaie de copier un Range depuis une worksheet, vers une variable Variant.
Pour le moment j'utilise :
Set A = shin.Range(shin.Rows(cpt + 1), shin.Rows(cpt + bloc + 1))
Mais lorsque je modifie des cellules dans 'A', les données originelles dans la feuille 'shin' sont également modifiées.
J'ai bien essayé intuitivement de faire :
shin.Range(shin.Rows(cpt + 1), shin.Rows(cpt + bloc + 1)).Copy Destination:=A
mais cela ne fonctionne pas
Merci à ceux qui pourront m'aider!

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 août 2007 à 21:31
A est ici une référence vers ta plage de cellules. C'est juste un pointeur sur les cellules originelles, mais nullement une nouvelle plage de cellules
C'est donc normal que en modifiant A, les cellules originelles soient modifiées.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
mixedparts Messages postés 4 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 9 août 2007
8 août 2007 à 09:41
Oui, c'est bien là mon problème, j'aimerais avoir une copie 'indépendante' en mémoire, qui n'ira pas modifier le fichier.
Est-ce possible ?
0
mixedparts Messages postés 4 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 10:28
Je remarque que d'autres questions similaires ont déjà été posées dans le passé mais sans jamais avoir eu de réponse :(
Personne ne sait?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 août 2007 à 10:37
stockes les Values de ton range ou passes par le presse papier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 août 2007 à 11:30
Si j'ai bien compris...

    Dim MyArray()

    MyArray = Selection  ' ou Range("A3:E10")
    'Ceci n'affecte pas ta Selection
    MyArray(1, 1) = 0
    MyArray(1, 2) = "abc"

Comme MyArray réfère à la feuille Excel (Range), les Index commencent à 1 et non pas à 0

MPi
0
Rejoignez-nous