Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

stockage des données d'une plage de cellules dans une seule variable VBA ?

Besnard68

XLDnaute Occasionnel
Bonsoir le Forum,

dans une procédure VBA, je souhaite recopier une plage de cellules, d'une feuille Excel vers une autre, mais à destination de plusieurs endroits.

Plutôt que d'utiliser x fois la commande "Selection.copy" ... "Selection.PasteSpecial",
serait-il possible de stocker dans une seule variable, sous VBA, le contenu de cette plage de cellules, et de le copier vers d'autres adresses ? (suivant le principe d'une matrice je pense).

Merci pour votre aide.

@+
 

chris

XLDnaute Barbatruc
Re : stockage des données d'une plage de cellules dans une seule variable VBA ?

Bonjour

Tu peix faire plusieurs paste successifs à partir d'un seul copy mais à condition de ne pas intercaler d'autres actions entre les paste.
Tu peux aussi faire un seul paste sur plusieurs plages disjointes.

Sinon on doit effectivement pouvoir copier la plage dans un tableau (array) et utiliser ce tableau.
Mais je ne connais pas la commande qui permet cela.
Je vais regarder dans le Wiki de MichelXld, car je crois qu'il y a un chapitre sur les tableaux.

A suivre donc
 

excalibur

XLDnaute Impliqué
Re : stockage des données d'une plage de cellules dans une seule variable VBA ?

bonjour besnard chris le forum un ex: a adapter
recoper le contenu des cells a1 a2 vers toutes les feuilles en cells b1b2
Sub test()
Dim ws As Worksheet, s As Variant
s = Sheets(1).Range("a1:a2").Value
For Each ws In Worksheets
ws.Activate
If ws.Name <> "feuil1" Then
[b1:b2] = s
End If
Next ws
Sheets(1).Activate
End Sub
salutations
une autre approche a plusieurs endroits dans la feuille 2
Sub anc1()
Dim s As Variant
s = Sheets(1).[a1:a2]
With Sheets(2)
.[b1:b2] = s
.[c1:c2] = s
.[d1:d2] = s
End With
End Sub
 
Dernière édition:

Besnard68

XLDnaute Occasionnel
Re : stockage des données d'une plage de cellules dans une seule variable VBA ?

Bonsoir Chris, Excalibur et le Forum,

Merci à tous les 2 pour vos réponses.

Excalibur, ta méthode est on ne peux plus simple et... ça marche TRES BIEN.

Je l'avais, je l'avoue, essayée, ; mais j'avais commis l'erreur de désigner 1 seule cellule pour la destination (comme on le fait dans une feuille excel, en copier-coller) au lieu d'une plage au nombre de cellules identique à la plage de départ.

Encore merci pour votre aide et le partage de vos connaissances.


Bonne soirée.
 

Diyann

XLDnaute Nouveau
Re : stockage des données d'une plage de cellules dans une seule variable VBA ?

Bonjour le forum,

Je souhaite, comme Besnard68, selectionner une plage de cellule (365 lignes, 1 colonne), la mettre dans une variable et "copier" cette variable ailleurs.

Seulement, contrairement à Besnard68, je ne connais pas à l'avance la plage qui va recevoir cette selection. La colonne qui reçoit cette sélection dépend d'une variable l.

Mon code ne fonctionne pas.
SelectionParcl = Worksheets("Calculs_Parc" & l).Range("AY11:AY375")
Worksheets("Résultats_calendrier").Range(Cells(4, 6 + l), Cells(368, 6 + l)) = SelectionParcl

SelectionParcl est défini comme variant
Il m'indique une erreur définie par l'application ou par l'objet (erreur 1004)
Je ne comprends pas pourquoi....

Une idée ? Une corde ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…