XL 2013 Insérer formules dans VBA pour afficher que les valeurs

Laliepomm

XLDnaute Junior
Bonjour à tous,

Je viens vers vous avec un problème.
Je voudrais pouvoir intégrer mes formules en VBA afin de pouvoir afficher en lançant une mise à jour que les valeurs dans mes tableaux (évitant ainsi que les utilisateurs ne puissent supprimer les formules par erreur).

Ma difficulté est que les utilisateurs peuvent insérer des colonnes (bouton "insérer collaborateur supplémentaire") dans le tableau "tableaucompétence" présent dans l'onglet "compétences". Cela décale donc les valeurs à prendre en compte dans mes formules, du coup, pour pallier à ce problème, j'ai fait en sorte de prendre en compte la colonne "Niv de compétence: 1" dont je déduis ensuite les valeurs. La solution la plus simple que j'ai trouvé 😅

Pour intégrer mes formules, j'ai essayé comme suit :
Lorsque j'utilise l'enregistreur de macro, il n'arrive pas à retranscrire mes formules en langage vba.
Avec le gestionnaire de nom de l'onglet formule dans excel, en définissant un nom, mais résultat identique.

Du coup, je me tourne vers vous, chers experts.

J'ai recopié l'intégralité de mes formules dans un onglet "Formules".

D'avance merci pour votre support,

vous trouverez en pièce jointe le fichier concerné.

Cordialement,

Lalie
 

Pièces jointes

  • FINALISATION FR FRA 30 Tableau de compétence et polyvalence - 20 11 2020.xlsm
    88.8 KB · Affichages: 10

Laliepomm

XLDnaute Junior
Bonjour Sousou
Malheureusement, si cela m'aide à ne pas modifier les formules, la protection m'empêche d'insérer une nouvelle colonne dans mon tableaucompétence (à partir de la case O23) avec la macro "insertcol" (bouton "insérer un nouveau collaborateur")
Or je dois vraiment avoir la possibilité d'ajouter des colonnes à partir de ce point...
As-tu une autre idée?
D'avance merci pour ton support
Salutations
Lalie
 

sousou

XLDnaute Barbatruc
Bonjour.
Erreur de code

modifie ton code comme ceci
Sub InsertCol()
With Sheets("Compétences")
.Unprotect

With Sheets("Compétences").ListObjects("TableauCompétence")
'Ajout d'une colonne en 15ème position
.ListColumns.Add (15)
'Remplissage de la colonne ajoutée
End With


Range("nbcollminimum").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Protect
End With
Application.Calculate
End Sub
 

Laliepomm

XLDnaute Junior
Merci Sousou!
Cela résoud mon problème d'insertion de colonne via la macro .

Du coup, je viens de vérifier le reste et la protection continue à me bloquer.
Je ne peux pas ajouter de nouvelles lignes à mon tableaucompétence...
J'ai essayé de sélectionner l'agent "insertion des lignes"& "modification des cellules", également fait en sorte de déverrouiller les cellules en dessous de mon tableau, mais cela ne change rien.
Aaarrrgh! Que la protection est compliquée!

Une autre idée?

D'avance merci
et bon appétit!
Slts
 

Discussions similaires