Copie de feuilles sans macros NI boutons

Jacqo

XLDnaute Nouveau
Bonjour à tous !

voici mon petit problème:

Mon classeur 1 possède des macros et des boutons d'actions sur les feuilles. (Un des boutons permet notamment une sauvegarde les feuilles sur un autre classeur) Je parvient donc à sauvegarder les feuilles sans les macros mais pas sans les boutons ! je pensais sélectionner toutes les colonnes à la place de sélectionner la feuille entière, mais je n'y parviens pas, pouvez-vous m'aider ?

En bref : recopier SEULEMENT les données

Private Sub CommandButton3_Click()
Dim cl1 As Workbook
Dim cl2 As Workbook
Dim g
Dim h As Variant
Dim i As Variant
On Error GoTo Erreur
Application.ScreenUpdating = False

Set cl1= ThisWorkbook

Set cl2 = Workbooks.Add(xlWBATWorksheet)

cl2.Sheets(1).Name = "rien"

For g = 1 To cl1.Sheets.Count
cl1.Sheets(g).Copy after:=cl2.Sheets(cl2.Sheets.Count)
Next g

Application.DisplayAlerts = False
cl2.Sheets(1).Delete

h = "Nommer votre fichier"
i = Application.GetSaveAsFilename( _
InitialFileName:=h, _
fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
If i <> False Then cl2.SaveAs Filename:=i

cl1.Saved = True
cl1.Close
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub



Merci d'avance à vous !
 

pierrejean

XLDnaute Barbatruc
Re : Copie de feuilles sans macros NI boutons

bonjour Jacqo

Et bienvenue sur XLD

A tester:

Code:
Private Sub CommandButton3_Click()
Dim cl1 As Workbook
Dim cl2 As Workbook
Dim g
Dim h As Variant
Dim i As Variant
On Error GoTo Erreur
Application.ScreenUpdating = False
Set cl1 = ThisWorkbook
Set cl2 = Workbooks.Add(xlWBATWorksheet)
cl2.Sheets(1).Name = "rien"
For g = 1 To cl1.Sheets.Count
 cl2.Sheets.Add after:=cl2.Sheets(cl2.Sheets.Count)
 cl1.Sheets(g).Cells.Copy Destination:=cl2.ActiveSheet.Range("A1")
'cl1.Sheets(g).Copy after:=cl2.Sheets(cl2.Sheets.Count)
Next g
Application.DisplayAlerts = False
cl2.Sheets(1).Delete
h = "Nommer votre fichier"
i = Application.GetSaveAsFilename( _
InitialFileName:=h, _
fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
If i <> False Then cl2.SaveAs Filename:=i
cl1.Saved = True
cl1.Close
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 

Jacqo

XLDnaute Nouveau
Re : Copie de feuilles sans macros NI boutons

Bonjour Pierrejean et merci de ta réponse rapide !

caramba, encore raté ! :)

La même "erreur" survient, le classeur de liaison nommé "rien" s'affiche, vide, puis plus rien, aucune boite de dialogue... nada

Merci de ton aide, je continue les recherches !! et je reste à l'écoute !!

PS: j'utilise excel2007
 
Dernière édition:

Jacqo

XLDnaute Nouveau
Re : Copie de feuilles sans macros NI boutons

RE

Le code fonctionne donc a merveille, mais si j'appui sur "annuler" lors de la sauvegarde, le fichier est quand même sauvegardé et ouvert ! que faut-il rajouter pour ne rien faire lorsqu'on annule ?

Dim cl1 As Workbook
Dim cl2 As Workbook
Dim g
Dim h As Variant
Dim i As Variant
On Error GoTo Erreur
Application.ScreenUpdating = False

Set cl1 = ThisWorkbook

Set cl2 = Workbooks.Add(xlWBATWorksheet)

cl2.Sheets(1).Name = "rien"

For g = 1 To cl1.Sheets.Count
cl2.Sheets.Add after:=cl2.Sheets(cl2.Sheets.Count)
cl1.Sheets(g).Cells.Copy Destination:=cl2.ActiveSheet.Range("A1")

Next g

Application.DisplayAlerts = False
cl2.Sheets(1).Delete
cl2.Sheets(1).Name = ("Manuel")
cl2.Sheets(2).Name = ("Automatique")
cl2.Sheets(3).Name = ("Sur seuil")

h = "Nommer votre fichier"
i = Application.GetSaveAsFilename( _
InitialFileName:=h, _
fileFilter:="Classeur Microsoft Excel (*.xls), *.xls")
If i <> False Then cl2.SaveAs Filename:=i

cl1.Saved = True

Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True




else cl2.delete ou erase je pensais ma ça n'existe pas !
 

Jacqo

XLDnaute Nouveau
Re : Copie de feuilles sans macros NI boutons

Négatif, mais j'ai écris tes lignes et il me dit que mon "else" est sans "if", bizarre !!
alors je l'ai écris comme ça:

If i <> False Then cl2.SaveAs Filename:=i
If i = False Then Kill cl2

Mais cl2 apparait quand même ! encore une petite chose, lorsqu'il apparait, le classeur se nomme FeuilX avec X un nombre qui s'incrémente à chaque fois que je fais une nouvelle annulation... cl2 aurait un autre nom ?!
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 925
Membres
101 841
dernier inscrit
ferid87