Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Code qui ne fonctionne pas sur Excel 365

gsx-air

XLDnaute Nouveau
Bonjour à tous
tout est à peu près dans le titre
j'ai fait une macro sur mon pc perso Excel 2016 qui fonctionne bien
mais lorsque j'essaye de m'en servir sur mon pc du boulot Excel 365 elle ne fonctionne pas
elle beug sur la ligne

VB:
        NOM.SaveAs Filename:= _
        "F:\Desktop\JOB\04-EXPORT CLIPPER\EXPORT_SW_TO_CLIPPER.csv", FileFormat:= _
        xlCSVMSDOS, CreateBackup:=False

je me pose la question si cela vient de la version d'Excel ou peu être ai-je oublier de mettre une référence mais je n'arrive pas à trouver
Même si j'enregistre un bout de macro avec l'enregistreur, je n'y arrive pas
soyez indulgent sur le code, je ne suis pas expert

auriez-vous des pistes
Merci

Code:
Sub mise_en_page_complete()

Dim PROP As Workbook, CellRecherche As Range, i As Integer, NOM As Workbook, CODE_AFFAIRE As String
Set NOM = ActiveWorkbook
Set PROP = Workbooks.Open("F:\Desktop\JOB\LISTE PROPRIETES.xlsx")

    code_commande = InputBox("AVEZ VOUS UN CODE COMMANDE :", "CODE COMMANDE")
    If code_commande = "" Then code_commande = "EN ATT CDE " & Date
    
    
Application.ScreenUpdating = False

With NOM.Worksheets("Feuil1")
    i = 2
        Do While NOM.Worksheets("Feuil1").Cells(i, 16) <> ""
    
        NOM.Worksheets("Feuil1").Cells(i, 1).FormulaR1C1 = _
        NOM.Worksheets("Feuil1").Cells(i, 16) & "-" & NOM.Worksheets("Feuil1").Cells(i, 17)
        NOM.Worksheets("Feuil1").Cells(i, 6) = code_commande
        NOM.Worksheets("Feuil1").Cells(i, 7) = Date + 28 - Weekday(Date, 2) + 5
        NOM.Worksheets("Feuil1").Cells(i, 8) = "BE"
        
        If (NOM.Worksheets("Feuil1").Cells(i, 10) = "FAB") Then NOM.Worksheets("Feuil1").Cells(i, 12) = 2 Else If (NOM.Worksheets("Feuil1").Cells(i, 10) = "QUINCAI") Then NOM.Worksheets("Feuil1").Cells(i, 12) = 1 Else: MsgBox "MANQUE CODE FAMILLE"
        
        With .Range("o" & i)
                Set CellRecherche = PROP.Worksheets("Feuil1").Columns(1).Find(.Value, LookAt:=xlWhole)
             If Not CellRecherche Is Nothing Then .Offset(0, -10).Value = CellRecherche.Offset(0, 1).Value
            End With
    i = i + 1
    Loop
    
End With
PROP.Close SaveChanges:=False
Application.ScreenUpdating = True
NOM.Activate
NOM.Save
    Rows("1:1").Delete Shift:=xlUp
    Columns("O:Q").Delete Shift:=xlToLeft
      Application.DisplayAlerts = False
        NOM.SaveAs Filename:= _
        "F:\Desktop\JOB\04-EXPORT CLIPPER\EXPORT_SW_TO_CLIPPER.csv", FileFormat:= _
        xlCSVMSDOS, CreateBackup:=False
    
    ActiveWorkbook.Save
    ActiveWindow.Close

 
End Sub
 

gsx-air

XLDnaute Nouveau
Peu être, mais cela n'explique pas pourquoi cela fonctionne sur 2016 et pas sur 365, pensez-vous que ce code soit différent sur 365
sur learn.microsoft, je trouve bien xlCSVMSDOS pour enregistrer en *.csv
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, gsx-air, TooFatBoy

@gsx-air
je suis sur Office 365
Ces deux codes fonctionnent
(mais testé en local, sur le Bureau)
Code:
Sub Macro2()
ChDir "C:\Users\STAPLE\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\STAPLE\Desktop\test1.csv", FileFormat:=xlCSV, CreateBackup:=False
End Sub
Sub Macro3()
ActiveWorkbook.SaveAs Filename:="C:\Users\STAPLE\Desktop\test2.csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
End Sub

Sur ton PC, la lettre F c'est pour :
• une clé USB ?
• un lecteur mappé ?

Comme le disait TooFatBoy, il semble bien que ton problème soit le path.
(puisque pas de souci sur mon Office 365 avec FileFormat, dans les deux cas)
 

gsx-air

XLDnaute Nouveau
Bonjour à tous
rien à faire cela ne fonctionne pas
je viens de tester ce code et ça ne fonctionne pas
VB:
Sub Macro2()
'
' Macro2 Macro
'
Dim NOM As Workbook
Set NOM = ActiveWorkbook
'
        NOM.SaveAs Filename:= _
        "H:\SERVICE BEM\04-EXPORT CLIPPER\EXPORT_SW_TO_CLIPPER.csv", FileFormat:= _
        xlCSVMSDOS, CreateBackup:=False
End Sub

Le chemin du répertoire passe par un lecteur réseau, est-ce problématique ?
 

gsx-air

XLDnaute Nouveau
Même lorsque que j'utilise l'enregistreur de macro et que je relance la même macro sans modification ça ne marche pas (avec répertoire local sur ma machine sans passer par le réseau)

Problème de sécurité ???

Code:
Sub Macro4()
'
' Macro4 Macro
'

'
    Windows("SOF23-0108.xlsx").Activate
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\be01\Desktop\EXPORT_SW_TO_CLIPPER.csv", FileFormat:=xlCSVMSDOS, _
        CreateBackup:=False
    Windows("Classeur1.xlsm").Activate
End Sub
 

gsx-air

XLDnaute Nouveau
J'ai un début de réponse
visiblement le problème vient du fichier de base que j'enregistre, c'est un fichier XLSX
que je génère via solidworks, je fais clic droit sur ma nomenclature solidworks enregistrer sous et ensuite à partir de ce fichier, je lance ma macro et ça ne marche pas, en revanche si je lance la macro à partir d'un fichier classique Excel ça fonctionne
c'est un bon début, mais cela ne m'explique pas pourquoi ça fonctionne avec Excel 2016 et pas 365 (j'utilise les mêmes fichiers)
 

Pièces jointes

  • SOF23-0108.xlsx
    19.9 KB · Affichages: 2

Staple1600

XLDnaute Barbatruc
Re

@gsx-air
Test OK sur ton fichier (avec Office 365)
NB: J'ai annulé le partage au préalable.
1) La macro issue de l'enregistreur de macros
Enrichi (BBcode):
Sub Macro1()
ChDir "C:\Users\STAPLE\Documents\Tests_CSV"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\STAPLE\Documents\Tests_CSV\SOF23-0108.csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
End Sub
Le résultat obtenu
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…