Archivage feuille excel

Fermé
kknd04 - 21 août 2019 à 17:37
Cemoibob Messages postés 1 Date d'inscription dimanche 25 août 2019 Statut Membre Dernière intervention 25 août 2019 - 25 août 2019 à 19:10
Bonjour,

Je cherche a faire un archivage d'une feuille sur mon classeur excel.

Pour que vous compreniez, voila le contexte :

J'ai un classeur pour gérer mon entreprise, dans ce classeur il y a beaucoup de feuilles diverses, dont une Facturation.
Cette dernière me permet d'éditer des factures.

Mais j'aimerais que quand je clique sur un bouton, elle se copie dans un autre classeur excel (non ouvert) nommé : Facturation.xlsx.

Elle doit se copier en une nouvelle feuille avec le nom de la cellule "J4".

les deux classeurs sont dans le même dossier, j'aimerais éviter les adresses trop précises, et que la macro cherche uniquement dans le dossier du classeur a copier.

Donc, le cheminement attendu :

Clique sur le bouton Archivage => copie de la feuille => recherche du classeur Facturation dans le même dossier => ouverture (si besoin) classeur Facturation => création d'une feuille => nommage de cette feuille au nom de la cellule "J4" => Collage de la feuille copier.

Je suis pas certain que ce soit la meilleur solution, vous avez peut être mieux a me proposer.

Merci d'avance de votre aide.

Configuration: Windows / Chrome 76.0.3809.100
A voir également:

5 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
21 août 2019 à 20:20
Bonjour Kknd, bonjour le forum,

Essaie comme ça :
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)

Set CS = ThisWorkbook 'définit la classeur source CS
CA = CS.Path & "/" 'définit le chemin d'accès CA
Set OS = CS.Worksheets("Facturation") 'définit l'onglet source OS
On Error Resume Next 'gestion des erreurs (en cas dérreur passe à la ligne suivante)
Set CD = Workbooks("Facturation.xlsx") 'définit le classeur destination CD (génère une erreur s'il n'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a été générée
    Err.Clear 'supprime l'erreur
    Set CD = Application.Workbooks.Open(CA & "Facturation.xlsx") 'définit le classeur destination CD (en l'ouvrant)
End If 'fin de l condition
On Error GoTo 0 'annule la gestion des erreurs
OS.Copy after:=CD.Sheets(CD.Sheets.Count) 'copie l'onglet source OS en dernière position du classeur destination CD
ActiveSheet.Name = ActiveSheet.Range("J4") 'renomme l'onglet copié
End Sub

0
Bonjour,

Merci pour ta réponse.

J'ai une erreur, l'avant dernière ligne d’après le débogueur.

Le message est :

Erreur d'exécution '91'
Variable objet ou variable de bloc With non définie

Je ne sais pas a quoi cela correspond
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
22 août 2019 à 12:54
J'avais testé rapidement avant de t'envoyer et je n'ai pas eu d'erreur...
Si c'est la ligne 18, peut-être en la remplaçant la par :
Activesheet.Name = Range("J4")

À ce propos, ce genre de code est sans garde-fou. Si J4 est vide ou si elle contient des caractères interdits dans le nom d'un onglet, tu auras un plantage...

L'idéal si tu veux conclure ce projet c'est de fournir le fichier via un hébergeur de fichier comme par exemple : https://www.cjoint.com/
0
Le changement ne change rien.

Mais je crois que c'est la ligne 17 et non 18 que me montre le débogueur.
En fait je n'ai pas compté la ligne End Sub.

Donc la ligne est celle :

OS.Copy after:=CD.Sheets(CD.Sheets.Count) 'copie l'onglet source OS en dernière position du classeur destination CD

Je vais voir pour envoyer le dossier par cijoint

Si tu a une idée entre temps...

Merci d'avance
0
Bonjour,

Je viens de comprendre le problème, c’était tout con, l’extension du dossier facturation n’était pas xlsx, mais xslm.

Merci beaucoup de ton aide.
0

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

Posez votre question
Cemoibob Messages postés 1 Date d'inscription dimanche 25 août 2019 Statut Membre Dernière intervention 25 août 2019
25 août 2019 à 19:10
Bonjour a tous
Je recherche svp un code pour enregistrer via un bouton sur une feuille1 au format pdf et au nom d'une cellule d'une autre feuille2 du même classeur
Merci pour votre aide
0