A voir également:
- Archive excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
5 réponses
Bonjour Kknd, bonjour le forum,
Essaie comme ça :
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
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
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
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 :
À 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/
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/
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question