Copie d'une feuille dans un autre fichier

Résolu/Fermé
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016 - 24 juin 2015 à 14:33
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 - 7 juil. 2015 à 15:02
Bonjour,
J'ai un fichier que j'ai nommé de la manière suivante:

ActiveWorkbook.SaveAs Chemin3 + Semaine3 + Espace1 + NomFichier3 + Espace1 + Centre3

Je souhaite inclure une feuille dans ce fichier, voilà ce que j'ai écrit et qui ne fonctionne pas:

Windows("Bénéficiaires hiver 15-16").Activate
Sheets("Interface").Activate
ActiveSheet.Copy after:=Workbooks(Chemin3 + Semaine3 + Espace1 + NomFichier3 + Espace1 + Centre3).Sheets(1)

Je suis persuadé que quelqu'un aura une petite idée.
Merci d'avance
Cordialement

A voir également:

53 réponses

Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
24 juin 2015 à 23:04
Bonjour,
C'est du code boiteux... !
Pouvez-vous indiquer :
le nom exact du classeur y compris son extension........
le chemin exact de ce classeur ....
Dans quel classeur se trouve la procédure......

0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
25 juin 2015 à 08:16
Bonjour,
En effet le code est sûrement boiteux à l'image de mon inexpérience !
Je reprends une partie plus longue de la procédure
La feuille "Bilan du centre" appartient à un fichier "Bénéficiaires hiver 15-16" d'extension "xlsm" et qui porte la procédure.

Sheets("Bilan du centre").Activate
ActiveSheet.Unprotect Password:="sotser"
ActiveSheet.Copy
Dim Semaine3 As String
Dim Chemin3 As String
Dim NomFichier3 As String
Dim Centre3 As String
Chemin3 = "C:\Bilans du centre hiver 15-16\"
NomFichier3 = "Bilan du centre de"
Semaine3 = Range("T5").Value
Semaine3 = Right("S" + Semaine3, 3)
Centre3 = Range("B3").Value
ActiveWorkbook.SaveAs Chemin3 + Semaine3 + Espace1 +
NomFichier3 + Espace1 + Centre3
Range("A1").Select
Sheets("Bilan du centre").Activate
ActiveSheet.Select
Range("A1:X51").Select
Range("A1:X51").Activate
ActiveSheet.Protect Password:="sotser", DrawingObjects:=True, Contents:=True, _
Scenarios:=Ttrue
Range("T23").Select
ActiveWorkbook.Save

Dans ce fichier créé et enregistré je veux ajouter une feuille "Interface" qui appartient, elle aussi au fichier "Bénéficiaires hiver 15-16".

Windows("Bénéficiaires hiver 15-16").Activate
Sheets("Interface").Activate
ActiveSheet.Copy after:=Workbooks(Chemin3 + Semaine3 + Espace1 + NomFichier3 + Espace1 + Centre3).Sheets(1)

Je ne suis pas allé jusque là mais je pense qu'il faudra couper les liaisons avec le fichier "Bénéficiaires hiver 15-16".
En effet dans le fichier "Bénéficiaires hiver 15-16" la feuille "Interface" est renseignée par le feuille "Bilan du centre".
Je n'ai pas besoin de l'extension "xlsm" pour le fichier qui est créé sous le nom de "Chemin3 + Semaine3 + .."

J'espère avoir répondu aux différentes interrogations

Cordialement
0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
25 juin 2015 à 08:22
Je me rends comte que j'ai une erreur dans l'extrait de procédure:

Il faut supprimer les lignes:

ActiveSheet.Select
Range("A1:X51").Select
Range("A1:X51").Activate

Merci
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
25 juin 2015 à 10:39
Bonjour,
Merci pour le code partiel (le complet serait préférable .... Mais bon ...).
Cependant ceci manque :
le chemin exact de ce classeur ....

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
25 juin 2015 à 11:37
Je pense que le classeur concerné est le classeur "Bénéficiaires hiver 15-16", son chemin complet est:

C:\AD63 hiver 15-16\Bénéficiaires hiver 15-16.xlsm
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
Modifié par Le Pingou le 25/06/2015 à 14:48
Bonjour,
Merci, donc chemin différent pour le nouveau classeur [C:\Bilans du centre hiver 15-16\], proposition va suivre en fin de journée.

Salutations.
Le Pingou
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
25 juin 2015 à 21:56
Bonjour,
Pouvez-vous me fournir les valeurs qui se trouvent dans les cellules [T5] et [B3] de la feuille [Bilan du centre]...
Merci

