Macro pour insertion lignes
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
-
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 -
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. -
Bonjour
Il serai souhaitable d'avoir un fichier pour pouvoir t'aider
Utilise cjoint.com
A+ François -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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 -
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 -
Bonjour
J'espère que ça correspond à tes souhaits
https://www.cjoint.com/c/JIrfcXcAUbz
A+ François -
Bonjour,
Un essai quand même
https://www.cjoint.com/c/JIrjH4LKGvB
Cdlmnt -
J'ai trouvé ca ce matin car je cherchais la meme chose.
https://www.pcastuces.com/pratique/astuces/4272.htm