Copier coller avec macro

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 !

Cazinos

XLDnaute Occasionnel
Bonsoir le forum,

Voici une macro qui fonctionne à condition que le nombre de ligne ne changent pas.

Quand le nombre de ligne varies ca ne fonctionne plus alors j'ai pensé qu'il faudrait peut-être nommé les cellules mais je ne sais pas le faire.

Merci pour vos idées


Cazinos


Sub CopierCollerDifferenceRégul()

Range("R3169:R3172").Select

Selection.Copy
Range("Q3179").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False


End Sub
 
Re : Copier coller avec macro

Bonsoir Cazinos, le fil,

Sinon, voici une solution parmi tant d'autre

Code:
Sub CopierColler()
' Proposition d'Excel-lent

Dim Ligne As Long
Dim Colonne As String



 Ligne = InputBox("[COLOR="Red"]la cellule où vous souhaitez effecter le collage est sur quelle ligne ?[/COLOR]", "[COLOR="Blue"]T'attends quoi pour répondre ci-dessous?[/COLOR]")
 Colonne = InputBox("[COLOR="Red"]la cellule où vous souhaitez effecter le collage est dans quel colonne (en lettre) ?[/COLOR]", "[COLOR="Blue"]T'attends quoi pour répondre ci-dessous?[/COLOR]")
     
 Range("A1:A15").Select
 Selection.Copy
 Range(Colonne & Ligne).Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False

End Sub

PS. 1 : le texte en bleu est le titre de la boite qui va s'ouvrir. Evidement, à la place, tu peux mettre ce que tu veux 😉

PS. 2 : le texte en rouge est la question qui apparaîtra dans la boite qui souvrira (juste au dessus de la zone de saisie). Tu peux également la modifier à ta guise!

Bonne soirée
 
Re : Copier coller avec macro

Bonsoir,

En effet, avec un exemple c'est un peu plus clair et autre avantage on peut tester notre macro 🙂

En voici une qui semble correspondre à tes attentes.

Code:
Sub CopiageCollageSpécialValeur()

[COLOR="Red"]Dim LigneCopiageFin As Long
Dim LigneCollage As Long


LigneCollage = Range("I65535").End(xlUp).Row
LigneCopiageFin = Range("J65535").End(xlUp).Row[/COLOR]

[COLOR="Blue"][B]If[/B] LigneCollage = 25 [B]Then[/B]
   LigneCollage = LigneCollage + 4
   [B]Else:[/B] LigneCollage = LigneCollage + 1
[B]End If[/B]

Range("J19:J" & LigneCopiageFin).Copy
Range("I" & LigneCollage).Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False[/COLOR]

End Sub

Traduction en texte de la macro ci-dessus :

1/ Définition des variables.
Les variables "LigneCopiageFin" et "LigneCollage" contiendrons un nombre entier inclus entre -2.147.483.648 et 2.147.483.647

La variable "LigneCopiageFin" contiendra le numéro de la ligne jusqu'où il faut copier (dans ton fichier : 23 -> [J23])

La variable "LigneCollage" contiendra le numéro de la ligne à partir d'où il faut faire le collage spécial (dans ton fichier : 29 -> [I29])


Se mettre sur la cellule [I65535], puis remonter jusqu'à la première cellule rempli : [I25]. Mettre le numéro de la ligne : 25 dans la variable LigneCollage

Se mettre sur la cellule [J65535], puis remonter jusqu'à la première cellule rempli : [J23]. Mettre le numéro de la ligne : 23 dans la variable LigneCopiageFin


2/ Condition Si-alors-sinon
Si la variable "LigneCollage" est égal à 25 alors la mettre dans la variable "LigneCollage" 25+4 soit 29
Sinon, mettre dans la variable "LigneCollage" 2...+1 soit ...

3/ Copier - Collage spécial : valeur
Sélectionner la zone [J19] à [Colonne : J, Ligne : numéro contenu dans la variable LigneCopiageFin]

