Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" a écrit dans le message de news:
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" <Aiwa@discussions.microsoft.com> a écrit dans le message de news:
3C1C78D4-B07F-426F-B0B1-74A0F93E883D@microsoft.com...
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" a écrit dans le message de news:
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" a écrit dans le message de news:
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" <Aiwa@discussions.microsoft.com> a écrit dans le message de news:
3C1C78D4-B07F-426F-B0B1-74A0F93E883D@microsoft.com...
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Dans le classeur où il y a ton onglet à copier, tu exécutes
cette ligne de code :
Sub test()
Worksheets("NomOngletACopier").copy
with Activewokbook
.SaveAs "c:ExcelNomDuNouveauFicier.xls"
.close
end with
end sub
"Aiwa" a écrit dans le message de news:
Bonjour, j'ai un fichier qui a plusieur petit programme dans les onglets
J'aimerais savoir comment copier un onglet seulement avec sa macro pour
l'enrégistrer sur un fichier seul pour le donnée a quelqu'un sans lui
donner
mon fichier avec toute les onglets.
Merci à l'avance
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Soit plus explicite, De quels liens, références parles-tu ? Lien des
formules ?
Tu veux conserver les formules sans les liens ?
Les plages nommées de ta feuille ont aussi des liens ?
Dans ta question, tu dis :
"comment copier un onglet seulement avec sa macro"
et tu veux supprimer toutes les macros ? que dois-je comprendre ?
Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
je le répête, tu dois être très explicite dans ta demande ...
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" <Pat@Merci.fr> a écrit dans le message de news:
e2%23YSIdaJHA.5788@TK2MSFTNGP03.phx.gbl...
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une sorte
de copier/coller valeurs)
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23JTPf6caJHA.1272@TK2MSFTNGP04.phx.gbl...
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Bonjour michdenis
C'est tu possible le faire sans macro, et aussi ma macro nest pas dans la
feuille mais dans un module,
j'ai poser la question 2 fois je M'en excuse car j'avais pas acces a ce
site
depuis le 23 déc
"michdenis" a écrit :Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située
> ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Bonjour michdenis
C'est tu possible le faire sans macro, et aussi ma macro nest pas dans la
feuille mais dans un module,
j'ai poser la question 2 fois je M'en excuse car j'avais pas acces a ce
site
depuis le 23 déc
"michdenis" a écrit :
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" <Pat@Merci.fr> a écrit dans le message de news:
e2%23YSIdaJHA.5788@TK2MSFTNGP03.phx.gbl...
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23JTPf6caJHA.1272@TK2MSFTNGP04.phx.gbl...
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située
> ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Bonjour michdenis
C'est tu possible le faire sans macro, et aussi ma macro nest pas dans la
feuille mais dans un module,
j'ai poser la question 2 fois je M'en excuse car j'avais pas acces a ce
site
depuis le 23 déc
"michdenis" a écrit :Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située
> ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" <Pat@Merci.fr> a écrit dans le message de news:
e2%23YSIdaJHA.5788@TK2MSFTNGP03.phx.gbl...
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23JTPf6caJHA.1272@TK2MSFTNGP04.phx.gbl...
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>
Tu copies ces procédures dans le classeur où est
située la feuille que tu veux copier.
Enlève dans le nouveau classeur
- tout le code du classeur
- enlève dans les formules toutes les références
faisant appel à d'autres classeurs.
- ne touche pas aux noms (plages nommées) ou formules
(pas mentionnées dans ta question)
'------------------------------------------
Sub test()
Dim Wk As Workbook
'copier la feuille
Worksheets("Feuil1").Copy
Set Wk = ActiveWorkbook
SupprimeToutCodeEtFormulaire Wk
Substituer_LienFormule_ParValeur Wk.Worksheets(1)
End Sub
'------------------------------------------
Sub SupprimeToutCodeEtFormulaire(Wk As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Wk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'------------------------------------------
Sub Substituer_LienFormule_ParValeur(Feuille As Worksheet)
Dim Cherche As String, Rg As Range
Dim Adr As String, C As Range
With Wk
With Feuil1
Set Rg = .Cells.SpecialCells(xlCellTypeFormulas)
End With
End With
Cherche = "["
With Rg
Set C = .Find(Cherche, , xlFormulas, xlPart)
If Not C Is Nothing Then
Adr = C.Address
Do
C.Value = C.Value
Set C = .FindNext
Loop Until C Is Nothing
End If
End With
End Sub
'------------------------------------------
"Pat" a écrit dans le message de news:
e2%
Excuse moi michdenis mais je ne suis pas le demandeur original, mais le
sujet intéresse.
Je désire copier un onglet seul sans trainer les liens ni les variables
qu'il avait avec les autres onglets de son classeur d'origine, seulement
garder les formules simples (sans liens externes à l'onglet) et remplacer
les case contenant des liens par la valeur actuelle qu'elles ont (une
sorte
de copier/coller valeurs)
"michdenis" a écrit dans le message de news:
%
> Soit plus explicite, De quels liens, références parles-tu ? Lien des
> formules ?
> Tu veux conserver les formules sans les liens ?
> Les plages nommées de ta feuille ont aussi des liens ?
>
> Dans ta question, tu dis :
> "comment copier un onglet seulement avec sa macro"
>
> et tu veux supprimer toutes les macros ? que dois-je comprendre ?
>
> Tu veux conserver qu'une macro ? Quel est son nom ? où est-elle située ?
>
> je le répête, tu dois être très explicite dans ta demande ...
>
>