Récupérer numéro depuis fichier excel situé dans un dossier

RONIBO

XLDnaute Impliqué
Bonsoir le forum,

J'aurais besoin de vos expériences.

J'aimerais intégrer dans mon fichier modèle un code qui va me permettre de numéroter les factures ou devis

J'ai un dossier facture avec plusieurs facture à l'intérieur.

Je souhaite avoir un code qui va me permettre de récupérer le dernier numéro utilisé dans le dossier facture et le reporter dans le fichier modèle en y ajoutant +1

Ex : si dernière facture = Facture Nº004 - SOS BAT (Darty), prochaine facture compotera le numéro 005

Je vous met un fichier exemple assez simple (à extraire dans c: svp)

Merci d'avance

Bonne nuit
 

Pièces jointes

  • Ronibo.zip
    29.2 KB · Affichages: 50
  • Ronibo.zip
    29.2 KB · Affichages: 51
  • Ronibo.zip
    29.2 KB · Affichages: 53

JCGL

XLDnaute Barbatruc
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonjour à tous,

Un essai avec le choix du répertoire à l'ouverture du fichier Modèle.

On pourra se départir de la fenêtre si tu indiques le chemin exact du répertoire Facture ou si ce répertoire est un sous-répertoire du répertoire où est "Modèle.xlsm"

A+ à tous
 

Pièces jointes

  • JC Modèle.xlsm
    23.4 KB · Affichages: 49

RONIBO

XLDnaute Impliqué
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Superrrrr ! Merci Beaucoup :)

Est ce que tu as vu mon poste précédant ?

Oui j'aimerais ne pas pourvoir afficher la fenêtre, en générale mes facture se trouve dans un répertoire fixe (ex : C:\Ronibo\Facture\)

Si on peut ignorer cette étape sa serait nickel :)

Je me pose une autre question, Vu que c'est nouvelle entreprise, normalement je dois commencer à numéroter mes facture à partir de 1, (j'ai fouillé sur le nette est apparemment je peux commencer par le numéro 50, (il faut faire attention que tous les numéros se suivent, c'est la seule condition.

Je fais ca car, j'ai pas envie que mon premier client sache que je fais ma première facture.

Qu'est ce que l'on peut faire?

Créer des factures vides?

A+
 
G

Guest

Guest
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonjour,

J'avais commencé cette fonction ce matin, puis..... voilà qui est fait, je la poste et tu verras si tu peux t'en servir.

Code:
Function ProchainNuméro(Société As String) As Integer
'Recherche des numéros de facture par nom de société
Dim num As Integer, tmp As Integer
Dim leFichier As String
    leFichier = Dir(Chemin & "Facture N°???*" & Société & "*.xlsm")
    Do While leFichier <> ""
        If leFichier Like "Facture N°###*" & Société & "*.xlsm" Then
            tmp = Val(Mid(leFichier, 11, 3))
            If tmp > num Then num = tmp
            tmp = 0
        End If
        leFichier = Dir
    Loop
    ProchainNuméro = num + 1
End Function

Utilisation composition n° facture:
Code:
Sub test()
Dim strSociété As String, libellé As String
Dim NumFacture As Integer
strSociété = "SOSFRANCE (AUCHAN)" 'Ou SOSFRANCE
NumFacture = ProchainNuméro(strSociété)
libellé = "Facture N°" & Format(NumFacture, "000") & " - " & strSociété & ".xlsm"
Debug.Print libellé
End Sub

P.S. on peut regrouper la reconstruction du Nom de fichier dans la fonction ProchainNuméro qui retournerait alors le nom complet du fichier.
A+
Grand salut à toi l'ami JC:):):)
 
Dernière modification par un modérateur:

JCGL

XLDnaute Barbatruc
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonjour à tous,
Salut mon ami Ges,

Alors ceci devrait suffire dans le Module1 :

VB:
Dim Ligne%

Sub ArborescenceRepertoire()
    Racine = "C:\Ronibo\Facture\"
    If Racine = "" Then Exit Sub
    Columns(27).ClearContents
    Set FS = CreateObject("Scripting.FileSystemObject")
    Set Dossier_Racine = FS.getfolder(Racine)
    Ligne = 1
    Lit_Dossier Dossier_Racine, 1
    Range("G10") = Application.WorksheetFunction.CountA(Columns(27)) + 50
    Range("G10").NumberFormat = "000"
    Columns(27).ClearContents
End Sub


Sub Lit_Dossier(ByRef Dossier, ByVal Niveau)
    Cells(Ligne, 27) = Dossier.Name
    Cells(Ligne, 27).Font.ColorIndex = 0
    Ligne = Ligne + 1
    For Each Fichier In Dossier.Files
        Cells(Ligne, 27) = Fichier.Name
        Ligne = Ligne + 1
    Next
End Sub

A+++ mon ami Ges
A+ à tous
 
Dernière édition:

RONIBO

XLDnaute Impliqué
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonjour,

JCGL : je viens de tout essayer, le code fonctionne bien, sauf que j'ai un petit problème,

J'ouvre mon modèle, je créer ma facture n°001, je l'enregistre et des que j'ouvre ma facture 001 le numéro de facture change, passe à 003.

J'aimerais faire fonctionner la macro seulement lorsque la cellule est vide.

Est-ce possible à réaliser ?

Hasco : je teste ton code après :)