0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
25 juin 2015 à 22:20
Bonjour,
En attendant vous pouvez essayer cette procédure qui créer un nouveau classeur avec les 2 feuilles dont [Bilan du centre] garde la protection (MDP...).
La procédure :
Sub essai_zikey_ccm()
Dim clso As Workbook
Dim Chemin As String, NomFichier As String
Set clso = ActiveWorkbook
Chemin = "C:\Bilans du centre hiver 15-16\"
Application.ScreenUpdating = False
With Sheets("Bilan du centre")
    NomFichier = Right("S" & .Range("T5").Value, 3) & " Bilan du centre de " & .Range("B3").Value & ".xlsx"
    .Copy
    ActiveWorkbook.SaveAs Chemin & NomFichier
End With
clso.Sheets("Interface").Copy After:=Workbooks(NomFichier).Sheets(1)
Application.ScreenUpdating = True
Set clso = Nothing
End Sub

0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
26 juin 2015 à 07:45
Bonjour,
Tout d'abord merci pour votre aide précieuse.
T5 = N° de semaine donc avec "S" donne "S26"
B3= Nom du centre
En conclusion le chemin du fichier sauvegardé est:
C:\Bilans hiver 15-16\S26 Bilan du centre de Rochefort Montagne.
Par contre aujourd'hui je vais être sur la route et j'essaierai votre proposition demain matin.
Encore merci
Cordialement
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
26 juin 2015 à 10:59
Bonjour,
Merci pour les informations, c'est parfait.
En marge, dans les divers noms de répertoire, feuille et classeur, pour éviter des erreurs dans les programmes, il serait préférable d'éviter les espaces vides et de les remplacer par signe souligné ( _ ).
Exemple : [S26_Bilan_du_centre_de_Rochefort_Montagne] au lieu de : [S26 Bilan du centre de Rochefort Montagne]

0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
26 juin 2015 à 11:13
Encore merci, comme annoncé je modifierai la procédure demain
Concernant les noms de fichier j'inclue "un espace", voir mon message du 25/02 à 8h 16
Je vous tiens informé demain
Cordialement
0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
29 juin 2015 à 18:44
Bonjour,
Je n'ai repris le clavier qu'aujourd'hui et malheureusement j'ai un message d'erreur.
"Erreur de compilation"
"Utilisation incorrecte de la propriété"

au niveau de la ligne
Application.ScreenUpdating = False

Merci pour votre aide
Cordialement
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
29 juin 2015 à 22:21
Bonjour,
Etrange, merci de préciser ce que vous avez modifier par rapport à ma proposition...!
0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
30 juin 2015 à 11:20
Bonjour,
J'ai inséré la partie de procédure(20) que vous m'avez proposée à la suite de la partie suivante (19):

'19) Création du fichier "Sxx Bilan du centre Nom du centre".
'Protection de la feuille "Bilan du centre".
'Enregistrement du fichier "Sxx Bilan du centre Nom du centre"
'dans le dossier "Bilans du centre hiver 15-16".

Sheets("Bilan du centre").Activate
ActiveSheet.Unprotect Password:="sotser"
ActiveSheet.Copy
Dim Semaine3 As String
Dim Chemin3 As String
Dim NomFichier3 As String
Dim Centre3 As String
Dim Extension As String
Extension = ".xlsm"
Chemin3 = "C:\Bilans du centre hiver 15-16\"
NomFichier3 = "Bilan du centre de"
Semaine3 = Range("T5").Value
Semaine3 = Right("S" + Semaine3, 3)
Centre3 = Range("B3").Value
ActiveWorkbook.SaveAs Chemin3 + Semaine3 + Espace1 +
NomFichier3 + Espace1 + Centre3 + Extension
Range("A1").Select
Sheets("Bilan du centre").Activate
ActiveSheet.Select
Range("A1:X51").Select
Range("A1:X51").Activate
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="sotser", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
ActiveWorkbook.Save


'20) Copie de la feuille "Interface" du fichier "Bénéficiaires hiver 15-16" dans le fichier "Sxx Bilan du centre de...".

Dim clso As Workbook
Dim Chemin4 As String, NomFichier4 As String
Set clso = ActiveWorkbook
Chemin4 = "C:\Bilans du centre hiver 15-16\"
Application ScreenUpdating = False
With Sheets("Bilan du centre")
NomFichier4 = Right("S" & .Range("T5").Value, 3) & "Bilan du
centre de" & .Range("B3") .Value & ".xlsm"
.Copy
ActiveWorkbook.SaveAs Chemin4 & NomFichier4
End With
clso.Sheets("Interface").Copy after:=Workbooks(NomFichier4). _
Sheets(1)
Application ScreenUpdating = True
Set clso = Nothing
Sheets("Bilan du centre").Activate
Range("T23").Select

En vous souhaitant bonne lecture

Encore merci pour votre aide et votre patience

Cordialement
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
30 juin 2015 à 17:13
Bonjour,
Je pense que vous manipulez les lignes de codes sans bien vous rendre compte du fonctionnement.... !
Avant de poursuivre je vous prie d'essayer la procédure proposée (poste 8) et me dire si cela marche correctement.
En marge : lorsque vous insérez une procédure dans un message il est préférable de la formatée.., pour ce faire vous sélectionnez la procédure (ou les lignes de code) et ensuite clic sur l'icône (triangle pointe en bas) et clic sur [basic]
Exemple :
Sub essai_zikey_ccm()
Dim clso As Workbook
Dim Chemin As String, NomFichier As String
Set clso = ActiveWorkbook
........
........
Set clso = Nothing
End Sub

0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
1 juil. 2015 à 08:47
Bonjour,
Comme je l'avais annoncé au début, je n'ai eu aucune formation sur VBA, j'ai appris seul en utilisant le développeur, les forums et un livre pour débutant.
D'ailleurs je suis à la recherche d'un autre livre me permettant de me "formater" au VBA.
Beaucoup de termes me sont inconnus.
Je comprends votre exaspération et je comprendrais très bien que vous souhaitiez de quitter cette discussion.
Je pense avoir compris votre dernière demande et je vais l'essayer de suite.
Cordialement
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
1 juil. 2015 à 09:02
Bonjour,
Merci pour l'information.
J'attends donc la réponse pour être en mesure de poursuivre.
Dans la foulé, profitez-en pour une petite explication de l'ensemble de votre application (dans les grandes lignes).

0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
1 juil. 2015 à 09:25
Bonjour,
Petit complément ; pour éviter toute confusion avec vos procédures, vous insérez un nouveau module et y copier ma procédure et ensuite vous la lancez... !

0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
1 juil. 2015 à 11:30
C'est ce que j'ai fait mais j'ai toujours le même message au niveau de la ligne "Application", la première.
"Erreur de compilation"
"Utilisation incorrecte de la propriété".
Je vais prendre le temps de faire le ménage dans la macro pour tout recaler dans ma tête !
Je reprendrai ce dossier chez moi en fin d'après-midi.
En attendant, quelques explications au sujet de cette procédure:
Je fais partie de l'équipe informatique, pas de pro mais que des amateurs, de l'association départementale 63 des restos du coeur. Les 20 centres du département seront équipés du fichier "Bénéficiaires hiver 15-16" qui porte les différentes procédures.
Ce fichier est le fichier de base, il sert à relever les familles qui ont été présentes à la distribution hebdomadaire des centres, ceci permettant d'évaluer la quantité de nourriture distribuée afin de provoquer le ravitaillement par les entrepôts départemental et national.
Donc ce fichier comporte plusieurs feuilles dont 3 sont concernées par la macro
"Saisir les Présences", cette feuille en plus de saisies manuelles reçoit des informations de 2 autres feuilles et transmet des valeurs à la feuille "Bilan du centre". Cette feuille est enregistrée dans un fichier nommé "Sxx saisie des Présences" est enregistré dans un dossier "Présences hiver 15-16"
"Bilan du centre" est rempli par les autres feuilles et alimente la feuille "Interface".
La feuille "Bilan du centre" est enregistrée dans un fichier nommé "Sxx Bilan du centre de (nom du centre) stocké dans un dossier "Bilans du centre hiver 15-16".
Dans ce fichier créé on inclut la feuille "Interface", attention il ne faut copier que les valeurs.
Ce fichier est alors expédié par notre messagerie interne à 3 adresses pre définies.
Ensuite les 2 feuilles "Bilan du centre" et "Interface" sont imprimées.
La feuille "Interface" a été créée parce qu'il n'y a pas de passerelle entre Excel et le logiciel national.

Encore merci pour votre patience et votre aide

Cordialement
0
zikey Messages postés 116 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 14 mai 2016
1 juil. 2015 à 20:02
Bonsoir,
J'ai réussi à faire fonctionner la procédure que vous m'avez donnée en dehors de la mienne.
Je vais continuer en l'intégrant.
Encore merci
J'attends une réponse éventuelle de votre part et ensuite je clôturerai cette discussion
Cordialement
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
1 juil. 2015 à 22:58
Bonjour,
Je lirai l'autre message (19) demain.
Content pour vous que cela fonctionne.
Je suis curieux de connaitre la raison du problème .....("Utilisation incorrecte de la propriété")... !
Salutations.
Le Pingou
0