Problème avec la mise en forme tableau

Bonjour,

J'ai des données mises sous forme de tableau.

Un ID en colonne A puis Nom, Montant HT, taxe et Montant TTC (tout simple pour l'exemple).

J ai 2 boutons, un pour ajouter une ligne qui incrémente de 1 l'ID de la colonne A et un pour supprimer une ligne et un calcul dans la colonne "montant TTC".

Le fichier est destiné à un utilisateur distant et je ne veux pas qu'il efface malencontreusement l'ID de la colonneA et/ou le calcul du montant TTC.

Si je protège les cellules du tableau (colonne A et E) et que je protège la feuille, mes boutons (macros) ne fonctionnent plus.

Si j'utilise un formulaire de saisie, même problème, les boutons ne fonctionnent pas si des cellules du tableau sont protégées ! ...

Avez vous une solution simple sans ou avec VBA avec laquelle l'utilisateur peut ajouter une ligne dans le tableau qui incrément de 1 la colonne A, qui ajoute la formule "montant TTC" de la colonne E dans la nouvelle ligne tout en ne pouvant pas effacer les données de ces 2 colonnes ! ...

Merci !!!!!!!!! je patauge depuis longtemps avec ça.

13fichier-test.xlsm (31.99 Ko)

Bonjour,

Dans la mesure où tu protéges ton fichier ... ta macro doit être simplement .... "prévenue" ...

' au début de ta macro
ActiveSheet.Unprotect
' ton code ....
'à la fin de ta macro
ActiveSheet.Protect

Bonjour,

Une première proposition.

Cdlt.

14fichier-test.xlsm (27.34 Ko)

bonjour,

une autre solution...

A+

Merci Jean Eric ça fonctionne bien mais je voudrais aussi que la nouvelle ligne incrémente la colonne A de 1.

Peux tu faire ça?

Hé...hé...

ma solution le fait car elle ne modifie pas ton code...

A+

Re,

Bonjour Galopin01

A tester.

Cdlt.

14fichier-test.xlsm (27.77 Ko)

Merci beaucoup, je teste vos solutions sur mon fichier

Je ne sais pas où je fais une erreur mais j obtiens le message "debogage" sur la ligne

ActiveSheet.Range("A" & ligne_premiere_cellule_vide).Value = Application.WorksheetFunction.Max(ActiveSheet.Range("A2:A" & ligne_premiere_cellule_vide - 1)) + 1

quand je clique le bouton ajouter une ligne ...

sinon le fichier de Galopin lui fonctionne très bien juste avec le code

Private Sub Workbook_Open()

ActiveSheet.Protect Password:="galopin", UserInterfaceOnly:=True

End Sub

dans thisworkbook


Ah oui je voulais vous dire aussi que vos 2 dernières solutions fonctionnent mais tout le fichier est verrouillé y compris les cellules de saisie.

Pour le moment la solution de Galopin fonctionne très bien et recoud mon problème.

Je n,arrive juste pas a obtenir le meme resultat dans mon fichier original juste en copiant le code dans thisworkbook ...

en fait que j insère le code

Private Sub Workbook_Open()

ActiveSheet.Protect Password:="galopin", UserInterfaceOnly:=True

End Sub

dans thisworkbook ou non ne change rien: quand j ajoute la nouvelle ligne j obtiens une erreur d execution 1004 sur la ligne

ActiveSheet.Range("A" & ligne_premiere_cellule_vide).Value = Application.WorksheetFunction.Max(ActiveSheet.Range("A2:A" & ligne_premiere_cellule_vide - 1)) + 1

du code "ajouter une ligne"

merci de votre aide, je sens que je suis prêt du but

ca y est je viens de trouver.

J'ai pris le code de Jeaneric "modProtection" dans le module et ça marche !

Merci beaucoup!!

Merci,

Tu reviens quand tu veux.

Cdlt.

Rechercher des sujets similaires à "probleme mise forme tableau"