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
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.
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
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
Bonjour,
A la 1ère boucle tout va bien, c'est ensuite que cela ne va plus, d'ailleurs si j'ai crée le Post c'est justement parce que j'ai un souci, sinon!!!
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.
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à).
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!!!
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.
C'est aussi que ça me faisait un peu comme un pense-bête pour revenir étudier ton problème ce soir, pour voir si je pouvait éventuellement arriver à faire quelque chose, mais The Big Apple a déjà parfaitement répondu à tes attentes.