ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Gaby71

XLDnaute Junior
Bonjour,

Depuis un fichier Excel (liste de toutes machines vendues) muni d’un bouton, faire une macro pour afficher le fichier Excel propre à la machine demandée.
Procedure :
Sur le fichier « liste », choisir cellule ( contenant le N° de machine)
Faire un copier
Utiliser le navigateur windows pour accéder au répertoire contenant le fichier excel de la machine
Utiliser la case « rechercher » , Taper « * », coller et Taper « * ».
L’adresse du fichier demandé apparait
Fin de macro
Ouvrir ce fichier

Exemple :
je suis sur mon fichier "liste de machines"qui est en : N:\Diffusion\BE_vibrants\_Spécifs
je selectionne la cellule contenant le texte "50260215"
Je veux aller chercher et ouvrir le fichier excel :1845_4M_50260215Sogea_Satom_Congo.xls
qui est dans le repertoire N:\Diffusion\BE_vibrants\_Spécifs\Complètes\CVB-MV\CVB1845_MV

Merci d’avance
 

Gaby71

XLDnaute Junior

mutzik

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

bonjour,

je pense qu'il te faut absolument une correspondance dans une colonne entre le nom (ou numéro) de ta machine et la repertoire et le nom du fichier à ouvrir
c'est à mon sens le plus pratique, rapide, et qui évite d'ouvrir un mauvais fichier

mais comme d'hab, sans fichier exemple ...
 

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Merci pour la reponse

je joints mon fichier de travail à partir de laquel je lance la macro.

Donc je selectionne une cellule dans la colonne " Machine number" dans le fichier " recherche_machines_par_criteres........"
je lance la macro

pour acceder au repertoire où se trouve le fichier excel unique
 

Fichiers joints

Dernière édition:

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Bonjour à tous,
Ai-je demandé l'impossible ou me suis-je trop mal exprimé.

Ma feuille excel dont une colonne represente les numeros de serie de machine;
En se positionnant sur une cellule de cette colonne puis en lancant la future macro (le bouton est fait ... mais rien derriere),je veux ouvrir le tableau Excel propre à la machine demandée ( comme montré dans le document joint plus haut - afacDoc2.docx)
je joins egalement mon fichier de base tronqué car l'original à trop de ligne pour être transferé.

mon idée au départ était d'enregistrer une macro par actions successives : se positionner sur la cellule (numero de machine) de mon fichier recapitulatif des machines vendues, faire copy, avec le naviguateur windows , aller dans un repertoire (toutes les machines) composé de sous repertoires (par type de machines puis de tailles de machines) , faire une recherche en tapant " * " coller mon numero de machine et retaper " * " car le nom du fichier unique est composé comme ceci :
TS4.3_50640103_Benito_Arno.xls (type de machine ,numero de serie unique et client)
Mais l'enregistrement de la macro ne prend pas toutes ces actions.

Merci d'avance
 

Fichiers joints

Dernière édition:

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Bonjour à tous,
Je reviens sur mon problème
Ouvrir une feuille de calcul qui est le descriptif d'une machine à partir d'un fichier excel récapitulatif ( fichier joint).
Colonne E : toutes les machines répertoriées .
Donc se positionner sur une cellule par exemple "E26" dont la valeur est « 50260160 » et cliquer sur le bouton " Go to specification"
La macro doit aller, pour ouvrir le fichier unique dans le répertoire "N:\Diffusion\BE_vibrants\_Spécifs\Complètes" en sachant que sous le répertoire « Complètes , il y a plusieurs niveaux de sous-répertoires qui correspondent à des familles de machines et en dessous des tailles de machines .
Par exemple : « E26 » doit ouvrir le fichier " 1845_4_50260110_MMAutriche_Jelen_do.xls " qui est dans le repertoire " N:\Diffusion\BE_vibrants\_Spécifs\Complètes\CVB-MV\CVB1845" .
Dans cette exemple , le numéro de machine «50260110 » commence au 8éme caractère . Pour d’autre comme celui-ci (ES202_50850001_Gumustas_Madencilik.xlsx) c’est au 6éme.
Merci d’avance pour votre aide .

PS : Voir fichier attaché le 04/06/14
 

camarchepas

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

bonjour ,

Voici un début de solution , par contre je ne vois pas comment trouver la partie "CVB-MV"

pour cet exemple mis en dur , mais il doit bien y avoir une table ou une info à décoder quelque part , non ?

Code:
Sub Chercher_specif()
'Recherche fiche machine
'Par exemple : « E26 » doit ouvrir le fichier " 1845_4_50260110_MMAutriche_Jelen_do.xls "
'qui est dans le repertoire " N:\Diffusion\BE_vibrants\_Spécifs\Complètes\CVB-MV\CVB1845" .
'en colonne F : CVB1845-3

Dim Machine As String
Dim Fichier As String, Chemin As String, Complément_Chemin As String
Machine = ActiveCell
Chemin = "N:\Diffusion\BE_vibrants\_Spécifs\Complètes\" & "CVB-MV\"
Complément_Chemin = Split(Range("F" & ActiveCell.Row), "-")(0)


ficher = Dir(Chemin & Complément_Chemin & "\*" & activevecell & ".xls")
End Sub
 

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Merci pour la reponse
Voici quelques exemples de fichiers codifiés:
-DF2012P_50710084_Comilog.xlsx dans sous-repertoire DF2012 lui-même sous DF
-TS4.3_50640112_Dompierre_Eurovia.xls dans sous-repertoire TS4.3 lui-même sous TS
et ceci pour plus de 100 machines , tailles et types confondus
Le nombre de 8 chiffres est le numero de serie donc unique
j'espere poserle probleme correctement

@+

