Recomposition d'un texte si non présent
Résolu
Nuage75
Messages postés
23
Statut
Membre
-
Nuage75 Messages postés 23 Statut Membre -
Nuage75 Messages postés 23 Statut Membre -
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))
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
-
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-
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 ? -
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
-