Macro pour insertion lignes

Bonjour,
J'ai un tableau excel dans lequel il ya un menu deroulant sur la colonne C. j'aimerai que quand un item du menu est selectionné (donc cellule non vide), une autre ligne s'insère automatiquement et que les formules des autres cellules se duplique. je ne suis pas une pro des macros, j'ai essayé ça mais elle ne s'execute pas automatiquement et elle ne duplique pas les formules des autres cellules. merci pour votre aide.

Sub InsertRows()

Dim Ligne As Long

' derniere ligne remplie de la colonne C

Ligne = ActiveSheet.Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row

' boucle depuis la dernière ligne remplie jusqu'à la 1

For n = Ligne To 1 Step -1 ' si necessaire de s'arrêter avant la ligne 1 changer To 1

' si cellule en C vide

If Range("C" & n).Value <> "" Then

' alors insertion à la ligne suivante

Rows(n + 1 & ":" & n + 1).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

End If

Next

End Sub

10 réponses

  1. Bonjour,

    Un essai quand même
    https://www.cjoint.com/c/JIrjH4LKGvB

    Cdlmnt
    0
    1. merci beaucoup ccm81, ça fonctionne.
      0
  2. Bonjour
    J'espère que ça correspond à tes souhaits
    https://www.cjoint.com/c/JIrfcXcAUbz
    A+ François
    0
    1. merci beaucoup François, ça fonctionne.
      0
  3. Je n'ai pas regardé ni modifié la macro.
    Pour comprendre exactement ce que tu veux, j'ai besoin d'un fichier complété (manuellement tu ajoutes trois ou quatre lignes renseignées) comme ,indiqué dans mon précédent message

    Cdlmnt
    0
    1. Bonjour,
      Je viens d'exécuter la macro, ce que je veux c'est quand je l'execute une deuxieme fois pour le tableau plus bas, qu'il ne m'insert pas d'autres lignes en haut (remplissage jaune). je veux que ça se fasse juste quand la ligne du dessus est non vide. deplus j'aiamerai qu'un total se calcul (fait manuellemet)

      merci pour votre aide
      0
      1. Bonjour à tous les deux

        Peux tu ajouter (à la main) quelques lignes complétées à la fin de ton premier tableau pour qu'on voie ce que tu souhaites obtenir après insertion ?

        Cdlmnt
        0
        1. Bonjour
          Il serai souhaitable d'avoir un fichier pour pouvoir t'aider
          Utilise cjoint.com
          A+ François
          0
          1. Merci François,
            Sur mon fichier, dans la colonne C j'ai différents menus déroulants. Quand j'execute la macro pour la premiére fois, la ligne s'insert au bon endroit, mais par la suite, les lignes s'inserent sous les lignes déjà insérées par la macro même si elles sont vides. de plus sur la colonne E, j'ai une somme qui ne se calcule pas.
            Merci pour votre aide.
            0
            1. Bonjour,
              Sub InserLigne_L_()
              Dim Plage As Range

              ActiveCell.EntireRow.Copy
              ActiveCell.EntireRow.Insert
              Set Plage = ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, 3)
              If Not Plage Is Nothing Then Plage.ClearContents
              End Sub

              A+ François
              1