VBA_Besoin d'aide pour une macro_Copie & Inse

Eliette -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je suis complètement novice en VBA.
J'ai enregistré la macro ci-dessous mais au lieu d'avoir une ligne spécifique, j'aimerais que ces actions se fassent à partir de la cellule sélectionnée, quelle qu'elle soit.

Rows("29:29").Select
Selection.Copy
Rows("30:30").Select
Selection.Insert Shift:=xlDown
Rows("30:30").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Rows("30:31"), Type:=xlFillDefault
Rows("30:31").Select

Les actions se résument ainsi :
Copie d'une ligne X, insertion de cette ligne X juste en dessous (soit en X+1) et copie de la ligne X+1 sur la ligne X+2 (copie formules & mise en forme)

Merci par avance de votre aide,
Eliette

4 réponses

ccm81 Messages postés 11033 Statut Membre 2 434
 
bonjour
peut être comme ceci

Dim li As Long, co As Long
li = Selection.Row
co = Selection.Column
Cells(li + 1, co).Insert Shift:=xlDown
Rows(li).Copy Cells(li + 1, co)

bonne suite
0
Eliette
 
Merci mais ça ne fonctionne pas. Il y a une erreur d'exécution.

Non seulement, il n'y a que la cellule sélectionnée qui est insérée (et non la ligne, ce qui décale tout) et la formule n'est même pas copiée.
0
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   956
 
Salut le forum

On peut simplifier le code par
Sub Insert_Copie()  
    ActiveCell.EntireRow.Offset(1).Insert  
    Rows(ActiveCell.Row).Copy ActiveCell.Offset(1)  
End Sub  

En poussant encore un peu :)
Sub Insert_Copie() 
  With ActiveCell 
    .EntireRow.Offset(1).Insert 
    Rows(.Row).Copy .Offset(1) 
  End With 
End Sub 

Mytå
0
ccm81 Messages postés 11033 Statut Membre 2 434
 
re

le code fonctionne voir sa mise en application sur cet exemple
https://www.cjoint.com/?0IcukN6XYIx
selectionner une cellule et Crtl+i pour activer la macro
bonne suite
0
antipolis a Messages postés 17152 Statut Membre 2 860
 
"Copie d'une ligne X, insertion de cette ligne X juste en dessous (soit en X+1) et copie de la ligne X+1 sur la ligne X+2 (copie formules & mise en forme)"

Mais cela revient à copier la ligne X sur les lignes x+1 et x+2. ! ! !

http://www.cijoint.fr/cjlink.php?file=cj201109/cijTN5K9en.xls
0
Eliette
 
Euhh pas tout à fait, je me suis en fait un peu mal exprimé je pense.
Déjà, je souhaite insérer une ligne (et pas seulement copier) et je souhaite incrémenter (plutôt que copier) celle copiée sur la ligne au dessus de laquelle on vient de faire l'insertion.

J'ai besoin de cette incrémentation car en insérant la ligne, les formules de la ligne du dessous sont altérées.

En suivant ce lien (http://www.cijoint.fr/cjlink.php?file=cj201109/cij5M0PIFF.xlsm) un aperçu plus concret de ma demande.
0
ccm81 Messages postés 11033 Statut Membre 2 434
 
re
peux tu envoyer ton fichier au format excel 2003?
0