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

pb d'import de données d'un classeur a un autre ( pb de macro)

3 réponses
Avatar
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.

Merci d'avance

3 réponses

Avatar
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





Avatar
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










Avatar
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