Importer depuis l'explorateur dans une listview

bonjour a vous tous

dans le fichier joint j'arrive a ouvrir l'explorateur et trouvé le chemin de mes devis ou facture et j'arrive même a mettre le chemin dans le textbox, mais impossible de trouvé comment faire pour que les listes de devis où de facture s'ouvrent dans la listiew en fonction du choix qui fait dans le 1 usf pour définir si c'est un devis ou une facture que l'on veux ouvrir

je n'ai pas trouvé mieux que l'explorateur pour le faire mais peut être avez vous une autre idée

25essai-import.xlsm (24.52 Ko)

ah oui mes devis ou facture sont archivée comme ceci "DEVIS N° 2014-07-001 M où Mme UNTEL

Pascal

ce https://forum.excel-pratique.com/excel/liste-automatique-fichiers-explorateur-dans-excel-t32101.html trouvé en bas du post est quasi bon pour moi sauf qu'il mets les listes dans une feuille

je me débrouillerai après avec le double clic pour ouvrir le classeur choisi

Pascal

Bonjour grisan29

A tester voir si cela convient

25essai-import-1.xlsm (27.39 Ko)

bonjour bob71au

merci pour ce fichier mais rien ne s'affiche dans la listview

j'ai même modifier le chemin pour essayer

Chemin = "C:\Facturation\devis\" 'oFolderItem.PathChemin =
    Fichier = Dir(Chemin & "\*.xlsm*")

de toute facon est que du fait des 2 boutons l'explorateur peux s'ouvrir directement par exemple pour les devis ici

 "C:\Facturation\devis\"

où ici pour les factures

 "C:\Facturation\facture\"

Pascal

Re

dans le test si devis ou facture remplace devis par DEVIS

sensible a la casse

si cela fonctionne

ajoute en au du module

option compare text

lié au like

re

voici ou j'ai mis "DEVIS" au lieu de "devis

Private Sub CommandButton3_Click()

    import.ListView1.ListItems.Clear
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
    Dim Chemin As String
    Dim F2 As Object
    'récupère le nom du répertoire sélectionné
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
    On Error Resume Next
    Set oFolderItem = objFolder.Items.Item
    Chemin = "C:\Facturation\DEVIS\" 'oFolderItem.PathChemin =
   Fichier = Dir(Chemin & "\*.xlsm*")

    Do While (Len(Fichier) > 0)
        If Fichier <> ThisWorkbook.Name Then
           If import.Caption = "importer un devis?" Then
              If Fichier Like "*" & "devis" & "*" Then
                  import.ListView1.ListItems.Add , , Chemin & "\" & Fichier
              End If
           End If
           If import.Caption = "importer une facture?" Then
              If Fichier Like "*" & "facture" & "*" Then
                  import.ListView1.ListItems.Add , , Chemin & "\" & Fichier
              End If
           End If
        End If
        Fichier = Dir()
    Loop

    If Chemin = "" Then
        Exit Sub
    End If
    TBrepertoire.Value = Chemin
End Sub

en fait c'est le chemin qui n'est pas bon c'est Chemin = "C:\Facturation-v1s\DEVIS\"mais même bon le bouton "facture ne trouve rien et le chemin inscrit dans le textbox reste sur devis

Pascal

rere

Non pas la

test la modif ci jointe

32essai-import-1.xlsm (26.81 Ko)

re

ce dernier opus fonctionne pour les devis mais pas pour les factures, d'accord j'ai compris il faut fermer l'usf pour avoir acces au factures et re si l'on veux retourner aux devis

mais si le chemin s'écrit dans le textbox il n'a aucun lieu d'etre dans la liste de la listview

Pascal

re

je peux enlever le chemin mais il faudra le reprendre pour ouvrir le fichier

Peux tu me donner un nom de fichier facture

re

le chemin complet est

C:\Facturation-v1s\devis\DEVIS N° 2014-01-003 - UDAF-DU-FINISTÈRE.xlsm

et "facture" remplace "devis" dans le chemin des factures

C:\Facturation-v1s\facture\FACTURE N° 2014-07-001 - UDAF-DU-FINISTÈRE.xlsm

Pascal

re

cela fonctionne ou non pour les factures?

je t'ai enlevé le chemin dans la listview

veux tu une autre façon ?

36essai-import-1.xlsm (27.54 Ko)

re

pour les factures j'ai dit plus haut

d'accord j'ai compris il faut fermer l'usf pour avoir accès au factures et re si l'on veux retourner aux devis

maintenant je vais essayer ton classeur

Pascal

re

pour l'ouverture d'un devis où facture je pensais que la fonction qu'utilise le fichier de silkyroad pouvait ouvrir le devis ,erreur il demande de chercher ou il est après il l'ouvre et ce n'et pas ce que je veux

donc son code est

Private Sub ListView1_DblClick()
    Dim leFichier As String
    Dim oList As Object

    On Error Resume Next
    Set oList = ListView1.SelectedItem
    If oList Is Nothing Then Exit Sub
    On Error GoTo 0

    'Le chemin complet est stocké dans le Tag
    leFichier = ListView1.ListItems.Item(ListView1.SelectedItem.Index).Tag
    Unload Me

    If Right(leFichier, 4) = ".xls" Then
        ThisWorkbook.FollowHyperlink leFichier
        Else
        ShellExecute 0, "open", leFichier, "", "", vbNormalFocus
    End If
End Sub

accompagné de son module

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

je pense que c'est le tag qui est gênant et je ne sais ce que c'est

je mets la charrue avant les bœufs car avant il faudrait que les boutons "devis" et "factures" ouvre chacun l'explorateur a l'endroit adéquate

Pascal

re

a tester

double click sur la listview

32essai-import-2.xlsm (29.24 Ko)

re

magnifique le double click adjugé et adopté

reste la gestion des boutons pour terminer le dimanche en beauté

Pascal

Bonsoir

de quels boutons ?

re

les boutons du userform1 sur lesquels ont clic si on veux ouvrir les devis ou les factures

pour que chacun soit diriger directement sur la cible dans l'explorateur, j'ai essayer via l'enregistreur mais catastrophe a la retranscrition en vba

je ne sais s'il existe un enregistreur de macros sous vba car ce serai très utile

pascal

re

pourquoi ne pas mettre 2 listviews une pour les devis et l'autre pour les factures

un seul appel sur un dossier et les deux listviews sont remplies

re

oui après tout ce n'est pas une mauvaise idée , je vais essayer pour voir

pascal

j'ai rajouté une listview mais le reste est également soit a doubler soit a modifier

re

a tester

39essai-import-3.xlsm (28.55 Ko)

re

Merci beaucoup pour ce fichier qui mets fin au post pour ce dimanche ou le soleil de ta présence a brillé toute la journée

Pascal

Rechercher des sujets similaires à "importer explorateur listview"