A+
 

RONIBO

XLDnaute Impliqué
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Re,

Je viens de constater un autre petit problème lors du sauvegarde des mes factures, le format des numéros est (par exemple) 3 au lieu de 003 (il manque les zéros,

Tu as une idée?
 

JCGL

XLDnaute Barbatruc
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonjour à tous,

Non, tu remplaces ton #25 par mon #24

Si tu as repris strictement mon code, c'est étonnant :

Range("G10").NumberFormat = "000"

A+ à tous

Edition : Je te rappelle que nous n'avons toujours pas vu ton code de création des factures et de sauvegarde de ces factures... Notre échange peut durer longtemps.
 
Dernière édition:

RONIBO

XLDnaute Impliqué
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Bonsoir,

Oui j'ai rien modifier sur le code mise à part le chemin.

Désolé je savais pas que tu voulais une copie, je te mets un exemple avec le code ci-joint. (à extraire dans c: stp)

Il manque plus que le problème de 0.

A+
 

Pièces jointes

  • Ronibo.zip
    414.7 KB · Affichages: 38
  • Ronibo.zip
    414.7 KB · Affichages: 42
  • Ronibo.zip
    414.7 KB · Affichages: 44

RONIBO

XLDnaute Impliqué
Re : Récupérer numéro depuis fichier excel situé dans un dossier

Re,

Merci pour ta réponse,

J'ai fait se que tu m'as dit mais sans succès.

Regarde mon code.

Dim Ligne%
Sub ArborescenceRepertoire()
ActiveSheet.Unprotect
Racine = CheminDossierFacture
If Racine = "" Or Range("G10") <> "" Then Exit Sub
If Racine = "" Then Exit Sub
Columns(27).ClearContents
Set FS = CreateObject("Scripting.FileSystemObject")
Set Dossier_Racine = FS.getfolder(Racine)
Ligne = 1
LitDossier Dossier_Racine, 1
Range("G10") = Application.WorksheetFunction.CountA(Columns(27)) + 0
Range("G10").NumberFormat = "000"
Range("G10") = Range("G10").Text
Columns(27).ClearContents
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingRows:=True
End Sub
Sub LitDossier(ByRef Dossier, ByVal Niveau)
Cells(Ligne, 27) = Dossier.Name
Cells(Ligne, 27).Font.ColorIndex = 0
Ligne = Ligne + 1
For Each fichier In Dossier.Files
Cells(Ligne, 27) = fichier.Name
Ligne = Ligne + 1
Next
End Sub
Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Répertoire?")
End If
End Function

Le format de ma cellule est bonne mais au moment ou j'enregistre ma facture j'obtiens : Facture N°1*-*EXCEL DOWNLOAD*(CORA)

A+
 

Discussions similaires

Réponses
59
Affichages
4 K

Statistiques des forums

Discussions
312 677
Messages
2 090 815
Membres
104 673
dernier inscrit
lautard