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

Microsoft 365 utiliser des listes en VBA

Simon 1234

XLDnaute Junior
Bonjour
J'ai déjà fait ça en C et en Python mais pas en VBA

Je voudrais indiquer dans une liste les cellules d'où je veux copier des valeurs et dans une autre les cellules vers lesquelles je veux coller des valeurs:

Sub Macro1()

source="a6","c2","e7"
destination="n10","b12",a33"

For i = 1 To 3
Range(Source(i)).FormulaR1C1 = Range(Destination(i)).Value

Next

End Sub


Quelque chose comme ça.
C'est possible? Comment fait-on?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Simon,
On peut faire :
VB:
Sub Macro1()
Source = Array("a6", "c2", "e7")            ' Déclaration tableau source
Destination = Array("n10", "b12", "a33")    ' et destination
For i = 0 To UBound(Source)                 ' Les tableaux commencent en 0, Ubound donne la fin
    Range(Destination(i)) = Range(Source(i)).Value
Next
End Sub
 

Simon 1234

XLDnaute Junior
C'est parfait, j'étais pas très loin. Merci ca fonctionne parfaitement, ça va faire du ménage dans mon code ^^

Bon et si je veux faire ça dans l'autre sens:

Sub Macro2()

copcol1 = Array("a1", "b1")
copcol2 = Array("a2", "c1")
copcol3 = Array("a3", "d1")

For i = 1 To 3
Range("copcol&i"(2) = Range("copcol&i"(1)).Value
Next

End Sub
 

Simon 1234

XLDnaute Junior
encore un grand merci à toi, ça fait tourner le code teeeelllleeeement plus vite
 

Discussions similaires

Réponses
4
Affichages
451
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…