Macro Excel copier 2 fois cellule

[Résolu/Fermé]
Signaler
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010
-
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010
-
Bonjour,
Je souhaiterai effectué une macro qui me copie la valeur d'une cellule dans 2 autres cellules. J'ai lancé une nouvelle macro et lancé enregistrement automatique mais le problème est que je dois faire cela pour 6000 cellules.
Est ce que quelqu'un aurait une idée de macro?
Ci dessous un extrait de la macro enregistrée :

Range("M51").Select
Selection.Copy
Range("O92").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O92:O93"), Type:=xlFillDefault
Range("O92:O93").Select

Emilie.

15 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Bonjour,

Pourrais-tu nous donner plus de détail ?

Les cellules sources sont-elles uniquement dans la colonne "M" ?
Les cellules destinations sont-elles toutes dans la colonne "O" ?

;o)
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Oui, les cellules sources sont uniquement dans la colonne M et les cellules de destinations dans la colonne O.


Emilie
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Ok

La cellule M51 est recopiée en O92 et O93.

Est-ce que, par exemple, la cellule M2 sera recopiée en O43 et O44 ?

Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Non, cela ce suit en fait.

Par exemple, la cellule M51 sera copiée en O92 et O93 et la cellule M52 sera copié en O94 et O95.

Voici la suite de la macro par exemple:

Range("M43").Select
Selection.Copy
Range("O76").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O76:O77"), Type:=xlFillDefault
Range("O76:O77").Select
Range("M44").Select
Selection.Copy
Range("O78").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O78:O79"), Type:=xlFillDefault
Range("O78:O79").Select
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Essaie avec ça

Dim DerniereLigne As Integer
Dim LigO As Long
Dim cl

LigO = 41

DerniereLigne = Range("M65536").End(xlUp).Row

For Each cl In Range("M1:M" & DerniereLigne)
    Range("O" & LigO).Value = cl.Value
    Range("O" & LigO + 1).Value = cl.Value
    LigO = LigO + 2
Next cl


;o)
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Oui, cela fonctionne en partie mais j'aimerai que le copie des cellules commence en ligne 11 et s'arréte à la ligne 6011.
Cela est il possible de le définir également?
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Euh, oups pardon, je veux juste dire que cela commence à la ligne11 de ma colonne M si c'est possible....
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
C'est à dire ? la cellule source ou celle de destination.

Quand je demandais des précisions plus haut, c'est tout ça que je sous entendais.

On a pas forcément une boule de crystal à dispo ^^

;o)


«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Oui, je sais mais il est vrai que vu que je réfléchis dessus depuis quelque jours il y a des choses qu'il me semble inutile de préciser, mais qui sont bien sur indispensable quand méme. Désolé....

Pour répondre à ta question la première cellule dans laquelle copier la 1ère valeur devrait étre la cellule M12, donc celle de destination doit étre M12.

Emilie.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Heuuuu je comprends pas là ... la cellule source et destination est la même ???

Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Alors, je recommence.

J'ai ma première cellule source en M11 et ma première cellule destination est en O12.

Exemple de la macro que j'ai réalisé :
Range("M11").Select
Selection.Copy
Range("O12").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O12:O13"), Type:=xlFillDefault
Range("O12:O13").Select
Range("M12").Select
Selection.Copy
Range("O14").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O14:O15"), Type:=xlFillDefault
Range("O14:O15").Select

Emilie.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Dans ton premier exemple M51 était copié en O92 et O93 !!! et là ça serait plutôt M51 copié en O52 et O53 ....

c'est pas pareil
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 171
Je dois partir:


Voilà en espérant que ça soit ce que tu veux.

Dim LigO As Long
Dim cl

LigO = 12


For Each cl In Range("M11:M6011")
    Range("O" & LigO).Value = cl.Value
    Range("O" & LigO + 1).Value = cl.Value
    LigO = LigO + 2
Next cl


Bon courage

;o)
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Non, je t'expliques :
M11 doit étre copier en O12 et O13......mais si tu continues cette logique tu arrives par palier de 2 à M51 copié en O92 et O93.

