OVH Cloud OVH Cloud

recuperation noms

4 réponses
Avatar
Seng Hua
Bonjou à tous,

J'ai besoin de vos lumières pour terminer 1 macro, en complément d'1 que
j'ai trouvé sur le forum ( il s'agit d'1 code de F.Sigonneau -
Recherche_fichier_sur_disque_. De passage, 1 gd merci à FS. çà fonctionne à
merveille.

Je reviens à mes questions :

1°) Est - il possible avec :
.LookIn de chercher sur plusieurs répertoire , ex : "C:\mes
documents\MesFichiers", "C:\mes documents\Excel" etc...

Est ce que je peut utiliser ChDir "C:\mes Documents\......."

2°) D'après le code de FS, ts les fichiers trouvés sur le disque dur sont
copiés sur 1 feuille. Et de là, je souhaiterais récupérer le nom de
l'utilisateur, nom du fichier et la date de sauvegarde sur 3 colonnes
distincts, disant sur les colonnes
H à J de la même feuille.

exemple : c:\mes documents\excel\aaaaaa_10000_0703.xls ==> nom = aaaaaa ,
nom fichier = 10000, date = 0703

et comparer avec 1 feuille de donnée qui ressemble comme suit :

A B C D E
F G H I
Nom Utilisateur 10000 10001 10002 10003 10004 10005
10006 10007

si sur la feuille d'extraction, il existe le même utilisateur aaaaaa et le
fichier 100000 à 100007, la date de création 0703 ou autres s'affichent ds
les colonnes correspondantes sur la feuille de données.

