VBA copie de feuilles et enregistrement

jp -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

J'ai essayé de créer un programme qui me permet dans un premier temps :
- il ouvre un classeur Excel vierge.
- en suite il retourne dans le classeur "LDevis.xls"
- On selection les feuilles "Recap", "Devis1", "Devis2"
- On les copie dans le classeur vierge
- On enregistre le classeur vierge avec me chemin donnée en cellule Range("B35")
- On ferme les deux classeur Excel

Mais ça ne marche pas.

Private Sub Image1_Click()
If MsgBox("Souhaitez vous enregistrer?", vbYesNo) = vbYes Then
Dim CL1 As Workbook
Dim CL2 As Workbook
Dim LaFeuille As Worksheet
Dim i As Byte, ListeACopier '(as variant)
Dim Ok As Boolean
Set CL1 = Workbooks.add
Set CL2 = Workbooks("LDevis.xls")
ListeACopier = Array("Recap", "Devis1", "Devis2")
For Each LaFeuille In CL1.Worksheets
For i = 0 To UBound(ListeACopier)
Ok = Ok Or LaFeuille.Name = ListeACopier(i)
Next
If Ok Then LaFeuille.copy After:=CL2.Worksheets(CL2.Worksheets.Count)
Ok = False
Next
Set CL1 = Nothing
Set CL2 = Nothing

ActiveWorkbook.SaveAs Filename:=Range("B35") _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWorkbook.Saved = True
ActiveWorkbook.Close
ActiveWorkbook.Saved = True
ActiveWorkbook.Close

Else
End If
End Sub

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Peut-être un peu plus simple :D
    Private Sub Copie() ' Image1_Click()
        If MsgBox("Souhaitez vous enregistrer?", vbYesNo) = vbYes Then
            Application.DisplayAlerts = False
            Sheets(Array("Recap", "Devis1", "Devis2")).Copy
            ActiveWorkbook.SaveAs Filename:=Range("B35")
            ActiveWorkbook.Close
            Application.DisplayAlerts = True
    
            'Ca c'est pour fermer le classeur source
            
            'ActiveWorkbook.Saved = True
            'ActiveWorkbook.Close
        End If
    
    End Sub

    A+
    0
    1. jp
       
      Merci

      Mais en faite je veux que les valeur
      je suis passé par l'enregistrement d'une macro
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ah oui !, ton code ne parle absolument pas de copier uniquement les valeurs ??
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0