![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Bonjour,
Débutante en VBA, je galère pour finaliser mon facturier. Je possède deux classeurs : 1 classeur "modèles" et 1 classeur "factures". Je souhaiterais copier la facture du classeur "modèles", dans le classeur "factures". Ma macro fonctionne si j'indique le numéro de la dernière feuille. Merci pour votre aide. Sub Copie_Facture() 'var Dim nbfeuille As Integer Dim numfact As Integer nbfeuille = Sheets.Count 'compte le nombre de feuilles ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(19) nbfeuille = Sheets.Count numfact = nbfeuille + 1 Sheets(nbfeuille).Name = "Facture n° " & (numfact) Range("G3").Value = numfact Sheets(nbfeuille).Select End Sub |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Messages: 8 142
|
bonjour nanie13
teste cette modif Code:
Sub Copie_Facture()
'var
Dim nbmesfactures As integer
nbmesfactures=Workbooks("Factures Eric 2007.xls").Sheets.count
Dim nbfeuille As Integer
Dim numfact As Integer
nbfeuille = Sheets.Count 'compte le nombre de feuilles
ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(nbmesfactures)
nbfeuille = Sheets.Count
numfact = nbfeuille + 1
Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select
End Sub
|
|
|
|
|
|
#3 (permalink) | |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Citation:
Je viens de tester votre macro, mais elle bloque au niveau de la seconde ligne |
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: septembre 2007
Messages: 431
|
Bonsoir nanie13, pierrejean et le forum,
Peux-tu essayer avec le code ci-dessous ? Code:
Sub Copie_Facture()
'var
Dim nbfeuille As Integer
Dim numfact As Integer
nbfeuille = Sheets.Count 'compte le nombre de feuilles
ActiveSheet.Copy After:=Workbooks("factures.xls").Sheets(Workbooks("factures.xls").Worksheets.Count)
nbfeuille = Sheets.Count
numfact = nbfeuille + 1
Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select
End Sub
|
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Bonjour Matthieu 33 et merci,
Je viens d'essayer votre macro, cela ne fonctionne pas, elle bloque au niveau : ActiveSheet.Copy After:=Workbooks("factures.xls").Sheets(Workbooks( "factures.xls").Worksheets.Count) |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: septembre 2007
Messages: 431
|
Bonsoir nanie13,
Lorsque cette procédure est lancée, est-ce que le classeur "factures.xls" est ouvert ? Si ce n'est pas le cas, il faut rajouter l'ouverture du classeur "factures.xls" avant la copie de la feuille du classeur "modèles.xls" dans le classeur "factures.xls" : Code:
Sub Copie_Facture()
'var
Dim nbfeuille As Integer
Dim numfact As Integer
nbfeuille = Sheets.Count 'compte le nombre de feuilles
Workbooks.Open ThisWorkbook.Path & "\" & "factures.xls"
ActiveSheet.Copy After:=Workbooks("factures.xls").Sheets(Workbooks("factures.xls").Worksheets.Count)
nbfeuille = Sheets.Count
numfact = nbfeuille + 1
Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select
End Sub
Après si cela ne fonctionne toujours pas, il nous faudra un extrait du fichier pour résoudre le problème. Merci @+ |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Bonjour Matthieu33 et merci,
Cette macro ne fonctionne toujours pas. Il m'est impossible de vous adresser mes fichiers, ils dépassent tous les deux la limite du forum et je ne sais pas comment faire pour Ajouter un fichier à partir d'une URL |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Bonjour,
J'ai changé ma macro, cette fois elle insère bien la facture en dernier, mais elle bloque lorsqu'il faut renommer la facture ![]() Merci pour votre aide Sub Copie_Facture() Dim nbfeuille As Integer Dim numfact As Integer nbfeuille = Workbooks("Factures Eric 2007.xls").Sheets.Count ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(nbfeuille) 'La macro bloque à ce niveau ActiveSheet.Name = "Facture n° " & (nbfeuille - 1) Range("G3").Value = nbfeuille - 1 'La feuille est renommée "Facture n° ", comment faut il faire pour faire apparaître son numéro ActiveSheet.Name = "Facture n° " End Sub |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: septembre 2007
Messages: 431
|
Bonjour nanie13,
Il se peut que le n° de facture à attribuer existe déjà. La variable "nbfeuille" contient le nombre de feuille avant insertion de la nouvelle feuille. Après insertion de la nouvelle feuille, je dirai que la variable "nbfeuille" vaut "nbfeuille + 1". Pouvez-vous faire un essai en mettant ? Code:
nbfeuille = nbfeuille + 1
ActiveSheet.Name = "Facture n° " & (nbfeuille)
Range("G3").Value = nbfeuille
|
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Messages: 8 142
|
re
je pense pour ma part a nbfeuille = Workbooks("Factures Eric 2007.xls").Sheets.Count ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(nbfeuille) ActiveSheet.Name = "Facture n° " & (nbfeuille) Range("G3").Value = nbfeuille explication: nbfeuille est le nombre de feuilles de Factures Eric.... avant copie s'il y a une 1ere feuille qui n'est pas une facture, la derniere facture est Facture N° nbfeuille-1 celle que l'on vient de copier sera donc Facture N° nbfeuille |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: novembre 2007
Messages: 16
|
Bonjour,
Je suis enfin arrivée au bout de ma macro, tout fonctionne parfaitement, merci à tous Dim nbfeuille As Integer Dim numfact As Integer nbfeuille = Workbooks("Factures Eric 2007.xls").Sheets.Count ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(nbfeuille) ActiveSheet.Name = "Facture n° " & (nbfeuille) Range("G3").Value = nbfeuille |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Copie d'une cellule d'un autre classeur | jeager13 | Forum Excel | 8 | 29/10/2007 01h11 |
| Créer un classeur avec la copie d'une feuille d'un autre classeur | therese78 | Forum Excel | 4 | 27/03/2007 12h38 |
| Copie de feuille dans un autre classeur | Delirium | Forum Excel | 4 | 16/08/2005 15h45 |
| copier la feuille d'un classeur dans un autre classeur... | albert | Forum Excel Downloads - Archives | 1 | 11/01/2003 13h21 |
| enregistrer une feuille d'un classeur ouvert dans un autre classeur | roger | Forum Excel Downloads - Archives | 1 | 15/02/2002 18h01 |