pb d'import de données d'un classeur a un autre ( pb de macro)
3 réponses
rick
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des
tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets,
je souhaite importer les données de l'ancien classeur vers le nouveau par
macro.
c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1,
et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets
test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que
dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Merci d'avance
Bonjour
Sans précision concernant la présence éventuelle de données sur le nouveau
classeur, voici une manière de procéder :
Sub CopieLesDonnees()
Dim leClassACopier As Workbook
Dim leNouvClass As Workbook
Set leNouvClass = ThisWorkbook
Set leClassACopier = Workbooks("ClasseurAncien.xls")
Dim sh As Worksheet
On Error Resume Next
Windows(leClassACopier).Activate
'A adapter éventuellement avec le chemin qui va bien
If Err <> 0 Then Workbooks.Open (leClassACopier)
On Error GoTo 0
For Each sh In leClassACopier.Worksheets
If Not FeuilleExiste(leNouvClass, sh.Name) Then
leNouvClass.Worksheets.Add
leNouvClass.ActiveSheet.Name = sh.Name
End If
leClassACopier.Worksheets(sh.Name).Cells.Copy
leNouvClass.Worksheets(sh.Name).Range("A1")
Next sh
End Sub
Function FeuilleExiste(wbk As Workbook, F As String) As Boolean
On Error Resume Next
Set Feuille = wbk.Worksheets(F)
FeuilleExiste = Err = 0
Err.Clear
End Function
Cordialement
Pascal
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news:
270CD513-55C6-434E-A01F-4CACAEE0E1AC@microsoft.com...
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des
tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets,
je souhaite importer les données de l'ancien classeur vers le nouveau par
macro.
c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme
test1,
et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens
onglets
test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que
dans l'ancien il existe, alors copier tout l'onglet vers le nouveau
classeur.
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Merci d'avance
rick
merci déja, mais je comprend pas tout le code, pour le nom du classeur il n'est pas fixe, le seul nom du classeur qui est fixe , c'est le nouveau classeur, mais l'ancien classeur peut avoir un nom différent d'un utilisateur à un autre.
donc il faudrai au fait pour que l'import ai lieu correctement sur le nouveau classeur,que l'utilisateur ai le choix de choisir son ancien classeur à importer.
merci d'avance.
"papou" wrote:
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Merci d'avance
merci déja, mais je comprend pas tout le code,
pour le nom du classeur il n'est pas fixe, le seul nom du classeur qui est
fixe , c'est le nouveau classeur, mais l'ancien classeur peut avoir un nom
différent d'un utilisateur à un autre.
donc il faudrai au fait pour que l'import ai lieu correctement sur le
nouveau classeur,que l'utilisateur ai le choix de choisir son ancien classeur
à importer.
merci d'avance.
"papou" wrote:
Bonjour
Sans précision concernant la présence éventuelle de données sur le nouveau
classeur, voici une manière de procéder :
Sub CopieLesDonnees()
Dim leClassACopier As Workbook
Dim leNouvClass As Workbook
Set leNouvClass = ThisWorkbook
Set leClassACopier = Workbooks("ClasseurAncien.xls")
Dim sh As Worksheet
On Error Resume Next
Windows(leClassACopier).Activate
'A adapter éventuellement avec le chemin qui va bien
If Err <> 0 Then Workbooks.Open (leClassACopier)
On Error GoTo 0
For Each sh In leClassACopier.Worksheets
If Not FeuilleExiste(leNouvClass, sh.Name) Then
leNouvClass.Worksheets.Add
leNouvClass.ActiveSheet.Name = sh.Name
End If
leClassACopier.Worksheets(sh.Name).Cells.Copy
leNouvClass.Worksheets(sh.Name).Range("A1")
Next sh
End Sub
Function FeuilleExiste(wbk As Workbook, F As String) As Boolean
On Error Resume Next
Set Feuille = wbk.Worksheets(F)
FeuilleExiste = Err = 0
Err.Clear
End Function
Cordialement
Pascal
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news:
270CD513-55C6-434E-A01F-4CACAEE0E1AC@microsoft.com...
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des
tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets,
je souhaite importer les données de l'ancien classeur vers le nouveau par
macro.
c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme
test1,
et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens
onglets
test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que
dans l'ancien il existe, alors copier tout l'onglet vers le nouveau
classeur.
merci déja, mais je comprend pas tout le code, pour le nom du classeur il n'est pas fixe, le seul nom du classeur qui est fixe , c'est le nouveau classeur, mais l'ancien classeur peut avoir un nom différent d'un utilisateur à un autre.
donc il faudrai au fait pour que l'import ai lieu correctement sur le nouveau classeur,que l'utilisateur ai le choix de choisir son ancien classeur à importer.
merci d'avance.
"papou" wrote:
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Merci d'avance
rick
peut indiquer quelques commentaires pour que je comprenne mieux le programme.
merci
"papou" wrote:
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.
Merci d'avance
peut indiquer quelques commentaires pour que je comprenne mieux le programme.
merci
"papou" wrote:
Bonjour
Sans précision concernant la présence éventuelle de données sur le nouveau
classeur, voici une manière de procéder :
Sub CopieLesDonnees()
Dim leClassACopier As Workbook
Dim leNouvClass As Workbook
Set leNouvClass = ThisWorkbook
Set leClassACopier = Workbooks("ClasseurAncien.xls")
Dim sh As Worksheet
On Error Resume Next
Windows(leClassACopier).Activate
'A adapter éventuellement avec le chemin qui va bien
If Err <> 0 Then Workbooks.Open (leClassACopier)
On Error GoTo 0
For Each sh In leClassACopier.Worksheets
If Not FeuilleExiste(leNouvClass, sh.Name) Then
leNouvClass.Worksheets.Add
leNouvClass.ActiveSheet.Name = sh.Name
End If
leClassACopier.Worksheets(sh.Name).Cells.Copy
leNouvClass.Worksheets(sh.Name).Range("A1")
Next sh
End Sub
Function FeuilleExiste(wbk As Workbook, F As String) As Boolean
On Error Resume Next
Set Feuille = wbk.Worksheets(F)
FeuilleExiste = Err = 0
Err.Clear
End Function
Cordialement
Pascal
"rick" <rick@discussions.microsoft.com> a écrit dans le message de news:
270CD513-55C6-434E-A01F-4CACAEE0E1AC@microsoft.com...
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des
tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets,
je souhaite importer les données de l'ancien classeur vers le nouveau par
macro.
c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme
test1,
et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens
onglets
test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que
dans l'ancien il existe, alors copier tout l'onglet vers le nouveau
classeur.
peut indiquer quelques commentaires pour que je comprenne mieux le programme.
merci
"papou" wrote:
Bonjour Sans précision concernant la présence éventuelle de données sur le nouveau classeur, voici une manière de procéder : Sub CopieLesDonnees() Dim leClassACopier As Workbook Dim leNouvClass As Workbook Set leNouvClass = ThisWorkbook Set leClassACopier = Workbooks("ClasseurAncien.xls") Dim sh As Worksheet On Error Resume Next Windows(leClassACopier).Activate 'A adapter éventuellement avec le chemin qui va bien If Err <> 0 Then Workbooks.Open (leClassACopier) On Error GoTo 0 For Each sh In leClassACopier.Worksheets If Not FeuilleExiste(leNouvClass, sh.Name) Then leNouvClass.Worksheets.Add leNouvClass.ActiveSheet.Name = sh.Name End If leClassACopier.Worksheets(sh.Name).Cells.Copy leNouvClass.Worksheets(sh.Name).Range("A1") Next sh End Sub Function FeuilleExiste(wbk As Workbook, F As String) As Boolean On Error Resume Next Set Feuille = wbk.Worksheets(F) FeuilleExiste = Err = 0 Err.Clear End Function
Cordialement Pascal
"rick" a écrit dans le message de news:
bonjour,
bonjour, j'ai un classeur comprenant 6 onglets,sur ces 6 onglets j'ai des tableaux avec des valeurs.
J'ai un nouveau classeur,du meme type avec 4 onglets, je souhaite importer les données de l'ancien classeur vers le nouveau par macro. c'est a dire si dans mon nouveau classeur j'ai un onglet qui se nomme test1, et que dans l'ancien aussi,je souhaite copier les valeur de l'anciens onglets test1 vers le nouveau test1.
si par contre dans le nouveau classeur,un des onglets n'existe pas et que dans l'ancien il existe, alors copier tout l'onglet vers le nouveau classeur.