Probleme avec un code vba

Bonjour à tous,

J’ai réalisé un fichier Excel de comptabilité pour mon entreprise que je vais bientôt lancer. Ce fichier contient plusieurs feuilles de calcul pour chaque mois de l’année, ainsi qu’un tableau récapitulatif annuel. Dans chaque feuille mensuelle, j’utilise une macro attachée à un bouton pour actualiser un tableau qui affiche des informations clients (nom, numéro, ville, contact, et nombre de commandes). Cette macro est donc présente et identique sur chaque feuille mensuelle. Elle fonctionnait parfaitement jusqu’à ce que je décide de protéger certaines cellules contenant des formules pour éviter les manipulations accidentelles avec mes coéquipiers.

Problème :
Après avoir protégé les cellules de formule, j’ai constaté que la macro ne fonctionne plus pour actualiser le tableau. J’ai ensuite essayé d’enlever la protection sur ces cellules, mais malgré cela, la macro ne semble toujours pas fonctionner comme avant.

Mes questions :

  1. Y a-t-il une raison pour laquelle la macro ne marche plus, même après avoir enlevé la protection des cellules ?
  2. Est-il possible de configurer la macro pour qu’elle fonctionne tout en laissant les cellules de formule protégées ? Si oui, comment faire en sorte que la macro contourne la protection des cellules sans générer d’erreur ?

Je précise que je ne maîtrise pas vraiment le code VBA, donc je serais très reconnaissant pour toute aide ou code VBA que je pourrais utiliser pour résoudre ce problème. Merci d’avance pour votre aide et vos conseils !

Wofou 2024.xlsm (160,5 Ko)

Hello,

dans le fichier que vous fournissez il n’y a qu’une seule macro et elle (semble) fonctionner.
« j’ai constaté que la macro ne fonctionne plus pour actualiser le tableau » elle est sensé faire quoi cette macro et quel est le rapport avec la protection ?

Pour info, en utilisant l’argument UserinterfaceOnly de la méthode Protect avec comme valeur True, on protège la feuille pour les utilisateurs mais pas pour le VBA

Worksheets(« nom de la feuille »).Protect Password:=« ce que vous voulez », UserinterfaceOnly:=True

1 « J'aime »

La macro dans ce fichier Excel est censée gérer la mise à jour automatique d’une fiche client. À chaque fois que je complète une ligne dans le tableau de commandes (le premier tableau), qui inclut le nom du client, sa ville, son numéro de contact, son sexe et le nombre de commandes, la macro est censée transférer ces informations dans la fiche client, située juste à côté.

Plus précisément, le fonctionnement attendu de la macro est le suivant :

  • Lorsqu’un nouveau client apparaît dans le tableau de commandes, la macro, en appuyant dessus, doit ajouter les informations de ce client dans la fiche client.
  • Si un client existant repasse une commande durant le mois, la macro doit simplement mettre à jour son nombre total de commandes dans la fiche client, sans créer de doublons.

Cette macro a été initialement créée avec l’aide d’un membre du forum et fonctionnait parfaitement jusqu’à ce que je protège certaines cellules contenant des formules pour éviter toute modification accidentelle. Après avoir appliqué cette protection, j’ai remarqué que la macro ne fonctionnait plus correctement : la fiche client ne s’actualise pas et un message d’erreur s’affiche quand j’essaie de l’utiliser.

J’ai tenté d’enlever la protection des cellules, mais même après cette manipulation, la macro ne fonctionne toujours pas, et la fiche client ne s’actualise plus quand j’appuie sur le bouton.

Je souhaiterais donc savoir :

  1. Pourquoi la macro a cessé de fonctionner même après avoir enlevé la protection.
  2. S’il est possible de faire fonctionner la macro tout en laissant les cellules de formule protégées pour éviter les erreurs de manipulation.

Merci d’avance pour votre aide et vos suggestions !

Le problème pour moi c’est que je ne reproduit pas de message d’erreur (il manque un fichier lié si j’ai bien compris).

  1. sans pouvoir reproduire l’erreur je n’en ai pas la moindre idée. D’ailleurs quel est le message d’erreur et sur quelle ligne la macro s’arrête (si elle s’arrête) ?
  2. la réponse dépend de la macro, mais si le code est correct il n’y pas pas de raison

bonjour Nain_Porte_Koi, Ayemane,
le problème, c’est que la macro est prévu pour la feuille « Feuil1 » donc aout et les 11 autres n’ont rien. Donc j’ai modifié un peu la macro et j’éspère que cela fonctionne maintenant pour les 12 mois.
Wofou 2024.xlsm (168,3 Ko)

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.