Coller plusieurs "ranges" dans VBA

Bonjour,

J'ai présentement une macro qui copie plusieurs données. J'aimerais créer une nouvelle macro qui permettrait de coller ces données mais à différents endroits qui ne sont pas sur la même colonne ou ligne. À noter que je ne veux pas inclure la portion "copier" dans la nouvelle macro. Il y a du texte et des valeurs.

Les opérations se feraient l'une après l'autre.

Pour info voici la macro copie.

Sub copiercomp1()
' copiercomp1 Macro
 Range("C42,C45:C48,C51:C57,C60:C63,C66:C68,C76,C80:C98,C99:C100,C115:C126,C147:C176").Select
    Selection.Copy
End Sub

Est-ce possible!?

Merci!

Bonjour,

Franchement votre demande est incompréhensible

Merci de joindre un fichier avec exemple SVP

A+

bonjour BrunoM45,Alexcote,

Sub teste()
     sp = Split("C42,C45:C48,C51:C57,C60:C63,C66:C68,C76,C80:C98,C99:C100,C115:C126,C147:C176", ",")     'séparer avec la virgule
     For i = 0 To UBound(sp)
          Range(sp(i)).Copy Range("A1") 'copier une plage vers ..... A1 par exemple
     Next
End Sub

mais "Il y a du texte et des valeurs." ????

Voir ci-joint, un fichier pour illustrer mes propos.

La macro ne devrait pas inclure les cases copiées puisqu'elles peuvent provenir de différentes colonne. J'espère que c'est plus claire.

16test1.xlsm (22.75 Ko)

Bonjour à tous ,

Pour ce que j'en ai compris :

  1. Cliquer sur des 4 boutons "Copier n"
  2. Puis immédiatement après, cliquer sur le bouton "Coller ici"
  3. Sélectionner une cellule de destination (sur la même feuille ou sur une autre feuille) - cliquez sur OK

Pour un test, vous pouvez choisir la cellule H39 ou J44 comme cellule de destination.

le code dans module1 :

Sub collerIci()
Dim xrgCop As Range, xrgOu As Range, x, xtr, ytr&

   If Application.CutCopyMode = False Then Exit Sub
   Set xrgCop = Selection
   On Error Resume Next
   Set xrgOu = Application.InputBox(prompt:="Sélectionner la cellule de destination svp...", Type:=8)(1, 1)
   On Error GoTo 0
   If xrgOu Is Nothing Then Exit Sub
   xtr = xrgOu.Row - xrgCop.Row: ytr = xrgOu.Column - xrgCop.Column
   For Each x In xrgCop.Areas
      x.Copy xrgOu.Parent.Cells(x.Row + xtr, x.Column + ytr)
   Next x
End Sub

C'est presque ça. En fait, il faudrait simplifier. Je m'explique : J'aimerais avoir 4 boutons coller. 1 pour chaque colonne.

Le but est de par exemple copier la Colonne C pour la coller dans la colonne D (et donc de remplacer les valeurs) ou de copier la colonne E pour la coller dans la colonne C, etc.

Re,

Je ne comprend pas! Il faut bien connaitre la cellule vers où on va faire la copie, non ?

La copie de la colonne C (voir mon image) doit pouvoir remplacer les valeurs de la colonne D, E ou F.

C'est pourquoi je voulais 4 boutons coller (1 pour chaque). Le bouton coller de chacun va toujours utiliser les mêmes cases.

image

Bonjour à tous,

De ce que j'ai compris...un essai ...

13alexcote.xlsm (22.79 Ko)

Cordialement,

Bonsoir à tous,

Une autre version...

Super merci!

Rechercher des sujets similaires à "coller ranges vba"