Affichage date vba

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
    758.8 KB · Affichages: 34
  • MC.zip
    758.8 KB · Affichages: 39
  • MC.zip
    758.8 KB · Affichages: 38

Modeste

XLDnaute Barbatruc
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.)?"
 

Nimbus

XLDnaute Occasionnel
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
 

Modeste geedee

XLDnaute Barbatruc
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 : :rolleyes:
=ENT(MOD(ENT((Ladate-2)/7)+0,6;52+5/28))+1
 
Dernière édition:

Nimbus

XLDnaute Occasionnel
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:
 

Nimbus

XLDnaute Occasionnel
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
 

Modeste geedee

XLDnaute Barbatruc
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 ... :rolleyes:
les dates visibles colonnes A n'ont alors aucune relation
Capture.JPG
difficile pour nous d'aller plus loin :mad:
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    29.5 KB · Affichages: 56
  • Capture.JPG
    Capture.JPG
    29.5 KB · Affichages: 56

Modeste

XLDnaute Barbatruc
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.
 

Modeste

XLDnaute Barbatruc
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!?
 

Nimbus

XLDnaute Occasionnel
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
 

Discussions similaires

Réponses
6
Affichages
398
Réponses
2
Affichages
630
Réponses
4
Affichages
407

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR