Insertion ligne automatique au dessus en gardant mise en forme/formules/validation de donnée de la ligne du dessous

workaa

XLDnaute Nouveau
Bonjour à ceux qui lisent ce poste,

J'ai un petit problème bien bloquant sur Excel 2010. J'ai un tableau de 30 colonnes avec autant de ligne que de commande. Ces commandes je les rentre une par une en incrémentant, non en dessous du tableau, mais toujours en "ligne 2" juste sous l'en-tête du tableau. Or mon tableau est muni de formules, de mise en forme, de validation de données etc...
Je cherche un moyen d'insérer automatiquement une ligne au dessus de la ligne 2 dès que je commence à taper quelque chose dans la ligne 2 (qui va donc devenir la ligne 3) et en gardant la mise en forme de cette dernière.
Pour l'instant, en insérant manuellement, j'obtiens une ligne qui a la même mise en forme que l'en tête de mon tableau (pas la bonne mise en forme, pas de formules...). J'ai fouillé dans internet et les codes VBA trouvés sont pour insérer une ligne en dessous...

Je ne sais pas si j'ai été claire... Je vous ai mis mon fichier en PJ.

Merci beaucoup pour votre aide.

PS : niveau VBA je suis plutôt débutante. J'arrive certaines choses mais plutôt simple avec un code de base en exemple. Je n'ai fais que du python...
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonjour workaa, bienvenue sur XLD,
Je cherche un moyen d'insérer automatiquement une ligne au dessus de la ligne 2 dès que je commence à taper quelque chose dans la ligne 2
Ce n'est pas possible car en mode Edition aucune macro ne peut s'exécuter.

Il faut utiliser un UserForm ou une TextBox dans la feuille, cherchez sur le forum ou le web.

A+
 

job75

XLDnaute Barbatruc
Cela dit la meilleure solution est d'utiliser le double-clic en ligne 2 :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Rows(2)) Is Nothing Then Exit Sub
Cancel = True
Rows(2).Copy
Rows(2).Insert
Rows(2).ClearContents
[A2] = Application.Max([A:A]) + 1 'numéro
End Sub
A placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).
 

Fichiers joints

workaa

XLDnaute Nouveau
Bonjour job75,

Merci beaucoup pour votre aide, je n'avais pas pensé a une solution comme celle-ci et ça marche plutôt bien. Ma mise en forme est bien gardée et je suis contente du résultat !

Encore merci et passez une bonne journée
 

eriiiic

XLDnaute Barbatruc
Bonjour,

Utilise un Tableau structuré.
supprimer ton filtre auto, 'Insérer / Tableau'.
Ensuite tu te mets sur la ligne 2 et clic-droit, 'Insérer / Lignes de tableau au-dessus'
eric
 

Jayrome

XLDnaute Nouveau
J'y suis presque ! Merci pour cette idée du double clique.
Dans mon cas j'ai un joli tableau avec une mise en forme, des bordures définies et ensuite une ligne avec des totaux. Imaginant que mon tableau possède 10 lignes permettant d'entrer des sommes à aditionner puis en dessous une ligne de totaux. J'aimerai, si j'ai plus de 10 lignes à additionner que la 11ème ligne et suivantes s'ajoutent automatiquement au fur et à mesure que la derniere ligne est remplie ou avec ce clic-droit très intéressant.
Quelqu'un aurait une piste pour m'aider ?
 

bambi

XLDnaute Occasionnel
Bonjour la file, bonjour à tous
Superbe réponse de @job75 comme toujours :)

@Jayrome
Je pense que si tu veux une réponse à ton problème, le mieux est de créer un nouveau message avec un fichier exemple ;)
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Cette procédure dans le module de l'objet Worksheet qui représente la feuille fait ce que vous dites lors du clic droit sur une cellule de la ligne de totaux.
VB:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   Dim LOt As ListObject
   Set LOt = Target.ListObject
   If LOt Is Nothing Then Exit Sub
   If Intersect(LOt.TotalsRowRange, Target) Is Nothing Then Exit Sub
   Application.Goto Intersect(Target.EntireColumn, LOt.ListRows.Add.Range)
   Cancel = True
   End Sub
(Elle empêche du même coup de supprimer la ligne de totaux, si on ne l'avait mise que pour faire des essais. … chier, ça !)
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas