Insertion ligne automatique selon condition.

Fermé
BilBo76 - 13 mars 2013 à 10:49
Bonjour,

Je suis tout nouveau sur ce forum donc excusez moi si je ne suis pas clair, si je fais de trop nombreuses fautes d'orthogoraphe ou si je ne poste pas au bon endroit.

Je débute en programmation Excel et j'ai besoin de vos lumieres.
Je voulais créer un système qui permettait d'insérer 1 ou 2 lignes (puis de les remplir) suivant une condition.

Voici le code que j'ai réussi à concevoir qui jusque maintenant ne me posait pas de problème :

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("C10") = 2 Then
Range("C10").Select
Selection.ClearContents
Rows("11:11").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B10").Select
ActiveCell.FormulaR1C1 = "bureau n°1"
Range("B10").Select
Selection.AutoFill Destination:=Range("B10:B11"), Type:=xlFillDefault
Range("E10:F10").Select
Selection.Copy
Range("E11").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If


If Range("C10") = 3 Then
Range("C10").Select
Selection.ClearContents
Rows("11:11").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B10").Select
ActiveCell.FormulaR1C1 = "bureau n°1"
Range("B10").Select
Selection.AutoFill Destination:=Range("B10:B12"), Type:=xlFillDefault
Range("E10:F10").Select
Selection.Copy
Range("E11").Select
ActiveSheet.Paste
Range("E12").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If


End Sub


J'arrive à mes deux problèmes :
1 - Sans devoir tout écrire de nouveau, je voudrais pouvoir appliquer ce système à toutes les lignes inférieurs (donc avec cellule contenant la condition c11, c12 c3...) Je n'ai aucune idée comment faire.

2 - Ensuite je voudrais fixer cette macro. En effet des que j'insert une ligne plus haut que la cellule C10 la macro ne suit pas donc elle est décalée. Pareil je n'ai pas trop de piste.

Je remercie tout ceux qui prendront la peine de me répondre.





A voir également: