Copie d'une feuille dans un autre fichier
Résolu
zikey
Messages postés
116
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Copie d'une feuille dans un autre fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
53 réponses
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......
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......
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
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
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
Il faut supprimer les lignes:
ActiveSheet.Select
Range("A1:X51").Select
Range("A1:X51").Activate
Merci
Bonjour,
Merci pour le code partiel (le complet serait préférable .... Mais bon ...).
Cependant ceci manque :
le chemin exact de ce classeur ....
Merci pour le code partiel (le complet serait préférable .... Mais bon ...).
Cependant ceci manque :
le chemin exact de ce classeur ....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
C:\AD63 hiver 15-16\Bénéficiaires hiver 15-16.xlsm
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
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
Bonjour,
Pouvez-vous me fournir les valeurs qui se trouvent dans les cellules [T5] et [B3] de la feuille [Bilan du centre]...
Merci
Pouvez-vous me fournir les valeurs qui se trouvent dans les cellules [T5] et [B3] de la feuille [Bilan du centre]...
Merci
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 :
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
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
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
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]
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]
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
Concernant les noms de fichier j'inclue "un espace", voir mon message du 25/02 à 8h 16
Je vous tiens informé demain
Cordialement
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
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
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
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
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 :
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
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
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
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).
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).
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... !
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... !
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
"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
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
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