bonjour =E0 tous et encore bravo pour votre boulot!
j'ai un petit probl=E8me que je n'arrive pas =E0 r=E9soudre =E0 vous
exposer :
=E0 partir d'un xlt, je sauve par macro des fichiers xls dans un
repertoire. ceux-ci sont automatiquement incr=E9ment=E9s (incr=E9mentation
+1 ex : fcb-ims231.xls) =E0 partir d'un fichier xls (recapinfo.xls) qui
s'ouvre =E0 l'ouverture du xlt et qui permet =E0 l'utilisateur via un
unserform sur le xlt de modifier le num=E9ro d'enregistrement.
seulement voil=E0 : ce principe marche mais ne garantie pas
l'=E9crasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce m=EAme fichier recapinfo, je puisse
r=E9ccup=E9rer et extraire le nom de chaques fichiers contenus dans le
repertoire (lui aussi laisser au choix de l'utilisateur =E0 partir d'un
userform), =E7a c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-=EAtre
inf=E9rieur =E0 100 comme sup=E9rieur =E0 1000, trier la liste pour
extraire (par ex) les num=E9ros par fonction (vba ou formule) style
droite(.....) ne me convient pas vraiment (vu que j'aimerai r=E9ccuperer
=E0 coup sur le num=E9ro et que lui pour l'inserer dans ma macro de
sauvegarde incr=E9ment=E9e +1
existe-t-il un moyen de lister les noms des fichiers pr=E9sents dans un
dossier pour n'en retirer que le num=E9ro (soit que les chiffres) afin
de r=E9ccup=E9rer dans mon userform et ma macro le chiffre le plus grand
pour v=E9rif???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
une solution possible consisterait à écrire tes fichiers sous la forme p.e toto_1.xls ou toto 1.xls, en fait toujours avec quelque chose entre toto et 1.xls. En effet, une fois ceci fait , on peut utiliser la fonction split (si tu as Excel 2000 ou +) en association avec la méthode getbasename de l'objet Filesystemobject.
Exemple: tu as un fichier toto_1.xls dans un répertoire qui s'appelle C:TATA
si tu écris Set fso = CreateObject("Scripting.FileSystemObject")
With fso numincrement = Split(.GetBaseName("C:TATAtoto_1.xls"), "_")(UBound(Split(.GetBaseName("C:TATAtoto_1.xls"), "_"))) MsgBox numincrement End With
numincrement est alors égal au chiffre situé après le dernier caractère "_" de la chaine textuelle renvoyée par fso.getbasename (ici le chiffre 1) et correspondant au nom du fichier sans path et sans extension.
Dans ces conditions, il est bien sur aisé de déterminer quel sera le prochain nom du fichier.
Bien sur dans la réalité, il faut parcourir l'intégralité des fichiers d'un répertoire donné ( grace à .FoundFiles.Count de filesearch p.e)et ne s'interesser qu'aux fichiers dont le nom avant le caractère "_" est égal à "C:TATAnomracinedufichier" ce que l'on peut faire facilement grace à if left(fileserach.FoundFiles(i),26)="C:TATAnomracinedufichier" dans cet exemple puis passer le nom complet du fichier à la procédure décrite plus haut et enfin faire un test pour vérifier au cours de la boucle de parcours des fichiers que le numincrement est bien numérique et qu'on garde bien le numincrement le + grand.
A+
bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un repertoire. ceux-ci sont automatiquement incrémentés (incrémentation +1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse réccupérer et extraire le nom de chaques fichiers contenus dans le repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être inférieur à 100 comme supérieur à 1000, trier la liste pour extraire (par ex) les numéros par fonction (vba ou formule) style droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer à coup sur le numéro et que lui pour l'inserer dans ma macro de sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un dossier pour n'en retirer que le numéro (soit que les chiffres) afin de réccupérer dans mon userform et ma macro le chiffre le plus grand pour vérif???
Si quelqu'un peut m'aider, merci d'avance.
bonjour,
une solution possible consisterait à écrire tes fichiers sous la forme
p.e toto_1.xls ou toto 1.xls, en fait toujours avec quelque chose entre
toto et 1.xls.
En effet, une fois ceci fait , on peut utiliser la fonction split (si tu
as Excel 2000 ou +) en association avec la méthode getbasename de
l'objet Filesystemobject.
Exemple: tu as un fichier toto_1.xls dans un répertoire qui s'appelle
C:TATA
si tu écris
Set fso = CreateObject("Scripting.FileSystemObject")
With fso
numincrement = Split(.GetBaseName("C:TATAtoto_1.xls"),
"_")(UBound(Split(.GetBaseName("C:TATAtoto_1.xls"), "_")))
MsgBox numincrement
End With
numincrement est alors égal au chiffre situé après le dernier caractère
"_" de la chaine textuelle renvoyée par fso.getbasename (ici le chiffre
1) et correspondant au nom du fichier sans path et sans extension.
Dans ces conditions, il est bien sur aisé de déterminer quel sera le
prochain nom du fichier.
Bien sur dans la réalité, il faut parcourir l'intégralité des fichiers
d'un répertoire donné ( grace à .FoundFiles.Count de filesearch p.e)et
ne s'interesser qu'aux fichiers dont le nom avant le caractère "_" est
égal à "C:TATAnomracinedufichier" ce que l'on peut faire facilement
grace à if
left(fileserach.FoundFiles(i),26)="C:TATAnomracinedufichier" dans cet
exemple puis passer le nom complet du fichier à la procédure décrite
plus haut et enfin faire un test pour vérifier au cours de la boucle de
parcours des fichiers que le numincrement est bien numérique et qu'on
garde bien le numincrement le + grand.
A+
bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous
exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un
repertoire. ceux-ci sont automatiquement incrémentés (incrémentation
+1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui
s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un
unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas
l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse
réccupérer et extraire le nom de chaques fichiers contenus dans le
repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un
userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être
inférieur à 100 comme supérieur à 1000, trier la liste pour
extraire (par ex) les numéros par fonction (vba ou formule) style
droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer
à coup sur le numéro et que lui pour l'inserer dans ma macro de
sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un
dossier pour n'en retirer que le numéro (soit que les chiffres) afin
de réccupérer dans mon userform et ma macro le chiffre le plus grand
pour vérif???
une solution possible consisterait à écrire tes fichiers sous la forme p.e toto_1.xls ou toto 1.xls, en fait toujours avec quelque chose entre toto et 1.xls. En effet, une fois ceci fait , on peut utiliser la fonction split (si tu as Excel 2000 ou +) en association avec la méthode getbasename de l'objet Filesystemobject.
Exemple: tu as un fichier toto_1.xls dans un répertoire qui s'appelle C:TATA
si tu écris Set fso = CreateObject("Scripting.FileSystemObject")
With fso numincrement = Split(.GetBaseName("C:TATAtoto_1.xls"), "_")(UBound(Split(.GetBaseName("C:TATAtoto_1.xls"), "_"))) MsgBox numincrement End With
numincrement est alors égal au chiffre situé après le dernier caractère "_" de la chaine textuelle renvoyée par fso.getbasename (ici le chiffre 1) et correspondant au nom du fichier sans path et sans extension.
Dans ces conditions, il est bien sur aisé de déterminer quel sera le prochain nom du fichier.
Bien sur dans la réalité, il faut parcourir l'intégralité des fichiers d'un répertoire donné ( grace à .FoundFiles.Count de filesearch p.e)et ne s'interesser qu'aux fichiers dont le nom avant le caractère "_" est égal à "C:TATAnomracinedufichier" ce que l'on peut faire facilement grace à if left(fileserach.FoundFiles(i),26)="C:TATAnomracinedufichier" dans cet exemple puis passer le nom complet du fichier à la procédure décrite plus haut et enfin faire un test pour vérifier au cours de la boucle de parcours des fichiers que le numincrement est bien numérique et qu'on garde bien le numincrement le + grand.
A+
bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un repertoire. ceux-ci sont automatiquement incrémentés (incrémentation +1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse réccupérer et extraire le nom de chaques fichiers contenus dans le repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être inférieur à 100 comme supérieur à 1000, trier la liste pour extraire (par ex) les numéros par fonction (vba ou formule) style droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer à coup sur le numéro et que lui pour l'inserer dans ma macro de sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un dossier pour n'en retirer que le numéro (soit que les chiffres) afin de réccupérer dans mon userform et ma macro le chiffre le plus grand pour vérif???
Si quelqu'un peut m'aider, merci d'avance.
ClémentMarcotte
Bonjour,
Un coup d'expressions régulières:
http://cjoint.com/?gibor5mRNm
"cricri" a écrit dans le message de news: bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un repertoire. ceux-ci sont automatiquement incrémentés (incrémentation +1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse réccupérer et extraire le nom de chaques fichiers contenus dans le repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être inférieur à 100 comme supérieur à 1000, trier la liste pour extraire (par ex) les numéros par fonction (vba ou formule) style droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer à coup sur le numéro et que lui pour l'inserer dans ma macro de sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un dossier pour n'en retirer que le numéro (soit que les chiffres) afin de réccupérer dans mon userform et ma macro le chiffre le plus grand pour vérif???
Si quelqu'un peut m'aider, merci d'avance.
Bonjour,
Un coup d'expressions régulières:
http://cjoint.com/?gibor5mRNm
"cricri" <goodwave@boursorama.com> a écrit dans le message de
news:1118146683.883108.58710@g47g2000cwa.googlegroups.com...
bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous
exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un
repertoire. ceux-ci sont automatiquement incrémentés (incrémentation
+1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui
s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un
unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas
l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse
réccupérer et extraire le nom de chaques fichiers contenus dans le
repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un
userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être
inférieur à 100 comme supérieur à 1000, trier la liste pour
extraire (par ex) les numéros par fonction (vba ou formule) style
droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer
à coup sur le numéro et que lui pour l'inserer dans ma macro de
sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un
dossier pour n'en retirer que le numéro (soit que les chiffres) afin
de réccupérer dans mon userform et ma macro le chiffre le plus grand
pour vérif???
"cricri" a écrit dans le message de news: bonjour à tous et encore bravo pour votre boulot!
j'ai un petit problème que je n'arrive pas à résoudre à vous exposer :
à partir d'un xlt, je sauve par macro des fichiers xls dans un repertoire. ceux-ci sont automatiquement incrémentés (incrémentation +1 ex : fcb-ims231.xls) à partir d'un fichier xls (recapinfo.xls) qui s'ouvre à l'ouverture du xlt et qui permet à l'utilisateur via un unserform sur le xlt de modifier le numéro d'enregistrement.
seulement voilà : ce principe marche mais ne garantie pas l'écrasement accidentelle de fichiers.
j'aimerai faire en sorte que dans ce même fichier recapinfo, je puisse réccupérer et extraire le nom de chaques fichiers contenus dans le repertoire (lui aussi laisser au choix de l'utilisateur à partir d'un userform), ça c'est bon.
Mais comme le nom peut changer et le nombre de fichiers peut-être inférieur à 100 comme supérieur à 1000, trier la liste pour extraire (par ex) les numéros par fonction (vba ou formule) style droite(.....) ne me convient pas vraiment (vu que j'aimerai réccuperer à coup sur le numéro et que lui pour l'inserer dans ma macro de sauvegarde incrémentée +1
existe-t-il un moyen de lister les noms des fichiers présents dans un dossier pour n'en retirer que le numéro (soit que les chiffres) afin de réccupérer dans mon userform et ma macro le chiffre le plus grand pour vérif???
Si quelqu'un peut m'aider, merci d'avance.
cricri
PS : encore merci à clément et anonymous. aaahhh sans vous, beaucoup d'aspirine en plus!!!! le classeur est parfait, exactement ce je voulais.
PS : encore merci à clément et anonymous. aaahhh sans vous, beaucoup
d'aspirine en plus!!!!
le classeur est parfait, exactement ce je voulais.