Problème lister les fichiers pour numérotation suivante
Résolu
hellomargo
Messages postés
52
Statut
Membre
-
hellomargo Messages postés 52 Statut Membre -
hellomargo Messages postés 52 Statut Membre -
Bonjour la communauté,
j'utilise un code qui me permet de me donner le numéro de la prochaine facture
exemple: dernière facture 000092 donc dans la cellule C3 de ma feuille 000093, là pas de p
mais je suis à la facture 100 soit 000100 et là le code ne marche plus
en revanche si je remplace 000100 par 0000100 ( soit un zéro de plus) j'ai bien en C3 0000101
alors que je souhaite 000101
une idée, merci a vous
le code en question
j'utilise un code qui me permet de me donner le numéro de la prochaine facture
exemple: dernière facture 000092 donc dans la cellule C3 de ma feuille 000093, là pas de p
mais je suis à la facture 100 soit 000100 et là le code ne marche plus
en revanche si je remplace 000100 par 0000100 ( soit un zéro de plus) j'ai bien en C3 0000101
alors que je souhaite 000101
une idée, merci a vous
le code en question
Sub listerLesFichiers()
Dim chemin As String
Dim nb As Integer
nb = 0
' On a besoin du chemin absolu du dossier
' Doit se terminer par \
chemin = "C:\Users\moi\Documents\factures\"
' La fonction Dir(chemin, mode) permet de parcourir un dossier
' Ici je rajoute à mon chemin "*.pdf",
' pour ne retrouver que mes fichiers PDF
' vbNormal permet de ne récupérer que des fichiers,
' vbDirectory récupère tout (dossiers et fichiers)
monFichier = Dir(chemin & "*.pdf", vbNormal)
' monFichier n'a récupéré que le premier élément trouvé
' j'ai donc besoin d'un boucle pour les retrouver un à un
Do While monFichier <> ""
extraireValeursNumeriques_DansChaine
If nb < facture Then ' le plus grand nombre
nb = facture
End If
' Permet de passer au fichier suivant
monFichier = Dir
Loop
Sheets("renseignement client").Range("C23").Value = nb + 1
Sheets("renseignement client").Range("C23").NumberFormat = "000000"
End Sub
Sub extraireValeursNumeriques_DansChaine()
Dim i As Byte, nb As Byte
Dim Cible As String, Resultat As String
Dim nombre As Double
Cible = monFichier
'Pour que fonction Val puisse reconnaitre les décimales: Remplacement des
'virgules par des points
Cible = Replace(Cible, ",", ".")
'Pour gérer deux nombres qui se suivent: remplacement des espaces
'par un caractère Alpha
Cible = Replace(Cible, " ", "x")
For i = 1 To Len(Cible)
If IsNumeric(Mid(Cible, i, 1)) Then
nombre = Val(Mid(Cible, i, Len(Cible) - i + 1))
nb = nb + 1
Resultat = nombre
i = i + Len(Str(nombre)) - 1
End If
Next
facture = Resultat
End Sub
Configuration: Windows / Chrome 94.0.4606.81
A voir également:
- Problème lister les fichiers pour numérotation suivante
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Supprimer les fichiers temporaires - Guide
6 réponses
bonjour yg-be,
mea culpa je voulais dire C23
pas de p pour moi c "c'est" français, certes familier mais Français.
En ce qui concerne le code, il marchait jusqu'à 100.
Le code cherche le dernier numéro de facture et ajoute 1 ce qui me donne le numéro de la dernière facture.
Pour 99 la facture est nommée 000099
Jusque là tout va bien, mais pour la 100 je devrais avoir 000100 mais la le code ne marche plus
j'espère être clair mais c'est difficile a expliquer...
mea culpa je voulais dire C23
pas de p pour moi c "c'est" français, certes familier mais Français.
En ce qui concerne le code, il marchait jusqu'à 100.
Le code cherche le dernier numéro de facture et ajoute 1 ce qui me donne le numéro de la dernière facture.
Pour 99 la facture est nommée 000099
Jusque là tout va bien, mais pour la 100 je devrais avoir 000100 mais la le code ne marche plus
j'espère être clair mais c'est difficile a expliquer...
que signifie "pas de p"? "p" est-il un mot français?
"le code cherche le dernier numéro de facture". Comme ton code ne fonctionne pas, explique-nous où se trouve ce dernier numéro de facture.
où se trouve la déclaration de
si tu executes ton code en pas à pas, où diverge-t-il du résultat attendu?
"le code cherche le dernier numéro de facture". Comme ton code ne fonctionne pas, explique-nous où se trouve ce dernier numéro de facture.
où se trouve la déclaration de
facture? as-tu bien
option expliciten début de module?
si tu executes ton code en pas à pas, où diverge-t-il du résultat attendu?
re,
le code est dans une macro
ensuite dans la feuille thisworkbook j'ai "listerLesFichiers"
le code marche très bien sauf que pour la facture 100 dans le dossier facture est nommée 0000100,
je souhaiterais qu'il ce nomme 000100 soit un zéro de moins
mais le faite de mettre un zéro de moins le code ne fonctionne plus
C23 ne prend en compte que la numérotation avec quatre zéro
Sinon facture est le nom du fichier ou sont stocké les factures en PDF
le code est dans une macro
ensuite dans la feuille thisworkbook j'ai "listerLesFichiers"
le code marche très bien sauf que pour la facture 100 dans le dossier facture est nommée 0000100,
je souhaiterais qu'il ce nomme 000100 soit un zéro de moins
mais le faite de mettre un zéro de moins le code ne fonctionne plus
C23 ne prend en compte que la numérotation avec quatre zéro
Sinon facture est le nom du fichier ou sont stocké les factures en PDF
bonjour a tous, bonjour yg_be
le plus simple et plus compréhensible le fichier en pièce jointe:
https://www.transfernow.net/en/dltransfer?utm_source=20211025eUVzT65F
le plus simple et plus compréhensible le fichier en pièce jointe:
https://www.transfernow.net/en/dltransfer?utm_source=20211025eUVzT65F
suggestion:
Option Explicit Sub listerLesFichiers() Dim chemin As String Dim nb As Long, facture As Long, monFichier As String, NomFichier As String nb = 0 ' On a besoin du chemin absolu du dossier ' Doit se terminer par \ chemin = ThisWorkbook.Path + "\" ' La fonction Dir(chemin, mode) permet de parcourir un dossier ' Ici je rajoute à mon chemin "*.pdf", ' pour ne retrouver que mes fichiers PDF ' vbNormal permet de ne récupérer que des fichiers, ' vbDirectory récupère tout (dossiers et fichiers) monFichier = Dir(chemin & "*.pdf", vbNormal) ' monFichier n'a récupéré que le premier élément trouvé ' j'ai donc besoin d'un boucle pour les retrouver un à un Do While monFichier <> "" NomFichier = Left(monFichier, InStr(monFichier, ".") - 1) facture = Val(NomFichier) If nb < facture Then ' le plus grand nombre nb = facture End If ' Permet de passer au fichier suivant monFichier = Dir Loop Sheets("TEST").Range("A1").Value = nb + 1 Sheets("TEST").Range("A1").NumberFormat = "000000" End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour a tous, bonjour yg_be
le souci c'est que les factures ce nomment:
"facture 000101 solde travaux madame dupont paris"
et non 000101
Désolé j'avais oublié ce détail...
le souci c'est que les factures ce nomment:
"facture 000101 solde travaux madame dupont paris"
et non 000101
Désolé j'avais oublié ce détail...
Option Explicit Sub listerLesFichiers() Dim chemin As String Dim nb As Long, facture As Long, monFichier As String, NomFichier As String, morc nb = 0 ' On a besoin du chemin absolu du dossier ' Doit se terminer par \ chemin = ThisWorkbook.Path + "\" ' La fonction Dir(chemin, mode) permet de parcourir un dossier ' Ici je rajoute à mon chemin "*.pdf", ' pour ne retrouver que mes fichiers PDF ' vbNormal permet de ne récupérer que des fichiers, ' vbDirectory récupère tout (dossiers et fichiers) monFichier = Dir(chemin & "*.pdf", vbNormal) ' monFichier n'a récupéré que le premier élément trouvé ' j'ai donc besoin d'un boucle pour les retrouver un à un Do While monFichier <> "" NomFichier = Left(monFichier, InStr(monFichier, ".") - 1) For Each morc In Split(NomFichier, " ") facture = Val(morc) If nb < facture Then ' le plus grand nombre nb = facture End If Next morc ' Permet de passer au fichier suivant monFichier = Dir Loop Sheets("TEST").Range("A1").Value = nb + 1 Sheets("TEST").Range("A1").NumberFormat = "000000" End Sub
"pas de p": quelle langue utilises-tu?
tu nous montres un code qui me semble mal écrit, et tu nous expliques qu'il ne fonctionne pas.
tu ne nous expliques pas ce que le code devrait faire: penses-tu que nous pouvons le deviner?