Facturier excel - Débutante VBA

nanie13 -  
ShaBoo Messages postés 392 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Quelqu'un pourrait t il m'aider à finaliser cette macro s'il vous plait ?

Je souhaiterais copier ma facture dans un autre classeur, l'insérer en dernier et lui donner son nouveau numéro.

Option Explicit

Sub Copie_Facture()
'var
Dim nbfeuille As Integer
Dim numfact As Integer
'compte le nombre de feuilles
nbfeuille = Sheets.Count
'creation de la nouvelle feuille
ActiveSheet.Copy After:=Workbooks("Factures 2007.xls").Sheets(nbfeuille)
nbfeuille = Sheets.Count
numfact = nbfeuille + 1
Sheets(nbfeuille).Name = "Facture N°" & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select

End Sub
A voir également:

2 réponses

ShaBoo Messages postés 392 Date d'inscription   Statut Membre Dernière intervention   50
 
Bonjour,

Quel est ton pb ?
0
nanie13
 
Bonjour,
ma macro ne fonctionne pas, voilà quelques jours que je galère.
Je suis débutante en VBA et je ne trouve pas mon erreur.
0
nanie13
 
Bonjour,

ma macro fonctionne si je nomme l'avant dernière feuille :

ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(19)

mais je voudrais qu'elle se positionne en dernier.......

Merci par avance


Sub Copie_Facture()


'var
Dim nbfeuille As Integer
Dim numfact As Integer
'debut
'compte le nombre de feuilles
nbfeuille = Sheets.Count

'creation de la nouvelle feuille
ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(19)
nbfeuille = Sheets.Count
numfact = nbfeuille + 0
Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select

End Sub
0
ShaBoo Messages postés 392 Date d'inscription   Statut Membre Dernière intervention   50
 
Bonjour,

Essaye ceci :

Sub Copie_Facture()
'var
Dim nbfeuille As Integer
Dim numfact As Integer
'debut
'compte le nombre de feuilles
'nbfeuille = Sheets.Count
nbfeuille = ThisWorkbook.Sheets.Count

'creation de la nouvelle feuille
'ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(19) 
ActiveSheet.Copy After:=Sheets(nbfeuille)

nbfeuille = Sheets.Count ' je ne vois pas pourquoi tu fais cela
numfact = nbfeuille + 0 ' a quoi te sert ceci si nbfeuille = 1 => 1 + 0 = 1
'Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Sheets(nbfeuille).Name = "Facture n° " & (nbfeuille)
'Range("G3").Value = numfact
Range("G3").Value = nbfeuille

Sheets(nbfeuille).Select

End Sub
0