Voici la macro enregistrer losque je l'ai fait manuellement:
Range("M11").Select
Selection.Copy
Range("O12").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O12:O13"), Type:=xlFillDefault
Range("O12:O13").Select
Range("M12").Select
Selection.Copy
Range("O14").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O14:O15"), Type:=xlFillDefault
Range("O14:O15").Select
Range("M13").Select
Selection.Copy
Range("O16").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O16:O17"), Type:=xlFillDefault
Range("O16:O17").Select
Range("M14").Select
Selection.Copy
Range("O18").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O18:O19"), Type:=xlFillDefault
Range("O18:O19").Select
Range("M15").Select
Selection.Copy
Range("O20").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O20:O21"), Type:=xlFillDefault
Range("O20:O21").Select
Range("M16").Select
Selection.Copy
Range("O22").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O22:O23"), Type:=xlFillDefault
Range("O22:O23").Select
Range("M17").Select
Selection.Copy
Range("O24").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O24:O25"), Type:=xlFillDefault
Range("O24:O25").Select
Range("M18").Select
Selection.Copy
Range("O26").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O26:O27"), Type:=xlFillDefault
Range("O26:O27").Select
Range("M19").Select
Selection.Copy
Range("O28").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O28:O29"), Type:=xlFillDefault
Range("O28:O29").Select
Range("M20").Select
Selection.Copy
Range("O30").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O30:O31"), Type:=xlFillDefault
Range("O30:O31").Select
Range("M21").Select
Selection.Copy
Range("O32").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O32:O33"), Type:=xlFillDefault
Range("O32:O33").Select
Range("M22").Select
Selection.Copy
Range("O34").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O34:O35"), Type:=xlFillDefault
Range("O34:O35").Select
Range("M23").Select
Selection.Copy
Range("O36").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O36:O37"), Type:=xlFillDefault
Range("O36:O37").Select
Range("M24").Select
Selection.Copy
Range("O38").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O38:O39"), Type:=xlFillDefault
Range("O38:O39").Select
Range("M25").Select
Selection.Copy
Range("O40").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O40:O41"), Type:=xlFillDefault
Range("O40:O41").Select
Range("M26").Select
Selection.Copy
Range("O42").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O42:O43"), Type:=xlFillDefault
Range("O42:O43").Select
Range("M27").Select
Selection.Copy
Range("O44").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O44:O45"), Type:=xlFillDefault
Range("O44:O45").Select
Range("M28").Select
Selection.Copy
Range("O46").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O46:O47"), Type:=xlFillDefault
Range("O46:O47").Select
Range("M29").Select
Selection.Copy
Range("O48").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O48:O49"), Type:=xlFillDefault
Range("O48:O49").Select
Range("M30").Select
Selection.Copy
Range("O50").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O50:O51"), Type:=xlFillDefault
Range("O50:O51").Select
Range("M31").Select
Selection.Copy
Range("O52").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O52:O53"), Type:=xlFillDefault
Range("O52:O53").Select
Range("M32").Select
Selection.Copy
Range("O54").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O54:O55"), Type:=xlFillDefault
Range("O54:O55").Select
Range("M33").Select
Selection.Copy
Range("O56").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O56:O57"), Type:=xlFillDefault
Range("O56:O57").Select
Range("M34").Select
Selection.Copy
Range("O58").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O58:O59"), Type:=xlFillDefault
Range("O58:O59").Select
Range("M35").Select
Selection.Copy
Range("O60").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O60:O61"), Type:=xlFillDefault
Range("O60:O61").Select
Range("M36").Select
Selection.Copy
Range("O62").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O62:O63"), Type:=xlFillDefault
Range("O62:O63").Select
Range("M37").Select
Selection.Copy
Range("O64").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O64:O65"), Type:=xlFillDefault
Range("O64:O65").Select
Range("M38").Select
Selection.Copy
Range("O66").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O66:O67"), Type:=xlFillDefault
Range("O66:O67").Select
Range("M39").Select
Selection.Copy
Range("O68").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O68:O69"), Type:=xlFillDefault
Range("O68:O69").Select
Range("M40").Select
Selection.Copy
Range("O70").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O70:O71"), Type:=xlFillDefault
Range("O70:O71").Select
Range("M41").Select
Selection.Copy
Range("O72").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O72:O73"), Type:=xlFillDefault
Range("O72:O73").Select
Range("M42").Select
Selection.Copy
Range("O74").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O74:O75"), Type:=xlFillDefault
Range("O74:O75").Select
Range("M43").Select
Selection.Copy
Range("O76").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O76:O77"), Type:=xlFillDefault
Range("O76:O77").Select
Range("M44").Select
Selection.Copy
Range("O78").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O78:O79"), Type:=xlFillDefault
Range("O78:O79").Select
Range("M45").Select
Selection.Copy
Range("O80").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O80:O81"), Type:=xlFillDefault
Range("O80:O81").Select
Range("M46").Select
Selection.Copy
Range("O82").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O82:O83"), Type:=xlFillDefault
Range("O82:O83").Select
Range("M47").Select
Selection.Copy
Range("O84").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O84:O85"), Type:=xlFillDefault
Range("O84:O85").Select
Range("M48").Select
Selection.Copy
Range("O86").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O86:O87"), Type:=xlFillDefault
Range("O86:O87").Select
Range("M49").Select
Selection.Copy
Range("O88").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O88:O89"), Type:=xlFillDefault
Range("O88:O89").Select
Range("M50").Select
Selection.Copy
Range("O90").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O90:O91"), Type:=xlFillDefault
Range("O90:O91").Select
Range("M51").Select
Selection.Copy
Range("O92").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O92:O93"), Type:=xlFillDefault
Range("O92:O93").Select

En espérant que cela puisse t'aider.
Merci pour tout.
Je vais essayé de continuer avec les informations que tu m'as donné.

Emilie.
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010

Oui, ton programme fonctionne.
Merci beaucoup.
Bonne journée.

Emilie.