Forum Clubic

Insertion automatique de ligne excel

Bonjour,
Je travaille sous excel et je souhaiterai insérer automatiquement des lignes dans un tableau. En faite je veux que quand la cellule A1 n’est plus vide une ligne vierge soit insérer entre la ligne 1 et la ligne 2. Quand la cellule A2 n’est pas vide une ligne vierge soit insérer entre la ligne 2 et la ligne 3 et ainsi de suite. Je souhaite que les lignes de mon tableau apparaissent au fur et à mesure que je le remplit.
Je vous reercie de me filler un petit coup de pouce.

Ca peut se faire en VBA, avec l’évènement Change de la feuille de calcul concernée (Worksheet_Change).
La difficulté, c’est qu’il se produit à la sortie de la cellule et qu’il donne les coordonnées de la nouvelle cellule active.
–> Il te faudra donc avoir mémorisé la position précédente et son contenu.
–> Ce qui se fait dans l’évènement Change précédent etc …

Je te remercie pour ta réponse en fait au début je commence avec un tableau à une ligne. Je veux que quand cette ligne est remplit une ligne vierge en dessous soit insérer. Une fois que cette nouvelle ligne est remplit je veut qu’une nouvelle ligne vierge soit insérer en dessous et ainsi de suit. J’espère que c’est explication sera plus claire.

Pour moi c’était très clair du premier coup.
La solution que je t’ai donnée correspond tout à fait à ça.
Tu en es à quel niveau en VBA ?

Edit : Juste une précision : tu ne crées la ligne vierge que qand TOUTES les cellules de la ligne précédente sont remplies, ou dès que la première cellule est remplie ?

Mon nivau est vraiment trés faible j’ai déjà créé quelque petite macro mais sa s’arrête là. J’aurais besoins de plus d’explication s’il te plait. Je te remercie

OK on va tout reprendre en pas à pas, mais avant j’ai besoin de la réponse à ma question juste au dessus

Dés que la première cellule est remplit

Ton tableau (les cellules à remplir) commence en A1 ou il y a une ligne de titres ?
et y a-t-il quelque chose immédiatement sous le tableau ?

si tu pouvais faire une copie écran ce serait bien

Non les cellules a remplir commence en A3. Ensuite il y a quelque chose sous le tableau à partir de A8. J’essaie de t’envoyer une copie d’écran.

J’ai fait la copie d’écran mais je n’arrive pas à la mettre sur le forum désolé.

Si je peux me permettre de m’imiscer, il faut héberger ton image pour l’afficher sur le forum, par exemple ici:
http://imageshack.us/

Si j’ai bien compris le problème, tu dois pouvoir faire ceci :
1- sous excel, tu nommes la cellulejuste en dessous de ton tableau (A4 si j’ai bien compris) PremiereCelluleApresTableau
2- sous VBA, tu vas dans Feuil1
3- dans les deux fenêtres déroulantes en haut de l’éditeur, tu choisis
worksheet et Change
4- tu copies/colles le code suivant :


Private Sub Worksheet_Change(ByVal Target As Range)
    ' teste si la cellule juste au dessus est remplie
    If Range("premiereCelluleApresTableau").Offset(-1) <> "" Then
        ' ajoute une ligne - la ligne s'insère au dessus
        Application.EnableEvents = False ' pour ne pas se mordre la queue
        Range("premiereCelluleApresTableau").EntireRow.Insert xlShiftDown
        Application.EnableEvents = True
    End If
End Sub

5- Tu testes
6- Tu nous dis si ca marche, et surtout si ca ne marche pas

Petit détérage 8 ans après quand même mais qui vaut le coup.

Je dois pas être la première personne à réutiliser ce bout de code mais comme l’initiateur du sujet n’a pas jugé intéressant de répondre, je me devais de remercier “gcc” car sa macro fonctionne extrêmement bien, perso ça fait 2 jours que je bataille avec une autre macro similaire qui fonctionne aléatoirement suivant des tableaux quasi identique et les différentes versions d’excel…

Encore un grand merci à gcc.

Bonjour, Merci beaucoup pour ce code!
J’ai une question supplémentaire : que faut-i ajouter à ce code afin de conserver les formules présentes dans le tableau svp?

Merci d’avance!