XL 2013 VBA Copie de Cellules non contigues vers des cellules non contigues via une boucle

Yo_ann

XLDnaute Nouveau
Bonjour,

Voici ce que je tente de faire :

J'aurais une 30ène de cellules non contiguës à copier vers des cellules non contiguës différentes dans un autre classeur.

Je suis parti sur un tableau de correspondance du type (exemple sur 4 cellules):
tabcorrespondance(1, 1) = Range("J2:k2")
tabcorrespondance(1, 2) = Range("E33")
tabcorrespondance(1, 3) = Range("D33")
tabcorrespondance(1, 4) = Range("H31")
tabcorrespondance(2, 1) = Range("E10:F10")
tabcorrespondance(2, 2) = Range("D14")
tabcorrespondance(2, 3) = Range("F14")
tabcorrespondance(2, 4) = Range("C27")

Et je bloque dans la boucle ici :

For i = 1 To 9
'classeurSource.Active (pas besoin de l'activer, je l'ouvre juste avant)
Worksheets("TAB RECAP").Range(tabcorrespondance(1, i) & tabcorrespondance(1, i)).Select Selection.Copy

classeurDestination.Activate
Worksheets("Feuil1").Range(tabcorrespondance(2, i)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next

Et là, je suis en erreur dès la sélection : "erreur 13 : incompatibilité de type"

Merci par avance,

Yoann
 

Yo_ann

XLDnaute Nouveau
Re : VBA Copie de Cellules non contigues vers des cellules non contigues via une bouc

Bonjour pierrejean,

Ce que tu m'as envoyé fonctionne, je vais l'adapter et voir ce que ça donne !! Et me renseigner sur ce "Split" :confused:

En tout cas, merci pour ta réactivité !
 

Paf

XLDnaute Barbatruc
Re : VBA Copie de Cellules non contigues vers des cellules non contigues via une bouc

Bonjour Yo_ann, pierrejean :),

une autre solution:
Code:
dim CS as workbook, CC as Workbook
set CS = ClasseurSource ' à adapter
set CC=activeworkbook ' Classeur cible

tabcorrespondance(1, 1) = "J2:k2"
tabcorrespondance(1, 2) = "E33"
tabcorrespondance(1, 3) = "D33"
tabcorrespondance(1, 4) = "H31"
tabcorrespondance(2, 1) = "E10:F10"
tabcorrespondance(2, 2) = "D14"
tabcorrespondance(2, 3) = "F14"
tabcorrespondance(2, 4) = "C27"

For i = 1 To 4
   'copie du classeur Source
   CS.Worksheets("Feuil1").Range(tabcorrespondance(1, i)).Copy

   'Collage sur Classeur Cible
   CC.Worksheets("Feuil3").Range(tabcorrespondance(2, i)).PasteSpecial Paste:=xlPasteValues
Next

Adapter les noms de classeurs et de feuilles.

A+
 

Yo_ann

XLDnaute Nouveau
Re : VBA Copie de Cellules non contigues vers des cellules non contigues via une bouc

Bonjour Paf,

Ca tombes à pique ! Je me demandais comment faire pour avoir que la valeur avec la méthode à pierrejean. Déjà est-ce possible ?
Je tente ce que tu viens de m'envoyer.

Merci
 

Efgé

XLDnaute Barbatruc
Re : VBA Copie de Cellules non contigues vers des cellules non contigues via une bouc

Bonjour Yo_ann, Bonjour pierrejean, Paf

Une variante:
VB:
Sub Test3()
Dim RSrc As Variant, RDest As Variant, i&



RSrc = Array("A1", "C2:D2", "A3", "B3", "A5", "D6", "B8")
RDest = Array("A1", "B1:C1", "C3", "A5", "D5", "E8", "C4")



For i = LBound(RSrc) To UBound(RSrc)
    Sheets("Feuil2").Range(RDest(i)) = Sheets("Feuil1").Range(RSrc(i)).Value
Next i

End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 457
Membres
103 546
dernier inscrit
mohamed tano