XL 2010 exporter onglet dans classeur fermé

mix770

XLDnaute Impliqué
re bonjour,

je recommence à zéro.

j'ai la macro suivante qui fonctionne quand les 2 classeurs sont ouverts, cela copie l'onglet.

Sub Copie_feuille_resultats_janvier()
Sheets("resultats_janvier").Select
Sheets("resultats_janvier").Copy After:=Workbooks("collecte_AA").Sheets(1)
End Sub

j'essaie modifier pour qu'il fasse la même chose sans ouvrir le classeur et cela bloque sur:

Workbooks("D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\collecte_AA.xlsx").Activate

je tourne en rond depuis hier et cela me rend GRRRR


Sub Copie_feuille_resultats_janvier()
Sheets("resultats_janvier").Select
Workbooks("D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\collecte_AA.xlsx").Activate
Sheets("resultats_janvier").Copy After:=Workbooks("collecte_AA").Sheets(1)
ActiveWindow.Close
ThisWorkbook.Activate: Range("A1").Select
End Sub

si quelqu'un a une idée

merci à vous
 

mix770

XLDnaute Impliqué
Bonjour Lone_Wolf,

j'aime bien toucher du bout des doigts les macro, mais là je suis à la ramasse.

en fait dans collecte_AA il y a l'onglet "resultats_exploitation" et les onglets des mois "resultats_janvier; etc".

sinon on ne se casse pas la tête.
pour les résultats par mois on exporte l'onglet en lui donnant le dossier de destination D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation
pour celui résultats exploitation je prends ta macro qui sera à activer mois par mois.

pour ta macro "adaptée à moi":
Sub Copie_Janvier() 'Dans classeur fermé

Application.ScreenUpdating = False

[A1:L41].ClearContents

On Error Resume Next

With [A1:L39]
.Formula = "='D:\Applis\Bordereau présence Exploitation\Parka_ Resultats compte Exploitation Resultats_Janvier'!A1:L41"
.AutoFill [A1:L39]
.Value = .Value
End With

End Sub

cela fonctionne mais il me demande quand je l'active le chemin de destination et de sélectionner le nom de l'onglet.
pour le fichier que tu as mis en ligne quand je le test je ne vois pas ce qu'il génère.

upload_2018-3-19_9-38-59.png

merci encore
 

mix770

XLDnaute Impliqué
re,

Sub Copie_feuilles()
Dim Ws As Worksheet, Mois As String
Dim chemfich As String, NomMois As String

On Error Resume Next 'gère l'error
'Sheets("resultats exploitation").Select
Workbooks("collecte_AA.xlsx").Activate
If Err > 0 Then
Err.Clear
chemfich = "D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\collecte_AA.xlsx"
Workbooks.Open chemfich
If Err <> 0 Then MsgBox "fichier non trouvé": Exit Sub
End If
ThisWorkbook.Sheets("resultats_exploitation").Copy ActiveWorkbook.Sheets(1).Range("a1")
Mois = MonthName(Month(Date))
For Each Ws In ThisWorkbook.Worksheets
NomMois = Right(Ws.Name, Len(Ws.Name) - 10)
If NomMois = Mois Then
Ws.Activate
ActiveSheet.Copy After:=ActiveWorkbook.Sheets(1).Range("a1")
End If
Next Ws
ActiveWorkbook.Close True
ThisWorkbook.Sheets(1).Activate
End Sub


- macro à placer dans le fichier destination (collecte_AA)
Cheminfich est celui source (Parka_suivi compte exploitation) ?

quand je l'active j'ai un message "fichier non trouvé"
 

mix770

XLDnaute Impliqué
re,

donc macro installée sur le fichier source "parka_suivi compte exploitation"
dans fichier destination "collecte_AA"l'onglet "resultats_Eploitation" + les 12 onglets "resultats_janvier; resultats_Fevrier; etc..)

quand j'active la macro, il ouvre "collecte_AA"
Enregistre et ferme Parka_suivi compte exploitation

laisse ouvert collecte_AA mais les pages restent vides.

merci à toi
 

youky(BJ)

XLDnaute Barbatruc
Bonjour mix770, bonjour Lone-Wolf,
Avec ce code on envoie l'onglet qui est actif, donc il suffit de se mettre sur le mois souhaité et on exécute la macro
qui l'envoie en collecte_AA.
Pas besoin de créer les pages des mois en avance sur collecte_AA
Bruno
VB:
Sub Copie_feuille_Active()
On Error Resume Next 'gère l'error
onglet=Activesheet.name
if msgbox("Envoyer  " & onglet & "  dans collecte_AA ?",vbyesno+vbexclamation,"COPIER L'ONGLET")=vbno then exit sub
Application.ScreenUpdating = False
Workbooks("collecte_AA.xlsx").Activate
If Err > 0 Then
Err.Clear
chemfich = "D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\collecte_AA.xlsx"
Workbooks.Open chemfich
If Err <> 0 Then MsgBox "fichier non trouvé": Exit Sub
End If
ThisWorkbook.Sheets(onglet).Copy After:=Workbooks("collecte_AA.xlsx").Sheets(1)
doevents'redonne la main à windows
Workbooks("collecte_AA.xlsx").Save
Workbooks("collecte_AA.xlsx").Close
ThisWorkbook.Activate: Range("A1").Select
Application.ScreenUpdating = True
MsgBox onglet & "a été copié en collecte_AA !"
End Sub
 

mix770

XLDnaute Impliqué
youky,

donc macro installée sur l'onglet à exporter, quand je l'active Msg "voulez vous .." je clique sur OK, MSG de confirmation resultats_Janviera a été copié en collectte_AA.

mais quand j'ouvre collecte_AA il n'y a rien dedans
pourquoi il indique resultats_ janviera alors que l'onglet est bien nommé resultats_janvier

merci beaucoup.
 

Lone-wolf

XLDnaute Barbatruc
Re,

Code à mettre dans le classeur source.

VB:
Option Explicit

Sub Copie_feuilles()
Dim Ws As Worksheet, Wkdest As Workbook, Mois As String
Dim chemfich As String, NomMois As String, derlig As Long

    Application.ScreenUpdating = False

    chemfich = ThisWorkbook.Path & "\Classeur2.xls"
    Workbooks.Open chemfich

    If Err <> 0 Then MsgBox "fichier non trouvé": Exit Sub
    derlig = ThisWorkbook.Sheets("resultats exploitation").Range("a" & Rows.Count).End(xlUp).Row

    ThisWorkbook.Sheets("resultats exploitation").Range("a1:k" & derlig).Copy _
            Workbooks("Classeur2.xls").Sheets(1).Range("a1")
    Mois = MonthName(Month(Date))

    Set Wkdest = Workbooks("Classeur2.xls")
    Wkdest.Activate
    For Each Ws In ThisWorkbook.Worksheets
        NomMois = Right(Ws.Name, Len(Ws.Name) - 10)
        If NomMois = Mois Then
            Ws.Copy after:=Wkdest.Sheets(Wkdest.Sheets.Count)
        End If
    Next Ws

    ActiveWorkbook.Close True
    ThisWorkbook.Sheets(1).Activate
End Sub

Edit: bonjour Bruno
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 870
dernier inscrit
Dethomas