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
 

Pièces jointes

  • Dupliquer Onglets.xlsm
    26 KB · Affichages: 35

Jacky67

XLDnaute Barbatruc
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 Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 380
Membres
102 876
dernier inscrit
BouteilleMan