Excel-macro

Résolu/Fermé
doumé - 6 févr. 2009 à 19:49
 doumé - 19 févr. 2009 à 20:28
Bonjour,
j'ai un tableau sur excel et je voudrais créer une macro qui insere automatiquement une nouvelle ligne avant la dernière ligne du tableau ,quand j'entre un chiffre dans la première cellule de l'avant dernière ligne et ainsi de suite afin d'avoir toujours une ligne de libre en bas du tableau.

merci d'avance
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
6 févr. 2009 à 21:41
bonjour

Est-ce que tu as des formules et des formats sur ton avant dernière ligne que tu veux mettre sur ta nouvelle ligne ?

Par exemple :
- tu as saisis la ligne 7 entièrement
- en A8 tu saisis ta cellule
- ceci doit insérer une ligne en 9 avec la structure de ta ligne 8
- l'ancienne ligne 9 (fin de tableau je suppose) se retrouve en ligne 10.

Est-ce bien ce que tu souhaites ?
0
c'est tout à fait ça ,j'ai effectivement des formules dans la dernière ligne ,c'est pour ça que je veux que l'insertion se fasse sur l'avant dernière ligne ,afin de préserver les formules
merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
8 févr. 2009 à 19:14
bonjour

Dans ce cas, tu peux mettre le code suivant dans ta feuille concernée (mode d'emploi)
Private val As Variant

Private Sub Worksheet_SelectionChange(ByVal sel As Range)
    If sel.Count = 1 Then val = sel.Value
End Sub

Private Sub Worksheet_Change(ByVal sel As Range)
If sel.Column = 1 And val = "" Then
    Dim col As Integer
    Application.EnableEvents = False
    Rows(sel.Row + 1).Insert
    For col = 1 To Cells(sel.Row).SpecialCells(xlCellTypeLastCell).Column
        If Cells(sel.Row, col).HasFormula Then
            Cells(sel.Row, col).Copy Destination:=Cells(sel.Row + 1, col)
        End If
    Next col
    Application.EnableEvents = True
End If
End Sub

Lorsque tu saisis une valeur en colonne A dans une cellule vide, une ligne est insérée dessous avec recopie des formules éventuelles de ta ligne et la ligne suivante n'est pas touchée.
0
salut,

merci pour la macro ça fonctionne au poil,

bonne journée et encore merci
0