Facturier excel - Débutante VBA

nanie13 -  
ShaBoo Messages postés 406 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. ShaBoo Messages postés 406 Statut Membre 50
     
    Bonjour,

    Quel est ton pb ?
    0
    1. 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
    2. 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
  2. ShaBoo Messages postés 406 Statut Membre 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