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

XL pour MAC Tableau liaison

CVINCE

XLDnaute Nouveau
Bonjour,

J'ai besoin de votre aide pour la chose suivante svp

J'ai mon classeur excel avec 6 feuilles.

J'aimerai exporter seulement la première feuille de ce classeur dans un "nouveau classeur" et dans un nouveau dossier.

Pourquoi ? car certaines personnes ne doivent avoir accès seulement à la premier feuille. C'est à dire que lorsque je ferai mes mises à jour automatiquement la mise à jour ce fera dans l'autre classeur.

Dans cette première feuille il y a des valeurs, formats : couleurs etc. mais aussi ma formule que j'ai créé dans VBA : pour calculer les couleurs.

Avez-vous une solution pour que je puisse répondre à cette demande ?

Pour information, mon responsable ne veut mettre de mot de passe sur les autres feuilles.

Merci pour votre retour.

Belle journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Cvince,
Un essai possible :
VB:
Sub ExportFeuille()
    Dim Nom$, Chemin$
    Set F = Sheets("Feuil2")                        ' Mettre le nom de la feuille à exporter
    Nom = "Essai"                                   ' Nom du nouveau fichier
    Chemin = ThisWorkbook.Path & "\" & Nom & ".xls" ' Adapter xls, xlsx,xlsm
    F.Select: F.Copy                                ' Copie, colle et ferme nouvelle feuille
    ActiveWorkbook.SaveAs Filename:=Chemin, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveWindow.Close
End Sub
J'ai supposé que votre VBA a mis les couleurs en "dur" et qu'aucune formule ne fait références à d'autre feuille.
J'ai laissé l'alerte si le fichier existe avant d'enregistrer. Le fichier est enregistré au même niveau que votre fichier principal.

Attention, sur MAC je crois que c'est "/" et non "\". A tester.
 

CVINCE

XLDnaute Nouveau
Je vous partage mon code :

Tout va se copier mais pas ma formule que j'ai créé dans VBA. Ca va me mettre #NOM

Sub Bouton1_Cliquer()

On Error Resume Next

Application.DisplayAlerts = False

'CHECK IF FILE EXISTS

Dim strFileName As String

Dim strFileExists As String

Dim strFileNameEND As String

Dim strFileExistsEND As String

strFileName = "/Chemin dossier/myFileName.xlsm"

strFileExists = Dir(strFileName)

If strFileExists <> "" Then

Kill strFileName

End If

'EXPORT SHEET

ThisWorkbook.Sheets(Array("Nom dossier")).Copy

ActiveWorkbook.SaveAs FileName:="Chemin dossier/myFileName.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

ActiveWorkbook.Close

MsgBox "Fichier exporté avec succès"

'COPY SPECIAL VALUES

'declare variables

Dim wb As Workbook

Dim ws As Worksheet

Dim wb2 As Workbook

Dim ws2 As Worksheet

Set wb = Workbooks.Open("/Chemin dossier.xlsm")

'open and activate the workbook

wb.Activate

Set ws = Worksheets("nom dossier")

'Copy special

ws.Range("A5:A7").Copy

'wb.Close

'Paste special

Set wb2 = Workbooks.Open("/Chemin dossier/myFileName.xlsm")

vb2.Activate

Set ws2 = Worksheets("Nom dossier")

'ws2.Range("A5:A7").Select

ActiveSheet.Paste Destination:=Worksheets("nom dossier").Range("A5:A7")

wb2.Close


'MOVE FILE

strFileNameEND = "/Chemin dossier nouveau /myFileName.xlsm"

strFileExistsEND = Dir(strFileName)

If strFileExistsEND <> "" Then

Kill strFileNameEND

End If

Name "/Chemin dossier /myFileName.xlsm" As _

"/Chemin dossier nouveau/myFileName.xlsm"

MsgBox "Fichier déplacé avec succès"


End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai supposé que votre VBA a mis les couleurs en "dur" et qu'aucune formule ne fait références à d'autre feuille.
C'était l'hypothèse. Evidemment si des formules sont calculées en VBA alors elles perdent leurs valeurs lors de l'exportation.
Il n'y a qu'une cellule qui contient une formule VBA ?
S'il n'y en a que quelques unes, on pourra faire un copier coller valeurs avant de fermer le fichier de sauvegarde.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un essai mais sans l'avoir testé :
VB:
Sub ExportFeuille()
    Dim Nom$, Chemin$, MaCellule
    Set F = Sheets("Feuil2")                        ' Mettre le nom de la feuille à exporter
    Nom = "Essai"                                   ' Nom du nouveau fichier
    Chemin = ThisWorkbook.Path & "\" & Nom & ".xls" ' Adapter xls, xlsx,xlsm
    MaCellule = Range("A1").Value                   ' Mémorisation de la valeur calculée en VBA
    F.Select: F.Copy                                ' Copie, colle et ferme nouvelle feuille
    ActiveWorkbook.SaveAs Filename:=Chemin, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Range("A1").Value = MaCellule                   ' Collage de la valeur de la variable
    ActiveWindow.Close
End Sub
MaCellule = Range("A1").Value on mémorise la valeur avant de copier coller la feuille
Range("A1").Value = MaCellule on écrit cette valeur dans la feuille créee
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…