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

  • Initiateur de la discussion Initiateur de la discussion Yo_ann
  • Date de début Date de début

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 !

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
 
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" 😕

En tout cas, merci pour ta réactivité !
 
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+
 
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
 
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
 
- 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
582
Retour