Enregistrrement xlsm en xls

Forum pour toutes vos questions à propos d'Excel (avec ou sans macros) ...
Lol-78
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 13 avril 2018
Version d'Excel : 2010

Message par Lol-78 » 18 avril 2018, 12:12

Bonjour à tous,

Après avoir résolu le PB d'écriture de fichier sur le serveur et ce grâce à votre aide, je vous sollicite de nouveau car j'ai une incompréhension de le message visant la ligne " Set wb = Workbooks.Open(Filename:=Chemin & "ETIQUETTE.xlsm")"

Code : Tout sélectionner

Private Sub CommandButton6_Click()
Dim Chemin As String, Fichier As String, lettre As String
Dim wb As Workbook
Dim FSO As Object
    Dim Drv As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With ThisWorkbook.Worksheets("ETIQUETTE")
                    .Columns(1).Copy
                    .Columns(6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(2).Copy
                    .Columns(8).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(1).Clear
                    .Columns(2).Clear
                    .Columns(3).Clear
                    .Columns(4).Clear
                    .Columns(5).Clear
    End With

    For Each Drv In FSO.Drives
        With Drv
            If .IsReady And .DriveType = 1 Then
                'MsgBox "Lecteur USB sur : " & .DriveLetter
                lettre = Drv.DriveLetter
                Chemin = lettre & ":\"
                Fichier = "ETIQUETTE"
                ThisWorkbook.Worksheets("ETIQUETTE").Copy 'Sheets("ETIQUETTE").Copy
                Application.DisplayAlerts = False
                ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False ' Filename:=Chemin & Fichier & ".xlsm"
                ActiveWorkbook.Close
                Set wb = Workbooks.Open(Filename:=Chemin & "ETIQUETTE.xlsm")
                With wb
                   .SaveAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False
                   .Close
               End With
                
                ActiveWorkbook.Close savechanges:=True
                Application.DisplayAlerts = True
                Exit Sub
            End If
        End With
    Next Drv
    MsgBox "Pas de clé USB détectée. Merci d'en insérer une !"

End Sub

Quelqu'un aurait-il une idée du blocage.

Merci de votre aide
Avatar du membre
sabV
Membre impliqué
Membre impliqué
Messages : 2581
Appréciations reçues : 75
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par sabV » 18 avril 2018, 23:11

Bonjour,

Est ce que cette macro est dans le fichier ETIQUETTE.xlsm ?
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Lol-78
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 13 avril 2018
Version d'Excel : 2010

Message par Lol-78 » 20 avril 2018, 15:55

Bonjour,

Désolé de cette réponse tardive.
Oui cette macro est bien dans le fichier ETIQUETTE.xlsm

Vous avez une orientation à me donner?

Cordialement
Avatar du membre
sabV
Membre impliqué
Membre impliqué
Messages : 2581
Appréciations reçues : 75
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par sabV » 20 avril 2018, 21:15

Bonjour,
Oui cette macro est bien dans le fichier ETIQUETTE.xlsm
alors cette ligne est inutile, puisque celui-ci est toujours ouvert,

Code : Tout sélectionner

Set wb = Workbooks.Open(Filename:=Chemin & "ETIQUETTE.xlsm")
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Lol-78
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 13 avril 2018
Version d'Excel : 2010

Message par Lol-78 » 21 avril 2018, 08:02

Bonjour,

Merci pour ce retour.

Ce qui veut dire que la ligne au dessus considere le premier fichier en fermeture et non etiquette.

Je supprime la ligné ´ set ´et vous tiens informé Lundi

Bon weekend
Avatar du membre
sabV
Membre impliqué
Membre impliqué
Messages : 2581
Appréciations reçues : 75
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par sabV » 21 avril 2018, 08:18

Ce qui veut dire que la ligne au dessus considere le premier fichier en fermeture et non etiquette.
Puisqu'auparavant vous avez copié un onglet dans un nouveau classeur,
à ce moment, c'est le nouveau classeur qui devient le classeur actif (ActiveWorkbook) et non le classeur "ETIQUETTE.xlsm"
c'est le nouveau classeur qui est enregistrer et puis fermé

Code : Tout sélectionner

'copié un onglet dans un nouveau classeur
ThisWorkbook.Worksheets("ETIQUETTE").Copy 'Sheets("ETIQUETTE").Copy

Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False ' Filename:=Chemin & Fichier & ".xlsm"
ActiveWorkbook.Close
Édit: au cas ou il y aurait plusieurs classeurs ouvert vous devriez attribuer une référence d'objet au classeur "ETIQUETTE" en début de macro (après les déclarations)

Code : Tout sélectionner

Set wk = Workbooks("ETIQUETTE")
'ou bien
Set wk = ThisWorkbook
de cette façon vous pourrez rappeler ce classeur par la suite

Code : Tout sélectionner

wk.Activate
1 membre du forum aime ce message.
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Lol-78
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 13 avril 2018
Version d'Excel : 2010

Message par Lol-78 » 23 avril 2018, 14:56

Bonjour,

Comme vous me l'avez indiqué, j'ai supprimé la ligne cependant un nouveau message d'erreur apparait, fileformat inconnu
Voici le code :

Code : Tout sélectionner

Private Sub CommandButton6_Click()
Dim Chemin As String, Fichier As String, lettre As String
Dim wb As Workbook
Dim FSO As Object
    Dim Drv As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With ThisWorkbook.Worksheets("ETIQUETTE")
                    .Columns(1).Copy
                    .Columns(6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(2).Copy
                    .Columns(8).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(1).Clear
                    .Columns(2).Clear
                    .Columns(3).Clear
                    .Columns(4).Clear
                    .Columns(5).Clear
    End With

    For Each Drv In FSO.Drives
        With Drv
            If .IsReady And .DriveType = 1 Then
               
                lettre = Drv.DriveLetter
                Chemin = lettre & ":\"
                Fichier = "ETIQUETTE"
                ThisWorkbook.Worksheets("ETIQUETTE").Copy
                Application.DisplayAlerts = False
                ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False
                'ActiveWorkbook.Close
                ' Set wb = Workbooks.Open(Filename:=Chemin & "ETIQUETTE.xlsm")
                'With wb
                '    .SaveAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False
                '    .Close
                'End With
                
                ActiveWorkbook.Close savechanges:=True
                Application.DisplayAlerts = True
                Exit Sub
            End If
        End With
    Next Drv
    MsgBox "Pas de clé USB détectée. Merci d'en insérer une !"

End Sub
Avez vous une idée le pourquoi du blocage ?

Merci de votre aide
Avatar du membre
sabV
Membre impliqué
Membre impliqué
Messages : 2581
Appréciations reçues : 75
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par sabV » 23 avril 2018, 15:18

51 = xlOpenXMLWorkbook (without macro's in 2007-2016, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2016, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2016 with or without macro's, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2016, xls)

pour un format ".xls" le numéro est 56

Code : Tout sélectionner

ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=56, CreateBackup:=False
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Lol-78
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 13 avril 2018
Version d'Excel : 2010

Message par Lol-78 » 23 avril 2018, 15:57

Malheuresement, j'ai toujours le message d'erreur
Erreur de compilation, Argument nommé introuvable
Et avec FileFormat surligné en bleu.

Là ?

Merci de votre aide

Code : Tout sélectionner

Private Sub CommandButton6_Click()
Dim Chemin As String, Fichier As String, lettre As String
Dim wb As Workbook
Dim FSO As Object
    Dim Drv As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With ThisWorkbook.Worksheets("ETIQUETTE")
                    .Columns(1).Copy
                    .Columns(6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(2).Copy
                    .Columns(8).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                    .Columns(1).Clear
                    .Columns(2).Clear
                    .Columns(3).Clear
                    .Columns(4).Clear
                    .Columns(5).Clear
    End With

    For Each Drv In FSO.Drives
        With Drv
            If .IsReady And .DriveType = 1 Then
               
                lettre = Drv.DriveLetter
                Chemin = lettre & ":\"
                Fichier = "ETIQUETTE"
                ThisWorkbook.Worksheets("ETIQUETTE").Copy
                Application.DisplayAlerts = False
                ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=56, CreateBackup:=False
                'ActiveWorkbook.Close
                ' Set wb = Workbooks.Open(Filename:=Chemin & "ETIQUETTE.xlsm")
                'With wb
                '    .SaveAs Filename:=Chemin & Fichier & ".xls", FileFormat:=-4143, CreateBackup:=False
                '    .Close
                'End With
                
                ActiveWorkbook.Close savechanges:=True
                Application.DisplayAlerts = True
                Exit Sub
            End If
        End With
    Next Drv
    MsgBox "Pas de clé USB détectée. Merci d'en insérer une !"

End Sub

Avatar du membre
sabV
Membre impliqué
Membre impliqué
Messages : 2581
Appréciations reçues : 75
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par sabV » 23 avril 2018, 16:19

Est-ce que le chemin de Chemin & Fichier & ".xls" est un emplacement valide ?

Code : Tout sélectionner

 lettre = Drv.DriveLetter
 Chemin = lettre & ":\"
 Fichier = "ETIQUETTE"
 ActiveWorkbook.SaveCopyAs Filename:=Chemin & Fichier & ".xls", FileFormat:=56, CreateBackup:=False             
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message