Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
J'ai actuellement un tableau que exporte dans excel via une macro, le problème est lorsque j'ouvre excel, le format a été modifié mais uniquement pour les valeurs de cette année et pas les autres.
en exportant manuellement le result est correct
en utilisant la macro ll modifie la propriété de la cellule (les autres sont en standard et les deux dernières en personnalisée)
voici la formule du champs week
Num (week(Jobexec_date),'00') & '-' & (Year(Jobexec_date)) as SEMAINE2018,
quelqu'un a une idée pourquoi il interprète différement certaines valeurs ? où faut il forcer le système ?
d'avance merci
Bonjour, peux tu nous donner le format de de ton champs Jobexec_date?
week ('2012-10-12') | renvoie 41. |
week( '35648') | renvoie 32, car 35648 = 1997-08-06. |
week('2012-10-12', 0, 1) | renvoie 42. |
Bonjour Cyrille,
merci déjà d'avoir répondu au post
pour être précis la declaration de la semaine vient de deux sources differents et deux champs differents :
de la première source voici l'expression
num (week (Date(Date#(RRFDAT, 'YYYYMMDD'))),'00') & '-' & Year(Date(Date#(RRFDAT, 'YYYYMMDD'))) as SEMAINE2018,
voici le format du champs RRFDAT
Date(Date#(RRFDAT, 'YYYYMMDD')) as RRFDAT, dans le tableau la date apparait comme ceci :
RowNo() | MOIS | RRFDAT | Line | RRMNTT | RRRPIT | RRTIME |
2633 | janv. | 2018/01/08 | 2 | 0 | 2,4 | 8 |
2634 | janv. | 2018/01/08 | 2 | 0,6 | 2,5 | 8 |
2635 | janv. | 2018/01/08 | 2 | 0 | 2,4 | 8 |
2636 | janv. | 2018/01/08 | 4 | 0 | 0,1 | 8 |
2637 | janv. | 2018/01/08 | 4 | 0 | 0 | 8 |
pour la deuxième expression :
Num (week(Jobexec_date),'00') & '-' & (Year(Jobexec_date)) as SEMAINE2018,
voici le format du champs 'jobexec date'
'2016-04-01'
j'espère que c'est plus clair ...
Bonjour Philippe,
Dans ta macro, tu crées un nouveau fichier Excel ou tu utilises un fichier Excel existant pour effectuer ton exportat ?
Bonjour Sébastien, tout d'abord meilleur vœux pour 2018 !!
le fichier existait déjà, ce qui se passe c'est qu'il crée automatiquement un nouvel onglet à chaque mardi de la semaine.
Pour la petite histoire, au début la valeur de la colonne était simplement le chiffre de la semaine année 2017
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
mais avec l'arrivée de la semaine 01 de 2018, il fallait distinguer les semaines de 2017 et 2018 et l'intégrer de façon logique :
11-2017
12-2017
01-2018
02-2018
et donc début d'année j'ai modifier la formule pour intégrer l'année.
um (week (Date(Date#(RRFDAT, 'YYYYMMDD'))),'00') & '-' & Year(Date(Date#(RRFDAT, 'YYYYMMDD'))) as SEMAINE2018,
voici le script dans la macro excel qui s'effectue à l'ouverture du fichier :
Sub ExcelExpwCaption
filePath = l'emplacement du fichier
sheetName = "Week " & Datepart("ww",Date,vbtuesday)-1
Set excelFile = CreateObject("Excel.Application")
excelFile.DisplayAlerts = False
excelFile.Visible = true
Set curWorkBook = excelFile.Workbooks.Open(filePath)
numSheet = sheetExists(curWorkBook, sheetName)
if numSheet > 0 then
set curSheet = curWorkBook.WorkSheets(numSheet)
else
curWorkBook.Sheets.Add
Set curSheet = curWorkBook.ActiveSheet
curSheet.Name = sheetName
end if
j'espère avoir répondu à ta question
Philippe
Le problème vient plutôt d’Excel qui veut bien faire et pensant reconnaître une date au format Mois-Année, Excel change le type de la cellule en Date et applique le format Mois-Année par défaut.
Maintenant, pourquoi est-ce que Excel effectue cet auto formatting avec la macro et pas avec l’extraction manuel. Cela doit certainement être lié avec la façon dont les données sont collées dans Excel.
Peux-tu d’écrire toutes les opérations effectuéles lors ce que tu réalises ton extraction manuelle?
Peux-tu nous fournir la macro utiliséé pour l’extraction par macro?
Bonjour Sébastien,
Concernant l'extraction manuelle, je sélectionne tout simplement l'option ..
Sub ExcelExpwCaption
Sub ExcelExpwCaption
filePath = l'emplacement du fichier
sheetName = "Week " & Datepart("ww",Date,vbtuesday)-1
Set excelFile = CreateObject("Excel.Application")
excelFile.DisplayAlerts = False
excelFile.Visible = true
Set curWorkBook = excelFile.Workbooks.Open(filePath)
numSheet = sheetExists(curWorkBook, sheetName)
if numSheet > 0 then
set curSheet = curWorkBook.WorkSheets(numSheet)
else
curWorkBook.Sheets.Add
Set curSheet = curWorkBook.ActiveSheet
curSheet.Name = sheetName
end if
voici la partie qui exporte le graphique qui comprend les données
set tableToExport = ActiveDocument.GetSheetObject("CH27")
Set chartProperties = tableToExport.GetProperties
tableToExport.CopyTableToClipboard true
'Get the caption
chartCaption = tableToExport.GetCaption.Name.v
'MsgBox chartCaption
'Set the first cell with the caption
curSheet.Range("A20") = chartCaption
'Paste the rest of the chart
curSheet.Paste curSheet.Range("A21")
curWorkBook.WorkSheets("Dashboard").Move curWorkBook.WorkSheets(1)
'Save the file and quit excel
curWorkBook.SaveAs filePath
excelFile.Visible = true
excelFile.DisplayAlerts = True
'curWorkBook.SaveAs filePath
curWorkBook.Close
excelFile.Quit
'Cleanup
Set curWorkBook = nothing
Set excelFile = nothing
End Sub
Function sheetExists(curWorkBook, sheetToFind)
sheetExists = -1
For i = 1 to curWorkBook.WorkSheets.Count
If sheetToFind = curWorkBook.WorkSheets(i).name Then
sheetExists = i
Exit Function
End If
Next
End Function
voila j'espère que cela va t'aider, de mon côté je vais aussi regarder
merci