Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
%23l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
%23l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
%23l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" a écrit dans le message de news:
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" a écrit dans le message de news:
%Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
uwAYeJNNGHA.964@tk2msftngp13.phx.gbl...
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23aidRgMNGHA.812@TK2MSFTNGP10.phx.gbl...
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
%23l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" a écrit dans le message de news:
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" a écrit dans le message de news:
%Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonsoir Robert
Une astuce adaptée de la réponse de Denis : Mettre en commentaire tout le
code de la
feuille 4 avant de la copier puis retirer les quotes après.
j-p
Sub test()
CopierFeuilleSansVBA ("Feuil4")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
Set wbk = ActiveWorkbook
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, "'" & .Lines(i, 1)
Next
End With
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, Mid(.Lines(i, 1), 2)
Next
End With
End Sub
Bonsoir Robert
Une astuce adaptée de la réponse de Denis : Mettre en commentaire tout le
code de la
feuille 4 avant de la copier puis retirer les quotes après.
j-p
Sub test()
CopierFeuilleSansVBA ("Feuil4")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
Set wbk = ActiveWorkbook
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, "'" & .Lines(i, 1)
Next
End With
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, Mid(.Lines(i, 1), 2)
Next
End With
End Sub
Bonsoir Robert
Une astuce adaptée de la réponse de Denis : Mettre en commentaire tout le
code de la
feuille 4 avant de la copier puis retirer les quotes après.
j-p
Sub test()
CopierFeuilleSansVBA ("Feuil4")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
Set wbk = ActiveWorkbook
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, "'" & .Lines(i, 1)
Next
End With
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
With wbk.VBProject.VBComponents(Sheets(SonNom).CodeName).CodeModule
nb = .CountOfLines
For i = 1 To nb
.ReplaceLine i, Mid(.Lines(i, 1), 2)
Next
End With
End Sub
OK, C'est tout bon Denis ! Ca marche au poil.
Et merci d'avoir veillé aussi tard pour trouver cette solution.
Cordialement
Robert
"michdenis" a écrit dans le message de news:Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" a écrit dans le message de news:
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" a écrit dans le message de news:
%Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
OK, C'est tout bon Denis ! Ca marche au poil.
Et merci d'avoir veillé aussi tard pour trouver cette solution.
Cordialement
Robert
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eWmZjlONGHA.2624@TK2MSFTNGP12.phx.gbl...
Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
uwAYeJNNGHA.964@tk2msftngp13.phx.gbl...
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23aidRgMNGHA.812@TK2MSFTNGP10.phx.gbl...
Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
%23l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
OK, C'est tout bon Denis ! Ca marche au poil.
Et merci d'avoir veillé aussi tard pour trouver cette solution.
Cordialement
Robert
"michdenis" a écrit dans le message de news:Bonjour Herdet,
Ceci copie la feuil1 du classeur dans les procédures
en évitant que les macros événementielles de la feuille copiée
s'exécute...
'-----------------------------
Sub test()
' 2 paramêtres : Le classeur où est la feuille
' Le nom de l'onglet de la feuille
CopierFeuilleSansVBA ThisWorkbook, "Feuil1"
End Sub
'-----------------------------
Sub CopierFeuilleSansVBA(Wk As Workbook, SonNom As String)
Dim Texte As String
With Wk.VBProject.VBComponents(Wk.Worksheets(SonNom) _
.CodeName).CodeModule
Texte = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
Sheets(SonNom).Copy
.AddFromString Texte
End With
End Sub
'-----------------------------
Salutations!
"Herdet" a écrit dans le message de news:
Bonsoir Denis,
Désolé, mais c'est la 1ere solution, copiée sur le site de Frédéric
Sigonneau, que j'ai essayé sans succés.
J'ai crée plusieurs procédures basées sur VBComponents mais elles butent
toujours sur le même appel de "Adaptation_Hauteur_ligne", qui n'existe
pas.
Cela se produit dans le code de la feuille, à chaque exécution de
ActiveWorkbook.Sheets(SonNom).Copy
La Sub de ma feuille source est :
Private Sub Worksheet_Activate()
Adaptation_Hauteur_ligne ' se trouve dans le module "principal" qui
n'existe pas
End Sub
C'est vrai ce que tu dis au sujet de JPS, ce n'est pas la peine de lui
casser le moral en lui rappelant son âge.
Et je dirais même qu'il n'est pas seul dans ce cas là.
A +
Robert
"michdenis" a écrit dans le message de news:
%Bonjour Herdet,
Pour les anniversaires... il n'est pas nécessaire de rappeler
à tous les jours à ce bougre qu'il veuillit ...! ;-))
Si ton besoin est de copier une feuille sans le code ...
'------------------------
Sub test()
CopierFeuilleSansVBA ("Feuil1")
End Sub
'------------------------
Sub CopierFeuilleSansVBA(SonNom As String)
ActiveWorkbook.Sheets(SonNom).Copy
With ActiveWorkbook
.Sheets(SonNom).UsedRange.Value = _
.Sheets(SonNom).UsedRange.Value
With .VBProject. _
VBComponents(Sheets(SonNom).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub
'------------------------
Salutations!
"Herdet" a écrit dans le message de news:
%
Bonsoir à tous,
Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
l'objet du message !
But de la manip :
- copier une feuille d'un classeur dans un nouveau classeur
- supprimer le code de la feuille dans ce nouveau classeur
Problème :
la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
Sub du module "Principal" source.
Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
j'ai un beau message prévisible
"Erreur de compilation " Sub ou Fonction non définie
Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
s'exécute, je suis preneur.
HS : depuis que Misange à supprimé (et je la comprends) les dates
d'anniversaires de excelabo, on a tendance à laisser passer des choses
essentielles de la vie.
Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
Salutations
Robert
Bonjour,
Private Sub CommandButton1_Click()
With Application
.ScreenUpdating = False
.Cells.Copy
.Workbooks.Add xlWBATWorksheet
With .ActiveSheet
.Paste
.[A1].Select
End With
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub
Alain CROS
"Herdet" a écrit dans le message de news:
#
| Bonsoir à tous,
| Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
| l'objet du message !
| But de la manip :
| - copier une feuille d'un classeur dans un nouveau classeur
| - supprimer le code de la feuille dans ce nouveau classeur
| Problème :
| la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
| Sub du module "Principal" source.
| Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
| j'ai un beau message prévisible
| "Erreur de compilation " Sub ou Fonction non définie
|
| Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
| classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
| s'exécute, je suis preneur.
|
| HS : depuis que Misange à supprimé (et je la comprends) les dates
| d'anniversaires de excelabo, on a tendance à laisser passer des choses
| essentielles de la vie.
| Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
|
| Salutations
| Robert
|
|
Bonjour,
Private Sub CommandButton1_Click()
With Application
.ScreenUpdating = False
.Cells.Copy
.Workbooks.Add xlWBATWorksheet
With .ActiveSheet
.Paste
.[A1].Select
End With
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub
Alain CROS
"Herdet" <robert.dezan@noos.fr> a écrit dans le message de news:
#l8sFZMNGHA.3556@TK2MSFTNGP10.phx.gbl...
| Bonsoir à tous,
| Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
| l'objet du message !
| But de la manip :
| - copier une feuille d'un classeur dans un nouveau classeur
| - supprimer le code de la feuille dans ce nouveau classeur
| Problème :
| la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
| Sub du module "Principal" source.
| Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
| j'ai un beau message prévisible
| "Erreur de compilation " Sub ou Fonction non définie
|
| Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
| classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
| s'exécute, je suis preneur.
|
| HS : depuis que Misange à supprimé (et je la comprends) les dates
| d'anniversaires de excelabo, on a tendance à laisser passer des choses
| essentielles de la vie.
| Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
|
| Salutations
| Robert
|
|
Bonjour,
Private Sub CommandButton1_Click()
With Application
.ScreenUpdating = False
.Cells.Copy
.Workbooks.Add xlWBATWorksheet
With .ActiveSheet
.Paste
.[A1].Select
End With
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub
Alain CROS
"Herdet" a écrit dans le message de news:
#
| Bonsoir à tous,
| Comme entrée en matière, Monsieur de La Palisse n'aurait pas dit mieux
que
| l'objet du message !
| But de la manip :
| - copier une feuille d'un classeur dans un nouveau classeur
| - supprimer le code de la feuille dans ce nouveau classeur
| Problème :
| la feuille incriminée comporte une Private Sub qui fait appel à
d'autres
| Sub du module "Principal" source.
| Naturellement, le module "Principal" du nouveau classeur n'existant
pas,
| j'ai un beau message prévisible
| "Erreur de compilation " Sub ou Fonction non définie
|
| Si quelqu'un à la solution pour ne pas exécuter les macros du nouveau
| classeur ou supprimer la Private Sub de la feuille active avant qu'elle
ne
| s'exécute, je suis preneur.
|
| HS : depuis que Misange à supprimé (et je la comprends) les dates
| d'anniversaires de excelabo, on a tendance à laisser passer des choses
| essentielles de la vie.
| Toutes mes excuses à JPS et BON ANNIVERSAIRE JEAN-PAUL !!!!!
|
| Salutations
| Robert
|
|