pr l'extraction, j'ai pensé au =si(gauche(plage de données) ou si(mid(plage
de données) ou si(droite(plage de données), mais c là que je patauge,
puisque les noms des utilisateurs n'ont pas les mêmes nombres de caractères,
ils varient de 4 caractères à plus de 10 et il aura au moins 50
utilisateurs.

Je travaille sur xl 2000 et j'espère que je suis assez clair ds mon
explication.

Merci de vos aides.
@+

Seng

4 réponses

Avatar
Seng Hua
"Seng Hua" a écrit dans le message de
news:3f5048bd$0$20951$
Bonjou à tous,

J'ai besoin de vos lumières pour terminer 1 macro, en complément d'1 que
j'ai trouvé sur le forum ( il s'agit d'1 code de F.Sigonneau -
Recherche_fichier_sur_disque_. De passage, 1 gd merci à FS. çà fonctionne
à

merveille.

Je reviens à mes questions :

1°) Est - il possible avec :
.LookIn de chercher sur plusieurs répertoire , ex : "C:mes
documentsMesFichiers", "C:mes documentsExcel" etc...

Est ce que je peut utiliser ChDir "C:mes Documents......."

2°) D'après le code de FS, ts les fichiers trouvés sur le disque dur sont
copiés sur 1 feuille. Et de là, je souhaiterais récupérer le nom de
l'utilisateur, nom du fichier et la date de sauvegarde sur 3 colonnes
distincts, disant sur les colonnes
H à J de la même feuille.

exemple : c:mes documentsexcelaaaaaa_10000_0703.xls ==> nom = aaaaaa
,

nom fichier = 10000, date = 0703

et comparer avec 1 feuille de donnée qui ressemble comme suit :

A B C D E
F G H I

Nom Utilisateur 10000 10001 10002 10003 10004
10005 10006 10007


si sur la feuille d'extraction, il existe le même utilisateur aaaaaa et le
fichier 100000 à 100007, la date de création 0703 ou autres s'affichent ds
les colonnes correspondantes sur la feuille de données.

pr l'extraction, j'ai pensé au (gauche(plage de données) ou (midb(plage
de données) ou (droite(plage de données), mais c là que je patauge,
puisque les noms des utilisateurs n'ont pas les mêmes nombres de
caractères,

ils varient de 4 caractères à plus de 10 et il aura au moins 50
utilisateurs.

Je travaille sur xl 2000 et j'espère que je suis assez clair ds mon
explication.

Merci de vos aides.
@+

Seng









Avatar
Seng Hua
Merci Frédéric,

j'ai 1 autre question à te poser.

Avec tes macros SaveAsSansMacro et SupCode, est- il possible de sauvegarder
1 fichier xls de type Matrice_aaaaaa.xls
en 2 fichiers comme suit : NomUtil_aaaaaa_0703.xls
et NomUtil_aaaaaa.xls
et ds 2 répertoire différentes.

Merci d'avance.
@+

Seng
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Pour l'extraction des éléments du nom des fichiers, tu peux aussi utiliser
une

petite fonction VBA comme celle-ci :

Function DecoupeNomFich(s)
Dim Fichier, Arr

Fichier = Split(s, "")(UBound(Split(s, "")))
Fichier = Split(Fichier, ".")(0)
Arr = Split(Fichier, "_")
DecoupeNomFich = Arr

End Function

C'est une fonction matricielle.
Si tes noms de fichiers sont en colonne A, sélectionne les cellules B1:D1
et

saisis
ÞcoupeNomFich(A1)
puis valide (Ctrl+Maj+Entrée) et recopie vers le bas autant que
nécessaire.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjou à tous,

J'ai besoin de vos lumières pour terminer 1 macro, en complément d'1 que
j'ai trouvé sur le forum ( il s'agit d'1 code de F.Sigonneau -
Recherche_fichier_sur_disque_. De passage, 1 gd merci à FS. çà
fonctionne à


merveille.

Je reviens à mes questions :

1°) Est - il possible avec :
.LookIn de chercher sur plusieurs répertoire , ex : "C:mes
documentsMesFichiers", "C:mes documentsExcel" etc...

Est ce que je peut utiliser ChDir "C:mes Documents......."

2°) D'après le code de FS, ts les fichiers trouvés sur le disque dur
sont


copiés sur 1 feuille. Et de là, je souhaiterais récupérer le nom de
l'utilisateur, nom du fichier et la date de sauvegarde sur 3 colonnes
distincts, disant sur les colonnes
H à J de la même feuille.

exemple : c:mes documentsexcelaaaaaa_10000_0703.xls ==> nom aaaaaa ,
nom fichier = 10000, date = 0703

et comparer avec 1 feuille de donnée qui ressemble comme suit :

A B C D
E


F G H I
Nom Utilisateur 10000 10001 10002 10003 10004
10005


10006 10007

si sur la feuille d'extraction, il existe le même utilisateur aaaaaa et
le


fichier 100000 à 100007, la date de création 0703 ou autres s'affichent
ds


les colonnes correspondantes sur la feuille de données.

pr l'extraction, j'ai pensé au =si(gauche(plage de données) ou
si(mid(plage


de données) ou si(droite(plage de données), mais c là que je patauge,
puisque les noms des utilisateurs n'ont pas les mêmes nombres de
caractères,


ils varient de 4 caractères à plus de 10 et il aura au moins 50
utilisateurs.

Je travaille sur xl 2000 et j'espère que je suis assez clair ds mon
explication.

Merci de vos aides.
@+

Seng





Avatar
Frédéric Sigonneau
Bonsoir,

Si je comprends bien ta question, tu pourrais y arriver en suivant ces étapes :

- une procédure de ce type dans un module standard du classeur
Matrice-aaaaaa.xls :

Sub DeleteAllVBA(Wbk As Workbook)
'd'après un auteur inconnu, mpep
Dim VBComp As Variant
Dim VBComps As Variant

Set VBComps = Wbk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1 To 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

- toujours dans le même module, une seconde procédure qui s'occupe de
l'enregistrement des copies sous le nom souhaité et dans les répertoires
souhaités, et détruit le code des copies :

Sub testSave()
Dim Fich1$, Fich2$, Classeur As Workbook

Fich1 = "d:fsdataszazazaza1NomUtil_aaaaaa_0703.xls"
'(je te laisse le soin de la méthode pour obtenir le nouveau nom du classeur)
ThisWorkbook.SaveCopyAs Fich1
Set Classeur = Workbooks.Open(Fich1)
DeleteAllVBA Classeur
Classeur.Close True

Fich2 = "d:fsdataszazazaza2NomUtil_aaaaaa.xls"
'(idem)
ThisWorkbook.SaveCopyAs Fich2
Set Classeur = Workbooks.Open(Fich2)
DeleteAllVBA Classeur
Classeur.Close True

End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Merci Frédéric,

j'ai 1 autre question à te poser.

Avec tes macros SaveAsSansMacro et SupCode, est- il possible de sauvegarder
1 fichier xls de type Matrice_aaaaaa.xls
en 2 fichiers comme suit : NomUtil_aaaaaa_0703.xls
et NomUtil_aaaaaa.xls
et ds 2 répertoire différentes.

Merci d'avance.
@+

Seng
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Pour l'extraction des éléments du nom des fichiers, tu peux aussi utiliser
une

petite fonction VBA comme celle-ci :

Function DecoupeNomFich(s)
Dim Fichier, Arr

Fichier = Split(s, "")(UBound(Split(s, "")))
Fichier = Split(Fichier, ".")(0)
Arr = Split(Fichier, "_")
DecoupeNomFich = Arr

End Function

C'est une fonction matricielle.
Si tes noms de fichiers sont en colonne A, sélectionne les cellules B1:D1
et

saisis
ÞcoupeNomFich(A1)
puis valide (Ctrl+Maj+Entrée) et recopie vers le bas autant que
nécessaire.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjou à tous,

J'ai besoin de vos lumières pour terminer 1 macro, en complément d'1 que
j'ai trouvé sur le forum ( il s'agit d'1 code de F.Sigonneau -
Recherche_fichier_sur_disque_. De passage, 1 gd merci à FS. çà
fonctionne à


merveille.

Je reviens à mes questions :

1°) Est - il possible avec :
.LookIn de chercher sur plusieurs répertoire , ex : "C:mes
documentsMesFichiers", "C:mes documentsExcel" etc...

Est ce que je peut utiliser ChDir "C:mes Documents......."

2°) D'après le code de FS, ts les fichiers trouvés sur le disque dur
sont


copiés sur 1 feuille. Et de là, je souhaiterais récupérer le nom de
l'utilisateur, nom du fichier et la date de sauvegarde sur 3 colonnes
distincts, disant sur les colonnes
H à J de la même feuille.

exemple : c:mes documentsexcelaaaaaa_10000_0703.xls ==> nom > aaaaaa ,
nom fichier = 10000, date = 0703

et comparer avec 1 feuille de donnée qui ressemble comme suit :

A B C D
E


F G H I
Nom Utilisateur 10000 10001 10002 10003 10004
10005


10006 10007

si sur la feuille d'extraction, il existe le même utilisateur aaaaaa et
le


fichier 100000 à 100007, la date de création 0703 ou autres s'affichent
ds


les colonnes correspondantes sur la feuille de données.

pr l'extraction, j'ai pensé au =si(gauche(plage de données) ou
si(mid(plage


de données) ou si(droite(plage de données), mais c là que je patauge,
puisque les noms des utilisateurs n'ont pas les mêmes nombres de
caractères,


ils varient de 4 caractères à plus de 10 et il aura au moins 50
utilisateurs.

Je travaille sur xl 2000 et j'espère que je suis assez clair ds mon
explication.

Merci de vos aides.
@+

Seng







Avatar
Seng Hua
Bonsoir Fréderic.

Merci de ta réponse, Je vais testé demain.

@+

Seng
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Si je comprends bien ta question, tu pourrais y arriver en suivant ces
étapes :


- une procédure de ce type dans un module standard du classeur
Matrice-aaaaaa.xls :

Sub DeleteAllVBA(Wbk As Workbook)
'd'après un auteur inconnu, mpep
Dim VBComp As Variant
Dim VBComps As Variant

Set VBComps = Wbk.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1 To 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

- toujours dans le même module, une seconde procédure qui s'occupe de
l'enregistrement des copies sous le nom souhaité et dans les répertoires
souhaités, et détruit le code des copies :

Sub testSave()
Dim Fich1$, Fich2$, Classeur As Workbook

Fich1 = "d:fsdataszazazaza1NomUtil_aaaaaa_0703.xls"
'(je te laisse le soin de la méthode pour obtenir le nouveau nom du
classeur)

ThisWorkbook.SaveCopyAs Fich1
Set Classeur = Workbooks.Open(Fich1)
DeleteAllVBA Classeur
Classeur.Close True

Fich2 = "d:fsdataszazazaza2NomUtil_aaaaaa.xls"
'(idem)
ThisWorkbook.SaveCopyAs Fich2
Set Classeur = Workbooks.Open(Fich2)
DeleteAllVBA Classeur
Classeur.Close True

End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Merci Frédéric,

j'ai 1 autre question à te poser.

Avec tes macros SaveAsSansMacro et SupCode, est- il possible de
sauvegarder


1 fichier xls de type Matrice_aaaaaa.xls
en 2 fichiers comme suit : NomUtil_aaaaaa_0703.xls
et NomUtil_aaaaaa.xls
et ds 2 répertoire différentes.

Merci d'avance.
@+

Seng
"Frédéric Sigonneau" a écrit dans le
message


de news:
Bonsoir,

Pour l'extraction des éléments du nom des fichiers, tu peux aussi
utiliser



une
petite fonction VBA comme celle-ci :

Function DecoupeNomFich(s)
Dim Fichier, Arr

Fichier = Split(s, "")(UBound(Split(s, "")))
Fichier = Split(Fichier, ".")(0)
Arr = Split(Fichier, "_")
DecoupeNomFich = Arr

End Function

C'est une fonction matricielle.
Si tes noms de fichiers sont en colonne A, sélectionne les cellules
B1:D1



et
saisis
ÞcoupeNomFich(A1)
puis valide (Ctrl+Maj+Entrée) et recopie vers le bas autant que
nécessaire.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjou à tous,

J'ai besoin de vos lumières pour terminer 1 macro, en complément d'1
que




j'ai trouvé sur le forum ( il s'agit d'1 code de F.Sigonneau -
Recherche_fichier_sur_disque_. De passage, 1 gd merci à FS. çà
fonctionne à


merveille.

Je reviens à mes questions :

1°) Est - il possible avec :
.LookIn de chercher sur plusieurs répertoire , ex : "C:mes
documentsMesFichiers", "C:mes documentsExcel" etc...

Est ce que je peut utiliser ChDir "C:mes Documents......."

2°) D'après le code de FS, ts les fichiers trouvés sur le disque dur
sont


copiés sur 1 feuille. Et de là, je souhaiterais récupérer le nom de
l'utilisateur, nom du fichier et la date de sauvegarde sur 3
colonnes




distincts, disant sur les colonnes
H à J de la même feuille.

exemple : c:mes documentsexcelaaaaaa_10000_0703.xls ==> nom > > aaaaaa ,
nom fichier = 10000, date = 0703

et comparer avec 1 feuille de donnée qui ressemble comme suit :

A B C D
E


F G H I
Nom Utilisateur 10000 10001 10002 10003 10004
10005


10006 10007

si sur la feuille d'extraction, il existe le même utilisateur aaaaaa
et




le
fichier 100000 à 100007, la date de création 0703 ou autres
s'affichent




ds
les colonnes correspondantes sur la feuille de données.

pr l'extraction, j'ai pensé au =si(gauche(plage de données) ou
si(mid(plage


de données) ou si(droite(plage de données), mais c là que je
patauge,




puisque les noms des utilisateurs n'ont pas les mêmes nombres de
caractères,


ils varient de 4 caractères à plus de 10 et il aura au moins 50
utilisateurs.

Je travaille sur xl 2000 et j'espère que je suis assez clair ds mon
explication.

Merci de vos aides.
@+

Seng