Saut de ligne automatique

Bonjour,

Je publie mon deuxième message, merci encore d'ailleurs à AntoineDL pour son aide précieuse par rapport à ma première publication ! Pour enfin finaliser mon tableau joint, je voudrais qu'un saut de ligne automatique se fasse lorsque la colonne A se retrouve remplie, j'ai essayé plusieurs programmation de VBA mais soit ça me fait un saut de ligne à chaque colonne que je rempli soit ça me met un message d'erreur. Pourriez-vous m'aider ?

Je vous remercie d'avance

Bonjour,

Si je résume bien ton problème :

Tu souhaites dès que tu as finis de remplir ta ligne 4 par exemple, que la cellule A5 soit directement sélectionnée ?

Cdt,

Killian

Bonjour Killian,

Non je souhaite que dès que les cellules en E4 soient remplies (peu importe la ligne), une nouvelle ligne apparaisse automatiquement à la suite de la ligne concernée. Par exemple, je remplie dans mon tableau tel qu'il est la cellule E4, hop une ligne s'insère en la ligne CH FERTE BERNARD et la ligne CH SAINT CALAIS. Si je remplie la cellule E6, hop une ligne s'insère en la ligne CH CHATEAU DU LOIR et PSSL.

Voici un code à insérer directement dans la feuille avec quelques précisions

Si vous avez des questions ou si ça ne convient pas n'hésitez pas à me redire

'Permet d'activer la procédure dès que la feuille subit un changement
Private Sub Worksheet_Change(ByVal Target As Range)

'Désactive les évènements (pour éviter une boucle infini la cellule change,
'ce qui change la cellule, ce qui redéclenche la procédure et ainsi de suite, ...)
Application.EnableEvents = False

'Si la cellule qui change est dans la colonne E
If Target.Column = 5 Then

    'On regarde si elle a été "vidée"
    If Target = "" Then

        'Auquel cas on supprime la ligne suivante
        Rows(Target.Row + 1).Delete Shift:=xlDown

    'Sinon, si elle a été remplie
    Else

        'Alors on insère une ligne en reportant le nom
        Rows(Target.Row + 1).Insert Shift:=xlDown
        Cells(Target.Row + 1, 1) = Cells(Target.Row, 1).Value

    End If

End If

'On réactive les évènements
Application.EnableEvents = True

End Sub

Killian,

Merci beaucoup pour ce code ! C'est presque exactement ce dont j'ai besoin, juste je remarque que lorsqu'une nouvelle ligne apparait, elle ne comporte plus mes formules présentes en F4 et G4. Peux tu s'il te plait ajouter ce petit détail au code ? Et la ça serait vraiment parfait !!! :D

Et voici

'Permet d'activer la procédure dès que la feuille subit un changement
Private Sub Worksheet_Change(ByVal Target As Range)

'Désactive les évènements (pour éviter une boucle infini la cellule change,
'ce qui change la cellule, ce qui redéclenche la procédure et ainsi de suite, ...)
Application.EnableEvents = False

'Si la cellule qui change est dans la colonne E
If Target.Column = 5 Then

    'On regarde si elle a été "vidée"
    If Target = "" Then

        'Auquel cas on supprime la ligne suivante
        Rows(Target.Row + 1).Delete Shift:=xlDown

    'Sinon, si elle a été remplie
    Else

        'Alors on insère une ligne en reportant le nom
        Rows(Target.Row + 1).Insert Shift:=xlDown
        'On copie la ligne précédente qu'on colle sur la ligne suivante
        Rows(Target.Row).Copy Rows(Target.Row + 1)
        'On supprime la valeur en E de la nouvelle ligne
        Cells(Target.Row + 1, 5) = ""
        Cells(Target.Row + 1, 1) = Cells(Target.Row, 1).Value

    End If

End If

'On réactive les évènements
Application.EnableEvents = True

End Sub

merci beaucoup !!!

Pas de soucis, en espérant que le code soit compréhensible

Rechercher des sujets similaires à "saut ligne automatique"