Rapport de message :*
 

Re: Modifier code

Titre du sujet : Re: Modifier code
par myDearFriend! le 11/06/2009 00:29:47

Bonsoir bd_city, le Forum,

Tout d'abord, je comprends tout à fait le sens de ta remarque par rapport à mon 2ème post. Aussi, je t'invite (si tu le veux bien) à consulter "mon point de vue" sur la question sous ce lien : FAQ - [Site] En quoi le multiposts est-il dérangeant dans les Forums ?
Au fil des rencontres que j'ai pu faire depuis que je parcours les Forums, je pense que d'autres partagent ce même point de vue.

Cela dit, comme PMO2 ne donne visiblement pas suite à ton fil d'XLD cité plus haut, tu trouveras une proposition en pièce jointe.
Il y a 2 fichiers dans cette pièce jointe : ton fichier modifié selon ta demande ainsi qu'un modèle de classeur (Template.xlt) à adapter par tes soins (entête, etc...) et à sauvegarder toujours dans le même dossier.

J'ai utilisé le code suivant dans un module de code standard :
Option Explicit

Sub Sauvegarde(N As Byte)
'myDearFriend!  -  www.mdf-xlpages.com
Dim Chemin
Dim ShCible As Worksheet, ShSource As Worksheet
Dim Nom As String
Dim L As Long
    Application.ScreenUpdating = False
    Chemin = ThisWorkbook.Path
    Set ShSource = ThisWorkbook.ActiveSheet
    On Error Resume Next
    Set ShCible = Workbooks.Open(Chemin & "/Template.xlt").Sheets(1)
    On Error GoTo 0
    If ShCible Is Nothing Then
        MsgBox "Fichier 'Template.xlt' introuvable !"
        Exit Sub
    End If
    With ShSource.Range("Tab_" & CStr(N))
        .Copy Destination:=ShCible.Range("C6")
        For L = 1 To .Columns.Count
            ShCible.Columns(L + 2).ColumnWidth = .Columns(L).ColumnWidth
        Next L
        For L = 1 To .Rows.Count
            ShCible.Rows(L + 5).RowHeight = .Rows(L).RowHeight
        Next L
    End With
   
    Nom = "T" & CStr(N) & "_" & Format(Date, "dd-mm-yyyy_") & Format(Time, "h-mm-ss")
    ShCible.Name = Nom
    Application.ScreenUpdating = True
    Chemin = Application.GetSaveAsFilename(Nom & ".xls", "FICHIER EXCEL(*.xls), *.xls", 1, "Sauvegarde personnalisée")
    If Chemin <> False Then
        ActiveWorkbook.Close True, Chemin
        MsgBox "Classeur enregistré dans : " & Chemin, vbInformation + vbOKOnly, "AFFICHAGE DU REPERTOIRE DE SAUVEGARDE"
    End If
End Sub

En espérant que ça corresponde à ton besoin.

Cordialement,