Enregistrer sous format XLSB et variable du chemin

Bonjour,

Je souhaiterai enregistrer mon fichier xlsm, via une macro reprenant 2 variables : code article & ligne de conditionnement.

Ça j'ai réussi, mais je rencontre 2 problèmes :

  • Le premier problème est qu'elle enregistre sous format PDF, alors que je souhaiterai sous format XLSB.
  • Le second problème concerne le dossier cible. Actuellement le chemin est U:\Ordo\Dossiers individuels\1 Guillaume\Approvisionnements\Book Nomenclature
Mais selon les postes informatiques, il pourra être non plus U, mais V:\Ordo\Dossiers individuels\1 Guillaume\Approvisionnements\Book Nomenclature

Peut-on faire un codage indiquant si erreur du chemin U, alors chemin V?

Merci à vous,

Guillaume

bonjour AhAh

voici le code que j'utilise pour la sauvegarde automatique de mes fichier

Private Sub Workbook_Open()

Dim Nomcomplet
Dim chemin
Dim dossier
Dim path

chemin = Workbooks(ActiveWorkbook.Name).path

'****************direction du dossier de sauvegarde*****************************   

chemin = chemin & "nom du dossier"

        On Error Resume Next

            ChDir chemin

'***************resulat  de 'ChDir = "C:\Users\Desktop\nom du dossier****************"

On Error GoTo 0

'*****attachement de la feuille au chemin*******

dossier = chemin & "nom du classeur"

'-***********attachement de l'extention**************
                path = dossier
    Nomcomplet = path & ".xlsb"

'***********************résulat  finale '"C:\Users\Desktop\dossier\classeur.xlsb*********************

  ThisWorkbook.SaveCopyAs Nomcomplet

end sub

en esprant avoir répondu a ta question

formule en module 2

Bonjour,

xlsb est un fichier Excel, s'enregistre avec SaveAs comme tous les classeurs.

Si tu veux n'enregistrer ainsi qu'une feuille, tu commences par la copier dans un nouveau classeur :

    ActiveSheet.Copy

la feuille étant copiée dans un nouveau classeur, devenu le classeur actif, tu peux poursuivre :

    ActiveWorkbook.SaveAs sFilename, xlExcel12

Pour ton chemin, tu peux essayer de voir si ça fonctionne avec un chemin réseau : \\Ordo\Dossiers...

(s'il s'agit d'un chemin réseau, comme il semble...)

Cordialement.

Bonjour,

Merci pour votre aide.

Mon 1er problème est résolu grâce à vous, à savoir l'enregistrement au format XSLB.

En revanche je n'ai pas réussi à appliquer une macro changeant le chemin d'enregistrement en fonction du serveur...

A bientôt,

Guillaume

bonjour ahah

Essaye le code ci dessous bien sur il faut que tu le personnalise

ce code me permet de récupérer les adresse réseau ainsi que le nom des dossier et les nom des classeur

capture
Option Explicit

Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean

Dim NbFichiers As Long, NbDossiers As Long
Dim Dep As Currency, fin As Currency, Freq As Currency

Private Sub Liste(ByVal sChemin As String, ByVal bSousDossier As Boolean)
Dim FSO As Object, Dossier As Object, SousDossier As Object, FICHIER As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Dossier = FSO.GetFolder(sChemin)

    FICHIER = Dir$(sChemin & "\*.*")
    Do While Len(FICHIER) > 0
        NbFichiers = NbFichiers + 1
        With ShFichiers
            .Cells(NbFichiers, 1) = sChemin
            .Cells(NbFichiers, 2) = FICHIER
        End With
        FICHIER = Dir$()
        Application.StatusBar = "Dossiers : " & NbDossiers & "  Fichiers : " & NbFichiers
    Loop

    If bSousDossier Then
        For Each Dossier In Dossier.SubFolders
            NbDossiers = NbDossiers + 1
            Liste Dossier.path, True
        Next Dossier
    End If

    Set Dossier = Nothing
    Set FSO = Nothing
End Sub

Sub Tst()
Dim sChemin As String
    sChemin = ThisWorkbook.path
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = sChemin & "\"
        .Title = "Sélectionner un Dossier"
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélection Dossier"
        .Show
        If .SelectedItems.Count > 0 Then
            ShFichiers.Cells.Clear
            Application.ScreenUpdating = False
            Application.StatusBar = ""
            DoEvents
            QueryPerformanceCounter Dep
            NbFichiers = 0: NbDossiers = 0

            Liste .SelectedItems(1), True

            Application.ScreenUpdating = True
            QueryPerformanceCounter fin: QueryPerformanceFrequency Freq
            Application.StatusBar = "Dossiers : " & NbDossiers & "  Fichiers : " & NbFichiers & " / " & Format(((fin - Dep) / Freq), "0.00 s")
        End If
    End With

 'Range("A1:B32").Copy

    Range("A1:B1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

 Sheets("BD").Select
 Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial (xlPasteValues)

Sheets("recup fichier").Select

End Sub

ensuite j'utilise le code ci-desous pour ouvrir les fichier avec une petite liste déroulante

capture1
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

CHEMIN = Range("A3")
        On Error Resume Next
            ChDir CHEMIN
                On Error GoTo 0
                Dossier = CHEMIN & "\" & Range("A4")
path = Dossier
 Application.ScreenUpdating = False

Workbooks.Open Filename:=path, ReadOnly:=True

End Sub

Bonjour,

Si V: et U: sont des lecteurs réseaux, ils remplacent une adresse réseau. S'ils permettent d'atteindre le même dossier partagé selon les personnes, c'est que cette adresse réseau est la même.

Il faut donc remplacer V: et U: par l'adresse commune qu'ils représentent.

Actuellement tu as : \Ordo\Dossiers individuels\1 Guillaume\Approvisionnements\Book Nomenclature, précédé de U: ou V: que tu enlèves et remplaces par l'adresse réseau qui se présente sous la même forme d'arborescence de dossiers (séparés par des \) et qui débute par : \\

Pour affecter une lettre de lecteur à une adresse réseau on passe par l'Explorateur Windows : menu Outils > Connecter un lecteur réseau... Vas-y donc voir !

[ ou plus simple, tu demandes à ton administrateur réseau : il te le fournira ! ]

Cordialement.

Rechercher des sujets similaires à "enregistrer format xlsb variable chemin"