Téléchargement
illégal
Posez votre question Signaler

VBA_Besoin d'aide pour une macro_Copie & Inse

Eliette - Dernière réponse le 5 sept. 2011 à 20:25
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
Lire la suite 

VBA_Besoin d'aide pour une macro_Copie & Inse »

7 réponses
Réponse
+0
moins plus
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
Eliette - 2 sept. 2011 à 12:33
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.
Mytå- 2 sept. 2011 à 20:53
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å
Ajouter un commentaire
Réponse
+0
moins plus
re

le code fonctionne voir sa mise en application sur cet exemple
http://cjoint.com/?0IcukN6XYIx
selectionner une cellule et Crtl+i pour activer la macro
bonne suite
Ajouter un commentaire
Réponse
+0
moins plus
"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
Eliette - 5 sept. 2011 à 10:50
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.
Ajouter un commentaire
Réponse
+0
moins plus
re
peux tu envoyer ton fichier au format excel 2003?
Ajouter un commentaire
Ce document intitulé « VBA_Besoin d'aide pour une macro_Copie & Inse » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?