Ajout ligne + copie des formules

Bonjour,

J'ai cherché plusieurs solutions pour répondre à mon besoin depuis quelques semaines, mais là je suis vraiment bloquée... Un grand merci par avance à ceux qui prendront le temps de m'aiguiller

J'ai le fichier ci-joint, qui va être utilisé par 3 personnes simultanément minimum, mais un total de 30 utilisateurs. Par expérience, je sais que les gens qui ne sont pas à l'aise sur excel ont tendance à mal ajouter les nouvelles lignes, à mal copier les formules etc etc

J'avais trouvé une parade, en mettant tout en format tableau, avec le bouton ajouter une ligne présent dans le fichier, l'utilisateur notait juste la référence demandée et la macro se charge de mettre la donnée en bas de la bonne colonne, et toutes les formules des cellules de la ligne se reportaient automatiquement, car format tableau.

SAUF que, je suis obligée d'oublier le format tableau parce que le fichier doit être partagé sur le réseau, et ne me demandez pas pourquoi, le réseau de mon entreprise bloque le partage excel lorsqu'il contient un tableau.

Du coup, j'ai besoin que le bouton ajouter une ligne renseigne la ref demandée en bas de la bonne colonne PUIS que toutes les formules soient copiées dans la ligne en question.

Ce n'est probablement pas sorcier mais je bloque

Merci pour votre aide et bonne journée !

Bonjour,

Ci joint ton fichier modifié.

J'en ai profité pour faire un lifting aux rares macros existantes.

Malheureusement comme il s'agit d'un modèle tu seras obligé de tout recréer :

De toute façon je n'ai pas pu tout faire car de nombreux liens étaient rompus.

Si tu regardes le code de ton UserForm tu verras qu'il contient plusieurs références nouvelles :

Private Sub boutonvalider2_Click()
Dim nligne As Integer
Dim ref As String
ref = champtexte2
nligne = Range("J" & Rows.Count).End(xlUp).Row + 1
   If ref <> "" Then
      With Sheets("2- MODIF CONTRAT")
         .Range("A" & nligne).Formula = "=FRMLA"
         .Range("B" & nligne).Formula = "=FRMLB"
         .Range("D" & nligne).Formula = "=FRMLD"
         .Range("E" & nligne).Formula = "=FRMLE"
         .Range("F" & nligne).Formula = "=FRMLF"
         .Range("G" & nligne).Formula = "=FRMLG"
         .Range("H" & nligne).Formula = "=FRMLH"
         .Range("J" & nligne) = ref
         .Range("O" & nligne).Formula = "=FRMLO"
         .Range("P" & nligne).Formula = "=FRMLP"
         .Range("Q" & nligne).Formula = "=FRMLQ"
         .Range("R" & nligne).Formula = "=FRMLR"
         .Range("S" & nligne).Formula = "=FRMLS"
         .Range("T" & nligne).Formula = "=FRMLT"
      End With
      Unload Me
   Else
      MsgBox ("Merci de saisir un ID valide")
      champtexte2.SetFocus
   End If
End Sub

Ces références sont en fait des noms créés dans le Gestionnaire de nom et ces noms contiennent les formules que contient la ligne 2. Malheureusement je n'ai pu créer que A2 et B2 car les autres cellules contiennent un formule dont les liens sont rompus.

Donc il va falloir t'infuser le mode opératoire pour recréer tous les noms nécessaires :

Les noms sont très simple FRML + la lettre de la colonne concernée.

Pour chaque formule que tu veux capturer dans un Nom tu dois te positionner sur la cellule de référence :

J'imagine que tu vas commencer par la cellule D2

Sélectionner la Cellule D2

Dans la barre de formule sélectionner et Copier (Ctrl+C) la formule de cette cellule (y compris le = ) puis faire "Echap"

Aller dans le Gestionnaire de nom et créer le Nom : "FRMLD"

Dans la zone Fait référence à : Coller la formule que tu viens de copier et valider puis fermer le Gestionnaire de Nom.

Dans les cellules D2 et D3 coller la nouvelle formule "= FRMLD"

YAPUKA faire la même chose pour les autres formule a créer colonnes E,F,G,H,O,P,Q,R,S,T

Ce n'est pas bien compliqué : Attention seulement pour la cellule A2 quand tu seras sur ton vrai classeur : Bien capturer toute la formule jusqu'à la dernière parenthèse...

Tu devras faire de même sur ton vrai classeur. Avantage : pas d'incrémentation compliquée. On sous traite au gestionnaire de nom la charge d'incrémenter tout ça et coté VBA c'est limpide... Pas besoin de commentaire soiseux qui nuisent à la compréhension...

Si tu as un doute ou un souci n'hésite pas à demander...

A+

Rechercher des sujets similaires à "ajout ligne copie formules"