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...
 

Pièces jointes

  • Test pour forum.xlsx
    12.8 KB · Affichages: 17

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).
 

Pièces jointes

  • Test pour forum(1).xlsm
    25.5 KB · Affichages: 49

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
 

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 ?
 

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:

Discussions similaires

Réponses
8
Affichages
492

Statistiques des forums

Discussions
315 080
Messages
2 116 020
Membres
112 637
dernier inscrit
pseudoinconnu