Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier une feuille dans un nouveau classeur

4 réponses
Avatar
Gildo
Bonjour,
J’essaie de créer un nouveau classeur avec une feuille d’un autre classeur.
Je n’ai pas de difficulté pour créer le nouveau classeur. Le problème c’est
que ma routine embarque toutes les feuilles de mon classeur y compris les
macros.
Je n’y comprend rien ! voici la partie de code avec laquelle je crée mon
nouveau fichier.
Si qq’un a un idée elle est la bienvenue !
Par avance merci.

Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
ActiveSheet.SaveAs Filename:="D:\DEV\SAT MIVD\PRIMES_DOC\" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:=False

4 réponses

Avatar
Philippe.R
Bonsoir,
L'enregistreur de macros me souffle ceci :

Sheets("sap").Select
Sheets("sap").Copy

pour créer un nouveau classeur vierge de code à partir de la feuille "sap"
et comportant la feuille seule.
Celà convient il ?
--
Philippe.R
"Gildo" a écrit dans le message de
news:
Bonjour,
J’essaie de créer un nouveau classeur avec une feuille d’un autre
classeur.
Je n’ai pas de difficulté pour créer le nouveau classeur. Le problème c’est
que ma routine embarque toutes les feuilles de mon classeur y compris les
macros.
Je n’y comprend rien ! voici la partie de code avec laquelle je crée mon
nouveau fichier.
Si qq’un a un idée elle est la bienvenue !
Par avance merci.

Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
ActiveSheet.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse


Avatar
Boisgontier
Bonjour,

Sheets("xxxx").Copy



Crée un nouveau classeur avec la feuille xxxx



ActiveWorkbook.SaveAs "yyy.xls"



Sauvegarde le classeur



JB

"Gildo" a écrit dans le message de news:

Bonjour,
J'essaie de créer un nouveau classeur avec une feuille d'un autre
classeur.
Je n'ai pas de difficulté pour créer le nouveau classeur. Le problème c'est
que ma routine embarque toutes les feuilles de mon classeur y compris les
macros.
Je n'y comprend rien ! voici la partie de code avec laquelle je crée mon
nouveau fichier.
Si qq'un a un idée elle est la bienvenue !
Par avance merci.

Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
ActiveSheet.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse


Avatar
Gildo
Ta routine fonctionne parfaitement pour une feuille.
Mon souci c’est que cette public sub doit s’exécuter N fois pour chaque
feuilles du classeur et créer autant de fichiers .
La ça plante ! L’erreur vient du fait que pour créer le fichier suivant
Excel s’appuyait sur le fichier nouvellement créé et comme ta routine marche
très bien il ne trouve plus la feuille.
Il faut donc que j’arrive à fermer le nouveau fichier et retourner sur le
fichier initial
Pas simple
Merci encore de ta réponse.
Sub Tauto_open()
Dim NbreCellules, Nbre As Long
Dim cell
ActiveWorkbook.Save
Worksheets("Rqxfert_AX5").Activate
Call turnOver
Worksheets("Rqxfert_Dinol").Activate
Call turnOver
Worksheets("Rqxfert_INSA").Activate
Call turnOver
Worksheets("Rqxfert_INSb").Activate
Call turnOver
Application.Quit
End Sub
Public Sub turnOver()
Intersect(Range("a2", Range("IV" & Range("a:IV").Find("*", , , , xlByRows,
xlPrevious).Row)), _
Selection.CurrentRegion).Select
' Tester si au moins une cellule contient du texte
For Each cell In Selection
NbreCellules = NbreCellules + 1
If IsNumeric(cell.Value) Then
Nbre = Nbre + 1
End If
Next
x = Range("e1").Text
' Message si test négatif
If NbreCellules = Nbre Then
MsgBox "Sélectionnez des cellules contenant du texte.", vbOKOnly,
"Préparation Export"
Exit Sub
End If
Selection.Copy
Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
Sheets("sap").Copy
ActiveWorkbook.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse

Worksheets("sap").Range("A10").Select
Intersect(Range("a10", Range("IV" & Range("a:IV").Find("*", , , ,
xlByRows, xlPrevious).Row)), _
Selection.CurrentRegion).Select
Selection.Clear
On Error Resume Next
If Err <> 0 Then
MsgBox "au revoir"
End If
Application.DisplayAlerts = False
exit_toto:
Exit Sub
toto:
MsgBox Err.Number & " " & Err.Description
End Sub



Bonjour,

Sheets("xxxx").Copy



Crée un nouveau classeur avec la feuille xxxx



ActiveWorkbook.SaveAs "yyy.xls"



Sauvegarde le classeur



JB

"Gildo" a écrit dans le message de news:

Bonjour,
J'essaie de créer un nouveau classeur avec une feuille d'un autre
classeur.
Je n'ai pas de difficulté pour créer le nouveau classeur. Le problème c'est
que ma routine embarque toutes les feuilles de mon classeur y compris les
macros.
Je n'y comprend rien ! voici la partie de code avec laquelle je crée mon
nouveau fichier.
Si qq'un a un idée elle est la bienvenue !
Par avance merci.

Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
ActiveSheet.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse







Avatar
Gildo
Ne plus regarder ma première réponse
J'ai trouvé j'applique ta proposition qui est impec et tout simplement
derrière
un bon close ...
Sheets("sap").Copy
ActiveWorkbook.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse
ActiveWorkbook.Close
Merci encore JB


Bonjour,

Sheets("xxxx").Copy



Crée un nouveau classeur avec la feuille xxxx



ActiveWorkbook.SaveAs "yyy.xls"



Sauvegarde le classeur



JB

"Gildo" a écrit dans le message de news:

Bonjour,
J'essaie de créer un nouveau classeur avec une feuille d'un autre
classeur.
Je n'ai pas de difficulté pour créer le nouveau classeur. Le problème c'est
que ma routine embarque toutes les feuilles de mon classeur y compris les
macros.
Je n'y comprend rien ! voici la partie de code avec laquelle je crée mon
nouveau fichier.
Si qq'un a un idée elle est la bienvenue !
Par avance merci.

Worksheets("sap").Activate
On Error GoTo toto
Worksheets("sap").Range("A1").Select
ActiveCell.Offset(rowOffset:=9, columnOffset:=0).Activate
ActiveSheet.Paste
Worksheets("sap").Range("b8").Select
ActiveCell.Value = x
Application.DisplayAlerts = False
dd = "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
ActiveSheet.SaveAs Filename:="D:DEVSAT MIVDPRIMES_DOC" & x & dd &
".xls", _
FileFormat:=xlExcel7, CreateBackup:úlse