Macro Excel - Copier Insérer cellule pointée
Résolu/Fermé
_gfv
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
-
21 mars 2011 à 08:02
_gfv Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 24 mars 2011 - 21 mars 2011 à 17:01
_gfv Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 24 mars 2011 - 21 mars 2011 à 17:01
A voir également:
- Insérer les cellules copiées excel
- Formule excel pour additionner plusieurs cellules - Guide
- Insérer liste déroulante excel - Guide
- Verrouiller cellules excel - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
7 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 21/03/2011 à 11:41
Modifié par ccm81 le 21/03/2011 à 11:41
bonjour
quelque chose comme ça?
bonne suite
quelque chose comme ça?
plage = "A1:B3" Range(plage).Copy Selection.Offset(13, 9).Select ActiveSheet.Paste
bonne suite
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
21 mars 2011 à 16:04
21 mars 2011 à 16:04
re
désolé, j'ai mal compris l'énoncé ...
une autre solution, un peu différente de celle de Mike-31
bonne suite
désolé, j'ai mal compris l'énoncé ...
une autre solution, un peu différente de celle de Mike-31
Const plage = "A1:B3" Dim li As Long, nbli As Long nbli = Range(plage).Rows.Count Selection.Offset(1, 0).Select For li = 1 To nbli ActiveCell.EntireRow.Insert Next li Range(plage).Copy ActiveSheet.Paste
bonne suite
_gfv
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
21 mars 2011 à 13:32
21 mars 2011 à 13:32
bonjour ccm81,
dans ce gout là en effet, sauf que ta macro colle et n'insert pas, elle "écrase" donc les cellules.
aurais-tu le code pour l'insertion de ces linges ainsi qu'un autre pour la recopie de formule par rapport à la cellule active lors de l'insertion ?
gfv
dans ce gout là en effet, sauf que ta macro colle et n'insert pas, elle "écrase" donc les cellules.
aurais-tu le code pour l'insertion de ces linges ainsi qu'un autre pour la recopie de formule par rapport à la cellule active lors de l'insertion ?
gfv
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
21 mars 2011 à 14:30
21 mars 2011 à 14:30
Salut,
je ne vois pas très bien ou tu veux en venir, ce code insère 9 lignes (équivalence ligne 8 à 16), à partir de la cellule active dans lesquelles sont copié les lignes 8 à 16.
Si ce n'est pas ce que tu cherches, explique différemment tes attentes
Sub Macro1()
ActiveCell.Resize(9).EntireRow.Insert
Rows("8:16").Copy
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
je ne vois pas très bien ou tu veux en venir, ce code insère 9 lignes (équivalence ligne 8 à 16), à partir de la cellule active dans lesquelles sont copié les lignes 8 à 16.
Si ce n'est pas ce que tu cherches, explique différemment tes attentes
Sub Macro1()
ActiveCell.Resize(9).EntireRow.Insert
Rows("8:16").Copy
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
_gfv
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
21 mars 2011 à 15:37
21 mars 2011 à 15:37
bonjour Mike-31,
en fait la macro deccm81, colle mais n'insert pas. ce que je souhaite, c'est insérer les cellules copiées.
J'ai refait ce code :
plage = "A1:BB3" ' sélection de la plage à insérer
Range(plage).Copy ' copie de la plage
Selection.Offset(13, 9).Select ' cellule active et décalage du point d'insertion
Selection.Insert Shift:=xlDown ' insertion de la sélection
Application.CutCopyMode = False
qui fonctionne pour l'insertion bien qu'il faille que je mette l'Offset à (0,0) pour insérer depuis la cellule pointée par la souris. Je pense que ce code correspond à peu près au tiens.
Maintenant mon objectif est de coller des formules à partir de la cellule pointée et je crois pouvoir y arriver avec le code de ccm81.
Je vous tiens au courant de mon avancée, mais si quelqu'un possède un code tout près moins moche que celui réalisé avec l'enregistreur excel, je suis preneur, car ce code est à refaire 20 fois.
gfv
en fait la macro deccm81, colle mais n'insert pas. ce que je souhaite, c'est insérer les cellules copiées.
J'ai refait ce code :
plage = "A1:BB3" ' sélection de la plage à insérer
Range(plage).Copy ' copie de la plage
Selection.Offset(13, 9).Select ' cellule active et décalage du point d'insertion
Selection.Insert Shift:=xlDown ' insertion de la sélection
Application.CutCopyMode = False
qui fonctionne pour l'insertion bien qu'il faille que je mette l'Offset à (0,0) pour insérer depuis la cellule pointée par la souris. Je pense que ce code correspond à peu près au tiens.
Maintenant mon objectif est de coller des formules à partir de la cellule pointée et je crois pouvoir y arriver avec le code de ccm81.
Je vous tiens au courant de mon avancée, mais si quelqu'un possède un code tout près moins moche que celui réalisé avec l'enregistreur excel, je suis preneur, car ce code est à refaire 20 fois.
gfv
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
21 mars 2011 à 15:51
21 mars 2011 à 15:51
Bonjour tout le monde,
Tu peux peut être essayer ceci :
Tu peux peut être essayer ceci :
plage = "A1:BB3" ' sélection de la plage à insérer Range(plage).Copy ' copie de la plage ActiveCell.Insert Shift:=xlDown 'insère les cellules copiées ActiveCell.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 'dans la même plage colle les formules et formats de nombre
_gfv
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
21 mars 2011 à 16:06
21 mars 2011 à 16:06
bonjour pijaku,
ta macro m'a l'air bien, mais les formules à insérer ne sont pas dans la même plage, voici un exemple concret :
Sub Macro3()
ActiveCell.Resize(9).EntireRow.Insert
Rows("8:16").Copy
ActiveSheet.Paste
Application.CutCopyMode = False
plage = "J12:Q12"
Range(plage).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste
End Sub
j'ai donc collé ces 2 codes en 1 seuls. Les 2 fonctionnent séparément, mais en 1 macro, VBA me donne une erreur à la ligne
Selection.Offset(13, 9).Select
Après l'insertion des lignes 8 à 16 sous ma cellule pointée, je cherche à coller les formules le la ligne J12 à Q12 13 à partir de 13 cellule plus bas pour 9 cellules à gauche... mais les 2 codes compilés ne fonctionnent pas, si l'un de vous a une petite idée... et encore merci pour vos réponses, cela ne doit pas être toujours facile de comprendre l'attente de quelqu'un :)
gfv
ta macro m'a l'air bien, mais les formules à insérer ne sont pas dans la même plage, voici un exemple concret :
Sub Macro3()
ActiveCell.Resize(9).EntireRow.Insert
Rows("8:16").Copy
ActiveSheet.Paste
Application.CutCopyMode = False
plage = "J12:Q12"
Range(plage).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste
End Sub
j'ai donc collé ces 2 codes en 1 seuls. Les 2 fonctionnent séparément, mais en 1 macro, VBA me donne une erreur à la ligne
Selection.Offset(13, 9).Select
Après l'insertion des lignes 8 à 16 sous ma cellule pointée, je cherche à coller les formules le la ligne J12 à Q12 13 à partir de 13 cellule plus bas pour 9 cellules à gauche... mais les 2 codes compilés ne fonctionnent pas, si l'un de vous a une petite idée... et encore merci pour vos réponses, cela ne doit pas être toujours facile de comprendre l'attente de quelqu'un :)
gfv
_gfv
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
Modifié par _gfv le 22/03/2011 à 07:13
Modifié par _gfv le 22/03/2011 à 07:13
re tout le monde,
J'ai compilé la 2nd macro de ccm81 (qui est plus classe à l'action que l'autre !) avec la première de ccm81 ce qui me donne (dans mon appli) ceci :
Sub Macro4()
Const plage = "A8:BC16"
Dim li As Long, nbli As Long
nbli = Range(plage).Rows.Count
Selection.Offset(0, 0).Select
For li = 1 To nbli
ActiveCell.EntireRow.Insert
Next li
Range(plage).Copy
ActiveSheet.Paste
plage2 = "J12:U12"
Range(plage2).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste
End Sub
à priori cela fonctionne bien, je la recopie dans mon userForm et je vous tiens au courant du fonctionnement :)
Edit : je confirme, cela fonctionne bien. Mais il me reste encore 2 petites choses afin de finaliser :
- insérer une condition du type s'il y a "XXX" dans la cellule (même ligne que la cellule pointée) de la colonne AK, il ne faut pas que la macro fonctionne,
- quel serait le code pour la suppression du même nombre de ligne insérées (avec un décalage vers le haut soit la fonction inverse de l'insertion) ?
_gfv
J'ai compilé la 2nd macro de ccm81 (qui est plus classe à l'action que l'autre !) avec la première de ccm81 ce qui me donne (dans mon appli) ceci :
Sub Macro4()
Const plage = "A8:BC16"
Dim li As Long, nbli As Long
nbli = Range(plage).Rows.Count
Selection.Offset(0, 0).Select
For li = 1 To nbli
ActiveCell.EntireRow.Insert
Next li
Range(plage).Copy
ActiveSheet.Paste
plage2 = "J12:U12"
Range(plage2).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste
End Sub
à priori cela fonctionne bien, je la recopie dans mon userForm et je vous tiens au courant du fonctionnement :)
Edit : je confirme, cela fonctionne bien. Mais il me reste encore 2 petites choses afin de finaliser :
- insérer une condition du type s'il y a "XXX" dans la cellule (même ligne que la cellule pointée) de la colonne AK, il ne faut pas que la macro fonctionne,
- quel serait le code pour la suppression du même nombre de ligne insérées (avec un décalage vers le haut soit la fonction inverse de l'insertion) ?
_gfv