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

  1. 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
    1. 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
    2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      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
  2. 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
  3. antipolis a Messages postés 17152 Statut Membre 2 917
     
    "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
    1. 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
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re
    peux tu envoyer ton fichier au format excel 2003?
    0