Puis coller le tout (collage spécial : valeur) à partir de la cellule [Colonne : I, Ligne : numéro contenu dans la variable LigneCollage]


Si la macro ne te convient pas, explique nous en mot ce que tu veux exactement, comme ci-dessus (juste la partie bleu). Nous le traduirons en VBA et rajouterons la partie rouge nous même.

Bonne fin de soirée

Edit : attention, certaines de tes cellules de la colonne A ont des formules circulaires!!!
 
Dernière édition:
Re : Copier coller avec macro

Bonjour et merci,

Par contre j'ai un soucis la macro fonctionne bien mais si j'ajoute des lignes au dessus alors c'est plus bon.

j'ai nommé les cellules pour plus de facilité ce qui donne :

copier "A_répartir_AB" et coller le contenu dans "Total_régul_AB"
copier "A_répartir_BX" et coller le contenu dans "Total_régul_BX"
copier "A_répartir_CF" et coller le contenu dans "Total_régul_CF"
copier "A_répartir_CP" et coller le contenu dans "Total_régul_CP"
copier "A_répartir_SG" et coller le contenu dans "Total_régul_SG"

Cazinos
 
Re : Copier coller avec macro

Bonsoir Cazinos, le fil,

??? Désolé, mais je ne comprend pas tout!

1/ Copier A? La colonne A???

2/ Répartir??? Répartir qu'elle montant? Comment le répartir? En fonction de quel ratio ou pourcentage?

3/ Répartir dans la colonne AB??? Elle est vide, pas de titre de colonne, rien!

4/ Où se situe ta colonne "Total régul AB"? Dans la colonne AB? Elle est vide dans ta pièce jointe!

5/ ...

Peux-tu faire un fichier exemple correspondant à ta question de ce matin?

Effectivement, si tu rajoute des lignes au-dessus, la macro n'en tient pas compte (j'étais persuader que si tu rajouter des trucs, c'était forcément en dessous.

Dans l'attente de ton fichier pour pouvoir mieux t'aider.

Bonne soirée
 
Re : Copier coller avec macro

Bonsoir et merci

"A_répartir_AB" c'est le nom d'une cellule j'ai donc nommé 10 cellules.
J'ai fais un test avec le magnéto de excel VBA ca fonctionne mais quand j'ajoute des lignes au dessus ca fonctionne plus.

copier "A_répartir_AB" et coller le contenu dans "Total_régul_AB"
copier "A_répartir_BX" et coller le contenu dans "Total_régul_BX"
copier "A_répartir_CF" et coller le contenu dans "Total_régul_CF"
copier "A_répartir_CP" et coller le contenu dans "Total_régul_CP"
copier "A_répartir_SG" et coller le contenu dans "Total_régul_SG"

Cazinos
 
Re : Copier coller avec macro

Bonsoir Cazinos,

C'est normal! Quand tu ajoutes un(des) cellule(s) au dessus, comme son nom l'indique, ce n'est pas DANS ta zone, mais en dehors! Plus précisément au dessus!

Une fois la(les) cellule(s) rajouté, il faut RE-nomer ta(tes) cellule(s).

En VBA, il faut mettre une adresses absolu!
 
Re : Copier coller avec macro

Bonsoir Cazinos,

Sur ton fichier, je vois bien tes noms de cellules : "Centre_responsabilite", "entite", ... mais pas "A_répartir_..."!

Perso, je ne comprend pas ta question! Si tu veux une réponse concréte, soit plus clair, sinon c'est mission impossible.

L'idéal pour que nous comprenions, met sur le forum ton fichier correspondant à ton post du : 07/12/2008, 21h03 (avec ta macro faite avec l'enregistreur - sans l'insertion de lignes).

Puis dis nous où tu veux rajouter la(les) ligne(s), et l'endroit précis où tu veux la(les) recopier.

Bonne soirée
 
- 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
18
Affichages
600
Réponses
10
Affichages
796
Réponses
2
Affichages
401
Retour