XL 2010 Exporter onglets visibles

bast0504

XLDnaute Occasionnel
Bonjour à tous

Comment je peux ajuster mon code ci-dessous de manière :
- à exporter mes onglets en valeur (sans formules)
- à revenir à mon fichier d'origine à la fin de l'export
- Enregistrer mes onglets en fichiers xlsx (pour éviter d'avoir l'erreur : Projet VB non enregisrtable)


Merci

VB:
Sub copierOK()
    Dim Sh As Worksheet
    For Each Sh In Worksheets
      If Sh.Visible = xlSheetVisible Then
             Sh.Copy
        ActiveWorkbook.SaveAs (Sh.Name)
        ActiveWorkbook.Close
      End If
    Next Sh
  
End Sub
 

Fichiers joints

Jacky67

XLDnaute Accro
Bonjour,
Essaye comme ceci
Code:
Sub copierOK()
Dim Sh As Worksheet, Origine As String
Origine = ActiveSheet.Name
For Each Sh In ThisWorkbook.Worksheets
    If Sh.Visible = xlSheetVisible Then
        Sh.Copy
        ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
        ActiveWorkbook.SaveAs (Sh.Name), FileFormat:=51
        ActiveWorkbook.Close
    End If
Next Sh
Sheets(Origine).Activate
End Sub
 

bast0504

XLDnaute Occasionnel
Bonjour Jacky

Merci pour cette proposition, mais j'ai une erreur sur cette ligne surlignée en jaune, comment je peux la modifiée ?

VB:
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
De plus j'ai un message me demandant si je peux enregistrer le fichier sans macro ? Comment contourné ce message ?

Merci par avance
 

Jacky67

XLDnaute Accro
Re...
Je n'ai aucun soucis pour appliquer ce code sur xl2007
Aucune erreur, aucun message
Les fichiers sont enregistrés sous format .XLSX et sous leurs noms de feuille.
Je n'arrive pas à reproduire les erreurs que tu décris.
Désolé.
**Re..
**A tout hasard, testes ceci
Code:
Sub copierOK2()
Dim Sh As Worksheet, Origine As String
Origine = ActiveSheet.Name
For Each Sh In ThisWorkbook.Worksheets
    If Sh.Visible = xlSheetVisible Then
        Sh.Copy
        ActiveSheet.Cells.Copy
        ActiveSheet.[a1].PasteSpecial Paste:=xlPasteValues
        ActiveWorkbook.SaveAs (Sh.Name), FileFormat:=51
        ActiveWorkbook.Close
    End If
Next Sh
Sheets(Origine).Activate
End Sub
 
Dernière édition:
Haut Bas