XL 2010 exporter onglet dans classeur fermé

  • Initiateur de la discussion Initiateur de la discussion mix770
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Lone_wolf; Youky

merci à vous pour votre patience et surtout vos compétences vous êtes des champions !!!!

ça fonctionne.

de mon coté, je vais changer de pseudo "boulet_Mix" 😀
et j'aimerai avoir des cours en VBA.

Et surtout qu'elle dommage de ne pouvoir vous remercier que apr quelques mots
cela méritait une bouteille de champagne !!!
Merci beaucoup.
 
encore moi 🙄

le but étant de collecter les "collectes_AA" de plusieurs sites AA BB CC et de les consolider

juste pour savoir si dans la macro il n'y a pas possibilité de donner une cellule de référence pour le nom du fichier de destination (qui lui sera évidemment nommer en cohérence en amont). car sinon cela implique de toucher à la macro à chaque fois.

merci à vous.
 
merci Youky,
je remet le tableau

autre question, dans la macro il envoie les résultats des 12 mois c'est OK, mais l'onglet "resultat exploitation est le même pour l'année, ce qui fait qu'il le renomme résultat_exploitation2; résultat_exploitation3;etc. y a t'il possibilité qu'il écrase l'onglet précédent à chaque mois.

merci pour tout

j'espère que je suis assez claire
 

Pièces jointes

Je pige pas trop . . . .
Mets un fichier exemple avec simplement la structure et le nom des onglets, y a t'il des formules ?
résultat_exploitation2 > le 2 veux dire le N° du site ou le N° du mois
>>>écraser l'onglet précédent à chaque mois (supprimer l'onglet ou le vider )
Faut t'il copier qu'un onglet par site, je pense que Oui.
Je sais pas comment fonctionne le fichier !
Bruno
 
Bonjour Youky,

je vais te donner des détails, mais je viens de voir qu'il y a un problème, mon tableau source (celui qui envoie les onglets) est protégé par une macro) ce qui a pour conséquence de bloquer l'export avec un message.
je pense qu'il va falloir ouvrir et fermer la protection.
merci de ton aide

c'est la misère
le msg
upload_2018-3-20_14-25-48.png



et la macro de protection

Sub Locked()
' Protection automatique de toutes les feuilles du classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="Tidf94"
Next i
End Sub

Sub Unlocked()

' Déprotection automatique de toutes les feuilles du classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Oter la protection de toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="Tidf94"

Next i
End Sub



merci beaucoup !!
 

Pièces jointes

  • upload_2018-3-20_14-25-37.png
    upload_2018-3-20_14-25-37.png
    31.1 KB · Affichages: 27
Ajoute les lignes en gras.
La protection des onglets ne rentre pas en jeu c'est la protection du Classeur de destination qui bloc (voir si même MP)
Revoir le nom xlsm ou xlsx ou autre.........
Evite de mettre un MP en vue sur le forum...
Workbooks("collecte_AA.xlsm").Unprotect "Tidf94"
ThisWorkbook.Sheets(onglet).Copy After:=Workbooks("collecte_AA.xlsm").Sheets(1)
Workbooks("collecte_AA.xlsm").Protect "Tidf94"
Workbooks("collecte_AA.xlsm").Save
Bruno
 
Bruno,

Cela bloque sur la ligne en rouge, Le vrai nom du tableau de destination est "Consolidation_Exploitation.xls"
ta proposition est insérée
merci

Sub Copie_feuille_Active()
On Error Resume Next 'gestion de l'erreur
onglet = ActiveSheet.Name
If MsgBox("Envoyer " & onglet & " dans Consolidation_Exploitation ?", vbYesNo + vbExclamation, "COPIER L'ONGLET") = vbNo Then Exit Sub
Application.ScreenUpdating = False
Workbooks("Consolidation_Exploitation.xls").Activate
If Err > 0 Then
Err.Clear
chemfich = "D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\Consolidation_Exploitation.xls"
Workbooks.Open chemfich
If Err <> 0 Then MsgBox "fichier non trouvé": Exit Sub
End If
On Error GoTo 0
' Workbooks("Consolidation_Exploitation.xls").Unprotect "AAA" 'ajout
ThisWorkbook.Sheets(onglet).Copy after:=Workbooks("Consolidation_Exploitation.xls").Sheets(1)
' Workbooks("Consolidation_Exploitation.xls").Protect "AAA" ' ajout
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
DoEvents 'reprise main windows
Workbooks("Consolidation_Exploitation.xls").Save
Workbooks("Consolidation_Exploitation.xls").Close
ThisWorkbook.Activate: Range("A1").Select
Application.ScreenUpdating = True
MsgBox onglet & " a été copié dans Consolidation_Exploitation !"
End Sub

cela bloque
 
j'ai une solution, peut être pas très académique 😱 mais ça marche apparemment.
en début de macro je déprotège et en fin de macro je protège la feuille active puisque le bouton est sur la feuille.

ça sent un peu la bidouille à Dudule 😀

ActiveSheet.Unprotect ("AAA")
ActiveSheet.Protect ("AAA")

tu en penses quoi ?
 
Je déprotège l'onglet après l'avoir copié afin d'ôter les formules
Attention on va en bug si on copie 2 fois le même onglet
Bruno
VB:
Sub Copie_feuille_Active()
On Error Resume Next 'gestion de l'erreur
onglet = ActiveSheet.Name
If MsgBox("Envoyer " & onglet & " dans Consolidation_Exploitation ?", vbYesNo + vbExclamation, "COPIER L'ONGLET") = vbNo Then Exit Sub
Application.ScreenUpdating = False
Workbooks("Consolidation_Exploitation.xls").Activate
If Err > 0 Then
Err.Clear
chemfich = "D:\Applis\Bordereau présence Exploitation\Collecte_Résultats_Exploitation\Consolidation_Exploitation.xls"
Workbooks.Open chemfich
If Err <> 0 Then MsgBox "fichier non trouvé": Exit Sub
End If
On Error GoTo 0
ThisWorkbook.Sheets(onglet).Copy after:=Workbooks("Consolidation_Exploitation.xls").Sheets(1)
With Workbooks("Consolidation_Exploitation.xls")
.Sheets(onglet).unprotect "tonMP"
.Sheets(onglet).UsedRange.value=.Sheets(onglet).UsedRange.value
.Sheets(onglet).protect "tonMP"
.save
.close
End with
ThisWorkbook.Activate: Range("A1").Select
Application.ScreenUpdating = True
MsgBox onglet & " a été copié dans Consolidation_Exploitation !"
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
659
Retour