Et merci d'avance
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Oups , Les exemples doivent être dans un fichiers qui n'est pas passé ....
 

francedemo

XLDnaute Occasionnel
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

bonjour à tous,
j'ai fait quelque chose d'approchant en ajoutant simplement un lien hypertext dans la cellule.
à partir du fichier liste, il suffit de cliquer dessus pour ouvrir la bonne fiche
ça demande un peu de traitement pour créer le lien du fichier selon le répertoire mais ça marche bien
si besoin, je peux mettre le code utilisé
cordialement
 

camarchepas

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Bonjour Auxerre (France démo) ,

Bon si je comprends bien le répertoire intermédiaire se nomme par les 2 premières lettres du dossier final.

Aprés si l'on a la bonne formule , la quantité n'a pas d'importance sur le sujet ( Sauf si tu utilises la solution de France Démos , trés efficace , mais un peu lourde à mettre en place )

bon si l'on code ça cela donnerait donc :

Code:
Sub Chercher_specif()
 'Recherche fiche machine
 'Par exemple : « E26 » doit ouvrir le fichier " 1845_4_50260110_MMAutriche_Jelen_do.xls "
 'qui est dans le repertoire " N:\Diffusion\BE_vibrants\_Spécifs\Complètes\CVB-MV\CVB1845" .
 'en colonne F : CVB1845-3
 
Dim Machine As String, Chemin_total as string 
Dim Fichier As String, Chemin As String, Complément_Chemin As String
  Machine = ActiveCell
  Chemin = "N:\Diffusion\BE_vibrants\_Spécifs\Complètes\"
  Complément_Chemin = Split(Range("F" & ActiveCell.Row), "-")(0)
  chemin_total=  Chemin & left(complément_chemin,2) & Complément_Chemin & "\" & "\
  fichier = Dir(chemin_total & "*_" & machine & "_*.xls")
  workbooks.open filename:= chemin_total & fichier
 End Sub
 

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Les 2 exemples donnés sont des exemples de codifications pour dire que l'on ne peut pas dire que le numero de serie en 8 chiffres ne commence pas toujours à la même position par rapport à la gauche.
le fichier recapitulatif avec sa macro a été mis en piece attachée le 03/06/14
Cette macro sert pour ouvrir le fichier dans un sous-sous-repertoire dans le repertoire N:\Diffusion\BE_vibrants\_Spécifs\Complètes
 

camarchepas

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

Ok ,
Mais que donne le code que je t'ai proposé .
tu fais une fixation sur la place du numéro de série , mais en fait avec les caractéres génériques , dès l'instant ou ce numéro sera dans le nom on le prnd en compte , donc pas de problème sur le sujet ?
 

francedemo

XLDnaute Occasionnel
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

re à tous,
dans la macro de CaMarchePas, à la place de "WorksBook.Open" il suffit de remplacer par un lien hypertext:
Cel.Hyperlinks.Add _
anchor:=Cel, _
Address:=Fich
en fait, le plus "compliqué" c'est de définir correctement le nom du fichier à ouvrir et son emplacement
pour ça, il faut connaitre l'arborescence de ton répertoire et savoir comment sont placés les fichiers
après triturer le nom de fichier et récupérer les bonnes infos, ça doit pouvoir se faire par VBA
l'idéal est de bien définir la construction de tes nom de fichiers, du style:
"code machine" & "_" & "numéro d'ordre machine" & "_" & "vendeur" & ".xls"
et pour les répertoires:
"N:\Diffusion\BE_vibrants\_Spécifs\Complètes" & "\code machine\"
...
et pour l'utiliser presque tous les jours, le lien hypertext dans le fichier, j'avoue que c'est sympa ...
 

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

pour une premiere étape , à l'instant , j'ai mis le chemin complet mais ça coince

Sub Chercher_specif()
'
Dim Machine As String, Chemin_total As String
Dim Fichier As String, Chemin As String
Machine = ActiveCell
Chemin = "N:\Diffusion\BE_vibrants\_Spécifs\Complètes\CVB-MV\CVB1845_MV"
Fichier = Dir(Chemin & "*_*.xls")
Workbooks.Open Filename:=Chemin
End Sub


ensuite il faudra faire pour que l'on cherche à partir du repertoire "complete"
 

francedemo

XLDnaute Occasionnel
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

et
Workbooks.Open Filename:=Chemin&fichier

ta commande ouvrira le premier fichier trouvé qui correspond à "Dir"
 

camarchepas

XLDnaute Barbatruc
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

ça coince ne veux rien dire en informatique ,
un message d'erreur , une ligne surlignée en jaune .
Ce que ça fait et ou ça s'arrête , ce que ça produit ou pas ,

J'ai l'impression qu'il faut te tirer pour avancer ,

Pour complete ba , il suffit de remplacer dans la définition de la variable .

VBA est trés puissant ,


Le bout de macro que tu as recopié n'est pas conforme à ce que je t'ai proposé .

ce code : Fichier = Dir(Chemin & "*_*.xls") ne te remenera jamais un fichier avec le bon numéro de série .
 

Gaby71

XLDnaute Junior
Re : ouvrir un fichier EXCEL dont le nom contient le texte de la cellule

merci à tous
je ne veux pas pas faire de lien hypertext pour 2 raisons:
-le fichier repertoire a 4000 lignes actuellement
-pour une raison ou pour une autre le service informatique peut changer le nom du disque ou une autre repartition des repertoire

je n'ai pas pu faire ceci en faisant enregistrer macro
pourtant manuellement c'est simple: se positionner sur repertoire "completes" et en recherche entre 2 etoiles le numero de serie
(*50260450*)
Mais voilà pour le cde VBA je sens bien que c'est compliqué
@+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas