Listes,arborescence.vb excel

Bonjour,
je suis en train de faire un prog en vb excel, et je veux afficher sur ma userform une sorte de liste (arborescence ) qui indique par exp mes documents,poste de travail,...afin d epermettre à l'utilisateur de faire un choix du fichier qu'il veut ouvrir,et sur lequel le programme main sera appliqué.
merci bcp de venir à mn aide,je bloque et ca presse..:(
Configuration: Windows 2000
Internet Explorer 6.0

5 réponses

  1. Ciao !

    Sub Main()
    
        Dim fd As FileDialog, vrtSelection As Variant, strMes As String
       
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
        strMes = ""
        With fd
            ' Définir le répertoire par défaut à l'ouverture.
            .InitialFileName = "C:\Documents local\Excel"
            'Utiliser la méthode [ Show ] pour afficher la boite de dialogue.
            ' Si l'utilisateur n'utilise pas la touche [ ESC ]
            If .Show = -1 Then
                For Each vrtSelection In .SelectedItems
                    strMes = strMes & vbLf & "Chemin d'accès de la sélection: " & vrtSelection
                Next vrtSelection
            End If
        End With
    
        MsgBox strMes
    
        Set fd = Nothing
    
    End Sub
    


    DOS
    0
    1. re:

      Je n'ai que travaillé peu avec les TCDs, voici comment je procède :

      exemple :

      Sub Test()
      
          Dim Adr As String
      
          ' Localiser la source des données
          With Worksheets("Feuil1")
              Adr = .Name & "!" & .Range("A1:V13661").Address
          End With
          
          'Création du PivotTable
          With ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
                                          SourceData:=Range(Adr))
              ' Dépot sur la feuille 2 à l'adresse C4 avec le nom TCD1
              Set PT = .CreatePivotTable(TableDestination:= _
                              Worksheets("Feuil2").Range("C4"), _
                              TableName:="TCD1")
          End With
      
      End Sub
      

      DOS
      0
      1. thks Dos!
        j'arrive tjrs pas à resoudre el blem du tcd ..:(
        anyway if u any other idea,tell me!
        -1
    2. re :

      quand j'utilise [ Adr = .Name & "!" & .Range("A1:B7").Address ] :

      Sub Creer()

      Dim Adr As String

      ' Localiser la source des données
      With ActiveWorkbook.ActiveSheet
      Adr = .Name & "!" & .Range("A1:B7").Address
      End With

      ActiveWorkbook.PivotCaches.Add _
      (SourceType:=xlDatabase, SourceData:=Adr).CreatePivotTable _
      TableDestination:="", TableName:="Tableau croisé dynamique1", _
      DefaultVersion:=xlPivotTableVersion10

      End Sub
      '
      ça fonctionne correctement, mais je n'ai pas ton data !

      par contre avec cette adresse [ Adr = .Name & "!" & .Range("A1:V13661").Address ]
      ça ne fonctionne pas, vérifie ta plage de données !
      Sub Creer()
      
          Dim Adr As String
      
          ' Localiser la source des données
          With ActiveWorkbook.ActiveSheet
              Adr = .Name & "!" & .Range("A1:V13661").Address
          End With
      
          ActiveWorkbook.PivotCaches.Add _
              (SourceType:=xlDatabase, SourceData:=Adr).CreatePivotTable _
              TableDestination:="", TableName:="Tableau croisé dynamique1", _
              DefaultVersion:=xlPivotTableVersion10
      
      End Sub
      '
      

      DOS
      0
      1. re :

        quand j'utilise [ Adr = .Name & "!" & .Range("A1:B7").Address ] :
        Sub Creer() 
        
        Dim Adr As String 
        
        ' Localiser la source des données 
        With ActiveWorkbook.ActiveSheet 
        Adr = .Name & "!" & .Range("A1:B7").Address 
        End With 
        
        ActiveWorkbook.PivotCaches.Add _ 
        (SourceType:=xlDatabase, SourceData:=Adr).CreatePivotTable _ 
        TableDestination:="", TableName:="Tableau croisé dynamique1", _ 
        DefaultVersion:=xlPivotTableVersion10 
        
        End Sub 
        ' 
        

        ça fonctionne correctement, mais je n'ai pas ton data !

        par contre avec cette adresse [ Adr = .Name & "!" & .Range("A1:V13661").Address ]
        ça ne fonctionne pas, vérifie ta plage de données !
        Sub Creer()
        
            Dim Adr As String
        
            ' Localiser la source des données
            With ActiveWorkbook.ActiveSheet
                Adr = .Name & "!" & .Range("A1:V13661").Address
            End With
        
            ActiveWorkbook.PivotCaches.Add _
                (SourceType:=xlDatabase, SourceData:=Adr).CreatePivotTable _
                TableDestination:="", TableName:="Tableau croisé dynamique1", _
                DefaultVersion:=xlPivotTableVersion10
        
        End Sub
        '
        

        DOS
        0
        1. merci infiniment , je crois que le bout de programme a avancé,seulmt jai autre petit blem, à ce niveau ci :
          With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("avec")
          .Orientation = xlRowField
          .Position = 1
          End With
          With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("sans")
          .Orientation = xlDataField
          .Position = 1
          End With
          on me envoie l'erreur suivante :
          impossible de lire la propriété pivotfields de la classe pivot table

          merci encore Dos
          -1
      2. merci!sinn vs vs connaissze un peu en tableaux dynamiques croisés?
        j'ai enregistré une macro pr mn programme, ms ca bloque au niveau dse instructions concernant le tableau croisé dynamique!je suppose qu'il est necessaire de faire une actualisation ou truc du genre...ms moi je ne ss qu'une debutante,dc j'en sais vrmt d'ou l'aborder,merci bcp de bien vouloir m'aider , et ceci est le bout du programme ou j'ai blem
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "mine!R1C1:R13661C22").CreatePivotTable TableDestination:="", _
        TableName:="Tableau croisé dynamique1"
        -1