• Initiateur de la discussion Initiateur de la discussion Nimbus
  • 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 !

Nimbus

XLDnaute Occasionnel
Bonjour à tous,

J'ai un programme vba qui me permet copier / coller des données en fonction du n° semaine (MC_Plastique, MC_Shootage etc.) dans un document commun (MC_Commun). Seulement, le n°de semaine ne s'affiche pas j'ai dan sla colonne correspondante "NOM" qui s'affiche.

Quelqu'un saurait comment résoudre se petit soucis?

Le code en question se situe dans le document MC_Commun.

Merci pour votre aide

Nimbus
 

Pièces jointes

  • MC.zip
    MC.zip
    758.8 KB · Affichages: 34
  • MC.zip
    MC.zip
    758.8 KB · Affichages: 39
  • MC.zip
    MC.zip
    758.8 KB · Affichages: 38
Re : Affichage date vba

Bonjour Nimbus,

Réfléchissons un instant: comment obtiens-tu ce fameux numéro de semaine dans le classeur original? Autrement posée, la question pourrait être: "que contiennent de particulier, les fichiers de départ (MC_Shootage, MC_Expédition, etc.)?"
 
Re : Affichage date vba

Bonjour Modeste,

Dans mes fichiers MC_Shootage, MC_Finition... il y a dans le module 3 ce code:

Code:
Function prem(an As Integer) As Date
For n = CDate("01/01/" & an) To CDate("07/01/" & an)
  If Weekday(n) = 5 Then prem = n - 3
Next n
End Function
Function NOSEM(ladate As Date) As Variant
  NOSEM = Int((ladate - prem(Year(ladate))) / 7) + 1
  If NOSEM = 53 And Weekday(ladate) < 5 Then NOSEM = "1 de " & Year(ladate) + 1
End Function

Qui me permet de me renvoyer le numéro de semaine correspondant à la date rentrée.

Cela t'aide t'il?

Merci
 
Re : Affichage date vba

Bonsour®
dans le fichier MC_Commun
tu utilises la fonction NOSEM (qui appelle aussi la fonction Prem)
et même la fonction ISOWEEKNUM...
ces fonctions ne sont pas présentes dans ce fichier !!

soit :
- tu les inclues dans ce fichier.
- tu précises dans quel fichier elles trouvent ( il faut indiquer le chemin complet !!)
- tu utilises une autre formule : 🙄
=ENT(MOD(ENT((Ladate-2)/7)+0,6;52+5/28))+1
 
Dernière édition:
Re : Affichage date vba

Je viens de tester les différentes méthodes de Modeste geedee mais, quand je sélectionne un n° de semaine dans mon doc MC_Commun, il ne m'inscrit pas les bonnes semaines...
C'est à dire, quand je sélectionne la semaine n°20 dans MC_Commun, il m'inscrit dans la colonne "N° Semaine" n'importe quoi alors que la date correspond à la semaine 20...

Doc en PJ pour mieux comprendre:
 
Re : Affichage date vba

Modeste geedee

Quand je test chez moi, il me note tout le temps
Code:
=ENT(MOD(ENT((Tableau1[[#Cette ligne];[Date ]]-2)/7)+0,6;52+5/28))+1
dans la s=colonne "N°Semaine" comme il va chercher les infos dans un autre document.

Je ne comprends pas ou est l'erreur, surtout qu'il prend les bonnes dates...

Tu sais ou est l'erreur?

Merci
 
Re : Affichage date vba

Bonsour®
dans ce classeur il est fait référence aux dates se trouvant dans les différents ateliers:
=ENT(MOD(ENT(('Chemin\MC_Shootage.xlsm'!Tableau1[[#Cette ligne];[Date ]]-2)/7)+0,6;52+5/28))+1
=ENT(MOD(ENT(('Chemin\MC_Finition.xlsm'!Tableau1[[#Cette ligne];[Date ]]-2)/7)+0,6;52+5/28))+1
=ENT(MOD(ENT(('Chemin\MC_Expédition.xlsm'!Tableau1[[#Cette ligne];[Date ]]-2)/7)+0,6;52+5/28))+1
?????
dans le fichier MC_Commun le "tableau1" n'est même pas défini ...
C'est à dire, quand je sélectionne la semaine n°20 dans MC_Commun, il m'inscrit dans la colonne "N° Semaine" n'importe quoi alors que la date correspond à la semaine 20...
c'est en effet n'importe quoi ... 🙄
les dates visibles colonnes A n'ont alors aucune relation
Capture.JPG
difficile pour nous d'aller plus loin 😡
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    29.5 KB · Affichages: 64
  • Capture.JPG
    Capture.JPG
    29.5 KB · Affichages: 65
Re : Affichage date vba

Re,

Une façon de contourner la difficulté serait que la macro ne fasse pas un "copier-coller", mais un collage spécial (valeurs et format des nombres) ... si le numéro de semaine dans MC_Commun n'est pas susceptible de devoir être mis à jour.
 
Re : Affichage date vba

Bonjour le fil,

qu'est ce que je dois changer / ajouter dans le code?
À première vue, je dirais juste remplacer la ligne
Code:
.Range("A" & cel.Row & ":N" & cel.Row).Copy Destination:=WbDestination.Worksheets("Donnees").Range("A" & L)

... Par ces deux-ci:
Code:
.Range("A" & cel.Row & ":N" & cel.Row).Copy
WbDestination.Worksheets("Donnees").Range("A" & L).PasteSpecial Paste:=xlPasteValuesAndNumberFormats

Si tu ne veux pas que ça "flashe", pense à ajouter "Application.ScreenUpdating = False" au début de ton code (et le réactiver en fin de procédure).
Si le volume à traiter est beaucoup plus conséquent que dans ton exemple, et que le calcul des n° de semaine ne doit plus être actualisé, il vaudrait sans doute mieux travailler avec un tableau en mémoire!?
 
Re : Affichage date vba

Bonjour Modeste,

Merci pour ton aide.
Le collage spéciale fonctionne mais, le pgm ne me colle pas les données du document "MC_Expédition". Et je ne trouve pas la source d'erreur...

Pourrais tu, stp, m'aider sur ce point?

Merci beaucoup
 
- 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

Réponses
10
Affichages
1 K
Réponses
5
Affichages
691
  • Question Question
Microsoft 365 Code VBA
Réponses
6
Affichages
851
Réponses
1
Affichages
604
Réponses
2
Affichages
997
Retour