Microsoft 365 Remplacer données dans TS

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric72

XLDnaute Accro
Bonjour à tous, je rencontre de nouveau un souci que je vais tenter de vous expliquer:
- j'ai un tableau dans l'onglet "Export a Copier" avec un bouton COPIER TABLEAU, jusque là tout va bien
- J'ai un deuxième bouton REMPLACER DONNEES DANS TABLEAU qui informe que les données pour ce "Mois Année" ont déjà été enregistrées, on demande alors si l'utilisateur veut remplacer ces données dans l'archive, à ce moment la macro supprime les données du même Mois Année, puis recopie l'Export, cet à ce moment que ma macro tourne en rond, elle supprime bien, recopie bien les données mais retourne au début du code et boucle, il y a une erreur mais je ne vois pas ou!!!
Merci beaucoup pour votre aide.
Eric
 

Pièces jointes

Solution
Bonjour à tous,

Il me semble (opinion toute personnelle) que votre code est un peu compliqué.
J'en ai écrit un qui est plus court, qui ne distingue pas entre copie et mise à jour (c'est la même macro).
  • on commence par ôter de l'archive toutes les lignes qui ont un [Mois année] présent dans l'export à copier
  • ensuite on copie toutes les données de l'export dans l'archive
  • on termine par un tri de l'archive
Le code est commenté.

Encore faut-il que cela corresponde à votre besoin...

Pour votre erreur, je m'y mettrai dès que possible.
Bonjour eric72
supprime les données du même Mois Année, puis recopie l'Export, cet à ce moment que ma macro tourne en rond, elle supprime bien, recopie bien les données mais retourne au début du code et boucle, il y a une erreur mais je ne vois pas

Vous feriez du pas à pas lors de l'exécution de votre macro, vous verriez qu'il y a un gros souci
06 2024 est également effacé, du coup ce sont toutes les lignes 🤔

A+
 
Bonjour à tous,

Il me semble (opinion toute personnelle) que votre code est un peu compliqué.
J'en ai écrit un qui est plus court, qui ne distingue pas entre copie et mise à jour (c'est la même macro).
  • on commence par ôter de l'archive toutes les lignes qui ont un [Mois année] présent dans l'export à copier
  • ensuite on copie toutes les données de l'export dans l'archive
  • on termine par un tri de l'archive
Le code est commenté.

Encore faut-il que cela corresponde à votre besoin...

Pour votre erreur, je m'y mettrai dès que possible.
 

Pièces jointes

Dernière édition:
Re,

Votre anomalie (erreur d'exécution) :
VB:
If PL(k) = PeriodeSite Then PL.ListObject.ListRows(i).Delete

Je pense, à mon humble avis, que l’indice i n'a pas sa place dans cette instruction. Il s'agit de k (boucle sur l'archive) et non pas de i qui est l'indice de boucle sur les données à copier.
Sans doute une coquille et c'est souvent très difficile à trouver quand il s'agit de son propre code (je parle par expérience).

VB:
If PL(k) = PeriodeSite Then PL.ListObject.ListRows(k).Delete
Avec cette modification, votre code semble bien se dérouler (sans erreur).


Concernant la boucle :
Prenons le mois année 05 2024. Si l'utilisateur veut la copie alors :
vous ôtez toutes les lignes "05 2024"de l'archive
puis vous copiez tout l'export dans l'archive

Ensuite vous passez à la deuxième ligne de l'export ;
vous cherchez 05 2024 dans l'archive et vous le trouvez car vous avez déjà transféré une fois le tableau export dans archive
vous ôtez toutes les lignes "05 2024"de l'archive
puis vous copiez tout l'export dans l'archive

Ensuite vous passez à la troisième ligne de l'export ;
vous cherchez 05 2024 dans l'archive et vous le trouvez car vous avez déjà transféré deux fois le tableau export dans archive
vous ôtez toutes les lignes "05 2024"de l'archive
puis vous copiez tout l'export dans l'archive

et ainsi de suite jusqu'à la dernière ligne de l'export...

En fait, une fois que vous avez transféré le tableau, il est inutile de continuer. Si l'export concerne plusieurs mois alors c'est une autre affaire (ma version doit gérer ce cas là).

En espérant que j'ai bien analysé votre code...
 
Dernière édition:
Bonjour à tous,

Il me semble (opinion toute personnelle) que votre code est un peu compliqué.
J'en ai écrit un qui est plus court, qui ne distingue pas entre copie et mise à jour (c'est le même macro).
  • on commence par ôter de l'archive toutes les lignes qui ont un [Mois année] présent dans l'export à copier
  • ensuite on copie toutes les données de l'export dans l'archive
  • on termine par un tri de l'archive
Le code est commenté.

Encore faut-il que cela corresponde à votre besoin...

Pour votre erreur, je m'y mettrai dès que possible.
Bonjour,
Merci beaucoup pour votre réponse, c'est parfait, le seul petit hic est que je souhaitais mettre une sécurité avec le Msgbox et la confirmation de l'utilisateur, mais après réflexion ça n'est peut-être pas nécessaire!!!
 
Bonjour à tous,

Il me semble (opinion toute personnelle) que votre code est un peu compliqué.
J'en ai écrit un qui est plus court, qui ne distingue pas entre copie et mise à jour (c'est le même macro).
  • on commence par ôter de l'archive toutes les lignes qui ont un [Mois année] présent dans l'export à copier
  • ensuite on copie toutes les données de l'export dans l'archive
  • on termine par un tri de l'archive
Le code est commenté.

Encore faut-il que cela corresponde à votre besoin...

Pour votre erreur, je m'y mettrai dès que possible.
Après réflexion, votre solution convient tout à fait, c'est parfait.
Merci beaucoup pour votre aide précieuse.
Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour