Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant
mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre
classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant
mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre
classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merci
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant
mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre
classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news: 7609ACAA-418C-4147-8B1A-9A2A20750D8E@microsoft.com...
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merci
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news: 7609ACAA-418C-4147-8B1A-9A2A20750D8E@microsoft.com...
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merci
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
Je n'ai pas la version Excel 97 d'installer sur mon ordi. Mes tests sont donc limités. Mais sous Excel 2003, il n'y a plus de traces
de formules des feuilles sources dans les feuilles de destination.
Si d'autres usagers du MPFE veulent faire le test ... ils sont bienvenus, peut être auront-ils une solution pour toi.
Je n'ai pas d'autres alternatives à te proposer que celle-là !
'---------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set p = ThisWorkbook.Application
p.Visible = False
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
p.Visible = True
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'---------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'---------------------------------------
Salutations!
"rick" a écrit dans le message de news:
mich denis, j'ai essayé la macro que tu ma donné,
mais dans mon classeur de destination(fichier nouveau.xls): j'ai toujours
dans les cellules
=[fichier ancien.xls]test!H16
je souhaite avoir seulement les valeurs dans mon nouveau classeur.
et avoir en formules test!H16
car en mettant à la corbeille mon fichier ancien.xls, des que j'ouvre mon
nouveau classeur, il me dit qu'il y a des liens a mettre a jour(sous excel
97, et 2002)
Il faudrai que ca copie seulement les valeurs, j'ai essayé ta macro mais
apparement dans les cellules du nouveau classeur,j'ai toujours:
=[fichier ancien.xls]test!H16
c'est un problème!!!
merci d'avance pour ton aideBonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
Je n'ai pas la version Excel 97 d'installer sur mon ordi. Mes tests sont donc limités. Mais sous Excel 2003, il n'y a plus de traces
de formules des feuilles sources dans les feuilles de destination.
Si d'autres usagers du MPFE veulent faire le test ... ils sont bienvenus, peut être auront-ils une solution pour toi.
Je n'ai pas d'autres alternatives à te proposer que celle-là !
'---------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set p = ThisWorkbook.Application
p.Visible = False
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
p.Visible = True
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'---------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'---------------------------------------
Salutations!
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news: 304F47AE-2E37-40F2-9A31-22FC90D7EBBA@microsoft.com...
mich denis, j'ai essayé la macro que tu ma donné,
mais dans mon classeur de destination(fichier nouveau.xls): j'ai toujours
dans les cellules
=[fichier ancien.xls]test!H16
je souhaite avoir seulement les valeurs dans mon nouveau classeur.
et avoir en formules test!H16
car en mettant à la corbeille mon fichier ancien.xls, des que j'ouvre mon
nouveau classeur, il me dit qu'il y a des liens a mettre a jour(sous excel
97, et 2002)
Il faudrai que ca copie seulement les valeurs, j'ai essayé ta macro mais
apparement dans les cellules du nouveau classeur,j'ai toujours:
=[fichier ancien.xls]test!H16
c'est un problème!!!
merci d'avance pour ton aide
Bonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news: 7609ACAA-418C-4147-8B1A-9A2A20750D8E@microsoft.com...
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merci
Bonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!
Bonjour Rick,
Je n'ai pas la version Excel 97 d'installer sur mon ordi. Mes tests sont donc limités. Mais sous Excel 2003, il n'y a plus de traces
de formules des feuilles sources dans les feuilles de destination.
Si d'autres usagers du MPFE veulent faire le test ... ils sont bienvenus, peut être auront-ils une solution pour toi.
Je n'ai pas d'autres alternatives à te proposer que celle-là !
'---------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set p = ThisWorkbook.Application
p.Visible = False
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value2 = .UsedRange.Value2
End With
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
p.Visible = True
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'---------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'---------------------------------------
Salutations!
"rick" a écrit dans le message de news:
mich denis, j'ai essayé la macro que tu ma donné,
mais dans mon classeur de destination(fichier nouveau.xls): j'ai toujours
dans les cellules
=[fichier ancien.xls]test!H16
je souhaite avoir seulement les valeurs dans mon nouveau classeur.
et avoir en formules test!H16
car en mettant à la corbeille mon fichier ancien.xls, des que j'ouvre mon
nouveau classeur, il me dit qu'il y a des liens a mettre a jour(sous excel
97, et 2002)
Il faudrai que ca copie seulement les valeurs, j'ai essayé ta macro mais
apparement dans les cellules du nouveau classeur,j'ai toujours:
=[fichier ancien.xls]test!H16
c'est un problème!!!
merci d'avance pour ton aideBonjour Rick,
| voulez vous mettre a jour les liasons avec un autre classeur
A ) Explique de quel type de liaisons il s'agit. Avec la version Excel 2003, la méthode utilisée ne provoque pas de liaison au
sujet des formules de la feuille.
B ) En utilisant la méthode "Cells" pour copier une feuille vers l'autre, si tu modifies le nom d'une plage nommée de la feuille
source, la copie ne va pas effacer l'ancien nom qui se trouve sur la feuille de destination. Elle va se contenter d'ajouter le
nouveau nom (plage nommée) seulement.
C ) Si tu n'identifies pas comment le lien est maintenu avec l'ancien fichier, Comment dois-je faire pour tenter de rompre ce ce
lien ?
D ) Si dans le classeur de destination, tu ne veux pas avoir de formule, seulement les valeurs :
tu remplaces cette section de la procédure
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
End If
'------------------------
PAR
'------------------------
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
With NewWk.Sheets(A)
.UsedRange.Value = .UsedRange.Value
End With
End If
End If
'------------------------
Salutations!
"rick" a écrit dans le message de news:
une fois que j'ai executé cette macro, j'ai le message du type en ouvrant mon
nouveau classeur voulez vous mettre a jour les liasons avec un autre classeur.
Moi je souhaite copier les valeurs seulement,et mon ancien classeur passe
ensuite à la poubelle directement. et donc à l'ouverture de mon nouveau
classeur, ne plus avoir la demande de mettre à jour les liasons.
merciBonsoir Rick,
Voilà !
'------------------------------------------
Sub CopyData()
Dim WkaCopier As Workbook
Dim NewWk As Workbook, F As String
Dim Sh As Worksheet, Feuille As Worksheet
Dim File As String, A As Integer
Dim Fichier As String, AcF As String
File = "c:Atravailtest1.xls" 'A déterminer
Fichier = ExtractFile(File)
If Dir(File) = "" Then
MsgBox "Ce fichier """ & File & """ n'existe pas."
Exit Sub
End If
On Error Resume Next
AcF = ThisWorkbook.ActiveSheet.Name
Set NewWk = ThisWorkbook
Set WkaCopier = Workbooks(Fichier)
If Err <> 0 Then
Err = 0
Set WkaCopier = Workbooks.Open(File)
End If
For Each Sh In WkaCopier.Worksheets
A = A + 1
F = Sh.Name
Set Feuille = NewWk.Worksheets(F)
If Err <> 0 Then
Err = 0
Sh.Copy before:=NewWk.Sheets(A)
Else
Sh.Cells.Copy NewWk.Sheets(A).Range("A1")
End If
Next
'Si tu veux que le classeur que tu as ouvert
'se ferme en s'enregistrant :
'WkaCopier.Close True
NewWk.Activate
Sheets(AcF).Select
Set Sh = Nothing: Set Feuille = Nothing
Set NewWk = Nothing: WkaCopier = Nothing
End Sub
'------------------------------------------
Function ExtractFile(File As String)
Dim Nb As Integer, C As Integer
Nb = Len(File)
For C = Nb To 1 Step -1
If Mid(File, C, 1) <> "" Then
ExtractFile = Mid(File, C, 1) & ExtractFile
Else
Exit Function
End If
Next
End Function
'------------------------------------------
Salutations!