Recomposition d'un texte si non présent

Résolu/Fermé
Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015 - 25 nov. 2015 à 22:48
Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015 - 4 déc. 2015 à 09:57
Bonjour,

La formule que j'aimerais utiliser pour reconstituer certains chemins d'accès dans une liste ne fonctionne uniquement si valeur Vrai autrement cela m'affiche #VALEUR!, je n'arrive pas a comprendre pourquoi, pouvez-vous m'aider ?

C2 : D:\AJOURDAN\Mes Documents\ECOTEC 3eme ANNEE\PROJET D'ENTREPRISE\VBA FM\Devis
A15 : SLB_devis 005 ind A_ Retrait des surfaces repérées plombées dans le rapport TOUSDIAG y compris décalage délai.xls

=SI(GAUCHE($C$2;CHERCHE(":\";$C$2)+1)=GAUCHE($A15;CHERCHE(":\";$A15)+1);A15;DROITE(A15;NBCAR(A15)-NBCAR($C$2)-1))

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
26 nov. 2015 à 05:45
Bonjour
Normal, vous recherchez en A15 ":\" qui n'existe pas. La fonction GAUCHE($A15;CHERCHE(":\";$A15)+1) retourne une erreur.
Vous pouvez gérer cette erreur comme ceci par exemple:
=SIERREUR(SI(GAUCHE($C$2;CHERCHE(":\";$C$2)+1)=GAUCHE($A15;CHERCHE(":\";$A15)+1);A15;DROITE(A15;NBCAR(A15)-NBCAR($C$2)-1));"pas trouvé"),
ou bien, modifiez votre formule.
Cdlt
0
Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015 3
26 nov. 2015 à 10:35
A oui, mais je pense qu'il faut que je revoie ma formule complète.

En C2 est inscrite la racine du dossier source
Un code liste dans la colonne A les racines + sous-dossier + nom de fichier.xls trouvés dans le dossier source.
Cependant il ne m'affiche que la racine complète pour le premier fichier.xsl trouvé dans le sous dossier, pour les suivants il se contente d'afficher le nom du fichier.
J'aimerais donc dans la colonne D reconstituer les chemins complets de chaque fichier.

Est-ce possible ?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015
26 nov. 2015 à 12:55
Oui probablement, mais pourriez-vous déposer sur cjoint.com ce fichier (sans données confidentielles) afin que l'on puisse voir comment il est fait? ajoutez des commentaires expliquant ce que vous attendez.
cdlt
0
Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015 3 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
30 nov. 2015 à 09:04
Bonjour,

Après beaucoup de persévérance, j'ai réussi à lister les chemins d’accès complet.

J'aimerais maintenant grâce à une macro extraire des données de ces feuilles à partir de ma liste des chemins d’accès.

Pouvez-vous m'aider à faire cela ?
0
Nuage75 Messages postés 22 Date d'inscription mardi 17 novembre 2015 Statut Membre Dernière intervention 11 décembre 2015 3
4 déc. 2015 à 09:57
J'y suis enfin parvenu.


Sub recup()

Set f = ThisWorkbook.Sheets("Feuil1")
'parcourir la colonne 4 (à partir de la ligne 7, jusqu'à la dernière cellule non-vide de cette même colonne)
For lig = 7 To f.Cells(Rows.Count, 4).End(xlUp).Row
'ouvrir chaque fichier dont le chemin d'accès et le nom sont renseignés en colonne D
Workbooks.Open Filename:=f.Cells(lig, 4)
'recopier en colonne F et G de ton fichier (celui contenant la macro), le contenu des cellules A16 et A19, d'une feuille nommée "MAQUETTE DEVIS" dans le ficher qui vient d'être ouvert
ThisWorkbook.Sheets(1).Cells(lig, 9) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A16]
ThisWorkbook.Sheets(1).Cells(lig, 10) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[A19]
ThisWorkbook.Sheets(1).Cells(lig, 11) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E23]
ThisWorkbook.Sheets(1).Cells(lig, 12) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E24]
ThisWorkbook.Sheets(1).Cells(lig, 13) = ActiveWorkbook.Sheets("MAQUETTE DEVIS").[E25]
'refermer le fichier (celui dont le nom figure en colonne D)
ActiveWorkbook.Close savechanges:=False
Next lig
End Sub
0