Bonjour,
J'ai deux fichiers différents dont j'aimerais copier une feuille "RAPPORT DE COMPETENCES" dans un nouveau classeur.
J'ai créé la macro suivante :
Sub CopieFeuilles_INDIV()
'macro pour copier la feuille sur un nouveau classeur et sans les formules
Dim tablo, F As Object, n%, chemin$, test As Boolean, Fichier$, FileFormatNum
Dim NomClasseur As String
'Dim Fichier As Variant
Dim MaMessagerie As Object
Dim MonMessage As Object
ActiveSheet.Unprotect
Continuer = MsgBox("ATTENTION : Vous êtes sur le point de faire une copie du rapport de compétences. Souhaitez vous continuer ?", vbYesNo)
'MessagBox demandant de confirmer l'enregistrement du fichier
If Continuer = vbYes Then
'Si l'utilisateur répond oui au messageBox Alors
tablo = Array("RAPPORT DE COMPETENCES") 'noms des feuilles à copier
Set F = ThisWorkbook.Sheets(tablo)
With Application
n = .SheetsInNewWorkbook
.SheetsInNewWorkbook = F.Count
Workbooks.Add 'nouveau document
.SheetsInNewWorkbook = n
End With
With ActiveWorkbook
For n = 1 To F.Count
With .Sheets(n)
F(n).Cells.Copy .Cells
.UsedRange = .UsedRange.Value
.Name = F(n).Name
.Columns("J:N").Select
Selection.Delete Shift:=xlToLeft
.Range("H2").Select
End With
Next
.Sheets(tablo).Select
ActiveWindow.DisplayGridlines = False 'le quadrillage n'est pas affiché
Application.DisplayFormulaBar = True 'Masque la barre de formule
Application.DisplayStatusBar = False
ActiveWindow.DisplayHeadings = False 'Masque les en-têtes
Application.Dialogs(xlDialogSaveAs).Show ("RAPPORT DE COMPETENCE - " & Sheets("RAPPORT DE COMPETENCES").Range("D6") & ".xlsx")
Sheets("RAPPORT DE COMPETENCES").Select
ActiveSheet.Protect
End With
End If
End Sub
Ca fonctionne, par contre je plante sur les points suivants :
1. J'aimerai que la mise en forme soit similaire entre les deux fichiers. En effet, la couleur du texte de la copie de mon onglet n'est pas similaire à celle de mon fichier source
2. J'aimerai protéger la nouvelle copie créée
3. J'aimerai que la mise ne page pour impression soit similaire pour la copie. En effet, si j'imprime l'onglet avec mon fichier source, tout est bien sur une page mais si j'imprime ma copie, cela se met sur 2 pages.
Pourriez-vous m'aider SVP ?
Merci d'avance
J'ai deux fichiers différents dont j'aimerais copier une feuille "RAPPORT DE COMPETENCES" dans un nouveau classeur.
J'ai créé la macro suivante :
Sub CopieFeuilles_INDIV()
'macro pour copier la feuille sur un nouveau classeur et sans les formules
Dim tablo, F As Object, n%, chemin$, test As Boolean, Fichier$, FileFormatNum
Dim NomClasseur As String
'Dim Fichier As Variant
Dim MaMessagerie As Object
Dim MonMessage As Object
ActiveSheet.Unprotect
Continuer = MsgBox("ATTENTION : Vous êtes sur le point de faire une copie du rapport de compétences. Souhaitez vous continuer ?", vbYesNo)
'MessagBox demandant de confirmer l'enregistrement du fichier
If Continuer = vbYes Then
'Si l'utilisateur répond oui au messageBox Alors
tablo = Array("RAPPORT DE COMPETENCES") 'noms des feuilles à copier
Set F = ThisWorkbook.Sheets(tablo)
With Application
n = .SheetsInNewWorkbook
.SheetsInNewWorkbook = F.Count
Workbooks.Add 'nouveau document
.SheetsInNewWorkbook = n
End With
With ActiveWorkbook
For n = 1 To F.Count
With .Sheets(n)
F(n).Cells.Copy .Cells
.UsedRange = .UsedRange.Value
.Name = F(n).Name
.Columns("J:N").Select
Selection.Delete Shift:=xlToLeft
.Range("H2").Select
End With
Next
.Sheets(tablo).Select
ActiveWindow.DisplayGridlines = False 'le quadrillage n'est pas affiché
Application.DisplayFormulaBar = True 'Masque la barre de formule
Application.DisplayStatusBar = False
ActiveWindow.DisplayHeadings = False 'Masque les en-têtes
Application.Dialogs(xlDialogSaveAs).Show ("RAPPORT DE COMPETENCE - " & Sheets("RAPPORT DE COMPETENCES").Range("D6") & ".xlsx")
Sheets("RAPPORT DE COMPETENCES").Select
ActiveSheet.Protect
End With
End If
End Sub
Ca fonctionne, par contre je plante sur les points suivants :
1. J'aimerai que la mise en forme soit similaire entre les deux fichiers. En effet, la couleur du texte de la copie de mon onglet n'est pas similaire à celle de mon fichier source
2. J'aimerai protéger la nouvelle copie créée
3. J'aimerai que la mise ne page pour impression soit similaire pour la copie. En effet, si j'imprime l'onglet avec mon fichier source, tout est bien sur une page mais si j'imprime ma copie, cela se met sur 2 pages.
Pourriez-vous m'aider SVP ?
Merci d'avance