begin process at 2012 02 16 06:00:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

VBA - Excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VBA - Excel

dimanche 19 octobre 2008 à 05:17:19 | VBA - Excel

RODAVAFLO

Bonjour,

Je débute dans VBA sous excel.  Grâce au site, j'ai déjà pu créer une macro me permettant d'insérer les photos d'un dossier donné dans une feuille excel et, sous une certaine présentation.

J'aimerais maintent affiner l'utilisation de cette macro et la rendre plus conviviale par l'utilisation d'un userform qui me permettrait de choisir un utilisateur.  En fonction de cet utilisateur, je saurais dans quel répertoire je dois ensuite "travailler".  Le choix de l'utilisateur conditionnerait les valeurs qui apparaîtraient dans une combobox en-dessous.  Cette combobox devrait lister tous les sous-répertoires de l'utilisateur.  La sélection d'une valeur dans la combobox me permettrait alors de dédifinir le répertoire dans lequel je vais chercher les fichiers jpg à insérer dans ma feuille (cette dernière partie est ok).

Je pense que lister les fichiers d'un répertoire a déjà été expliqué.  Ce qu'il me faudrait, c'est comment lister les sous répertoires. Merci d'avance pour votre aide.
dimanche 19 octobre 2008 à 11:41:01 | Re : VBA - Excel

pile_poil

Membre Club
bonjour
regardes dans l'aide  (F1)
Dir
il y a des exemples qui répondent exactement à ton probleme

si c'est la solution, penser : REPONSE ACCEPTEE
dimanche 19 octobre 2008 à 13:02:14 | Re : VBA - Excel

Iraitika

Bonjour, voici un exemple en .NET qui doit pouvoir être adapté en VBA

Dim TableauRepertoire(5) as String
    Dim NomDossier as String   
    Dim dossier As String
    For Each dossier In my.Computer.FileSystem.GetDirectories("C:\Users\**\Desktop\versions")
    TableauRepertoire = dossier.Split("\")
    NomDossier = TableauRepertoire(5)
    If NomDossier.StartsWith("V") Then
        Cb_Version.Items.Add(NomDossier)
    End If
    Next
    Cb_Version.SelectedIndex = 0

Ce bout de code permet la récupération du sous répertoire. De garder uniquement son cinquième mot et de l'ajouter à la combobox si ce dernier commence par V.

En esperant avoir compris la question. ;);)


dimanche 19 octobre 2008 à 13:08:55 | Re : VBA - Excel

PROTEUS91

Hello Roda,

Je te passe une procedure que j'utilise sous VB pour lister les fichiers, les repertoires et les sous repertoires, je ne sais pas si ca marche sous VBA, mais je pense que ca doit etre pareille.

1. Tu copie cette procedure Comme elle est
Public Sub PROCEDURE_RECURSETREE(Current_Path As String, Use_Form As Form, ListBox_File As Object, Clear_ListBox As Boolean, Optional ListBox_Racine As Object, Optional Recup_UnderFolder As Boolean = False)
Dim Integer_N, Integer_Directory                                    As Integer
Dim String_FileName, String_DirectoryList()                         As String

DoEvents
If Clear_ListBox = True Then                                        'Reset les differentes Liste
    ListBox_File.Clear                                              'Reset la liste Fichier
    ListBox_Racine.Clear                                            'Reset la liste Racine
End If
String_FileName = Dir(Current_Path)
Do While String_FileName <> ""                                      'Tant que ce sont des fichiers
    String_Complete = Current_Path & String_FileName                'PathName dans la variable
    If String_FileName <> "" Then
        ListBox_Racine.AddItem (Current_Path)                       'Ajoute l'evenement
        ListBox_File.AddItem (String_FileName)                      'Ajoute l'evenement
    End If
    String_FileName = Dir
Loop
String_FileName = LCase(Dir(Current_Path, vbDirectory))             'Assigne le repertoire a analyser
Do While String_FileName <> ""                                      'Tant que la variable ne contient pas de fichier
    If String_FileName <> "." And String_FileName <> ".." And String_FileName <> "pagefile.sys" Then
        If GetAttr(Current_Path & String_FileName) And vbDirectory Then
            Integer_Directory = Integer_Directory + 1               'Compte le nombres de sous dossiers
            ReDim Preserve String_DirectoryList(Integer_Directory)  'Ajoute dans un tableau temporaire le sous dossier
            String_DirectoryList(Integer_Directory) = Current_Path & String_FileName
        End If
    End If
    String_FileName = Dir
Loop
If Recup_UnderFolder = True Then                                    'Si UnderFolder = True then
    For Integer_N = 1 To Integer_Directory                          'Boucle la procedure pour lister les sous repertoire
        PROCEDURE_RECURSETREE String_DirectoryList(Integer_N) & "\", Use_Form, ListBox_File, False, ListBox_Racine, True
    Next Integer_N
End If

End Sub


2. La ligne de code qui te permet d'utiliser la procedure.
PROCEDURE_RECURSETREE "C:\windows\", Me, List1, False, List2, True

3. Avant de lancer la ligne de code pense a crée deux ListBox, List1 contient les noms de fichier, List2 contient les noms des repertoires.

Normalement tu as tout. J'espere que ca marchera.

Bonne chance.

PROTEUS
lundi 20 octobre 2008 à 08:51:19 | Re : VBA - Excel

jrivet

Membre Club
Salut,
Sinon il faut chercher sur www.codyx.org

il y a:
http://www.codyx.org/snippet_liste-tous-fichiers-disque-dur_426.aspx

ou bien encore

http://www.codyx.org/snippet_lister-sous-repertoires-ou-sous-sous-repertoires-repertoire_260.aspx

@+: Ju£i¤n
Pensez: Réponse acceptée
lundi 20 octobre 2008 à 12:11:11 | Re : VBA - Excel

RODAVAFLO

Merci pour l'aide.  La fonction Dir me renvoie bien un nom de répertoire.  Par contre, il faut que je puisse prendre tous les noms de répertoires et je ne connais pas une fonction qui me permette de les compter !
lundi 20 octobre 2008 à 14:26:58 | Re : VBA - Excel

jrivet

Membre Club
Je reposte la meme chose à voir si maintenant cela passe mieux et si tu nous en dit un peu plus...


Salut,
Sinon il faut chercher sur www.codyx.org

il y a:
http://www.codyx.org/snippet_liste-tous-fichiers-disque-dur_426.aspx

ou bien encore

http://www.codyx.org/snippet_lister-sous-repertoires-ou-sous-sous-repertoires-repertoire_260.aspx

@+: Ju£i¤n
Pensez: Réponse acceptée


@+: Ju£i¤n
Pensez: Réponse acceptée
mardi 21 octobre 2008 à 06:11:43 | Re : VBA - Excel

Orohena

Réponse acceptée !

Bonjour Rodavaflo & Co

Voici un programme VBA qui liste tous les sous_repertoires d'un repertoire "c:\...\utilisateur" dans une ListBox. Je l'ai dérivé d'une discussion en cours sur ce forum et traitant, à peu de choses près, du même sujet.

Sub lister_repertoires_utilisateur()
    Dim liste As String, ligne As Integer, chemin As String
    Dim userDir As String
    userDir = "c:\...\utilisateur"   ' à modifier
    recurseListeSousRep userDir, liste
    ligne = 1
    Do
        chemin = Left(liste, InStr(1, liste, ";"))
        liste = Replace(liste, chemin, "", 1, 1)
        chemin = Replace(chemin, userDir & "\", "", 1, 1)
        Cells(ligne, 1).Value = Replace(chemin, ";", "", 1)
        ligne = ligne + 1
    Loop Until liste = ""
    ListBox.RowSource = "A1:A" & Trim(Str(ligne - 1))
End Sub

Sub recurseListeSousRep(rep As String, liste As String)
'
' liste récursivement les sous-repertoires du repertoire rep
'
    Dim fileSys             ' objet representant le systeme de fichiers
    Dim repertoireCourant   ' objet Folder representant le repertoire courant
    Dim sousRepertoires     ' objet Folders representant les sous-repertoires
    Dim sousRepertoire      ' objet Folder representant l'un des sous-repertoires
    Dim sep As String       ' separateur ("\" pour Windows)
    Dim cible As String     ' chemin du fichier dans le repertoire courant
    Dim Erreur As Boolean
'    MsgBox liste
    sep = Application.PathSeparator
    Set fileSys = CreateObject("Scripting.fileSystemObject")
' creer un objet Folder representant le repertoire courant
    Set repertoireCourant = fileSys.getfolder(rep)
' creer une collection Folders representant les sous-repertoires
    Set sousRepertoires = repertoireCourant.subfolders
' balayer la collection en creant un objet Folder pour chaque sous-repertoire
    On Error GoTo erreurAccesRep
    Erreur = False
    For Each sousRepertoire In sousRepertoires
' recherche le fichier par iteration
        If Not Erreur Then
            liste = liste & rep & sep & sousRepertoire.Name & ";"
            recurseListeSousRep rep & sep & sousRepertoire.Name, liste
        End If
    Next
    On Error GoTo 0
    Exit Sub
erreurAccesRep:
    Erreur = True
    Resume Next
End Sub

Cordialement

mardi 28 octobre 2008 à 11:40:31 | Re : VBA - Excel

RODAVAFLO

Merci à tous pour votre aide.  J'ai enfin réussi à réaliser ce que je voulais.  Si quelqu'un veut le programme, je peux le joindre.  je me suis fort inspirée de la solution d'Orohena.  J'ai été un peu lente à la résolution, mais je n'ai pas beaucoup de temps à y consacrer.  Mes collègues qui vont utiliser l'application sont super contents du résultat, c'est ce qui compte.

Bien à vous,


                     


Cette discussion est classée dans : vba, combobox, répertoire, excel, utilisateur


Répondre à ce message

Sujets en rapport avec ce message

VBA Excel pointer sur un Combobox [ par monaldinho ] hello !encore une fois (en ce moment je n'arrette pas dis donc), j'ai besoin de votre aide!j'ai fait une boucle pour, suivant l'indice, afficher la va CODE VBA EXCEL LISTER FICHIERS DANS COMBOBOX [ par clemodoun ] Bonjour à tous,Je galère depuis deux jours. Voici mon problème. J'ai un Userform avec 2 combobox. Le premier me liste tous les répertoires et sous rép vba excel [ par vb45000 ] Bonjours, Je vous drai un coup de main.J'ai créer un userform avec 5 combobox à l'intérieur.Je voudrai que ses combobox afiche en 1 :Nomen 2: Prénomen Vba excel [ par Bretagne35 ] Bonjour,J'ai écrit un programme pour envoyer automatiquement un e-mail depuis un bouton sur excel.Désormais, je souhaiterais que l'utilisateur écrive VBA Excel - Comment créer une combobox contenant texte et image? [ par dorianovitch ] Salut,Je recherche comment créer une combobox contenant du texte et des images.J'ai trouvé un petit quelque chose, mais ça ne fonctionne pas...<a href VBA excel : tester plusieurs combobox [ par adri37 ] Bonjour,je souhaite tester le contenu de plusieurs combobox mais je n'y arrive pas.J'ai 15 combobox appelées combobox1, combobox2, combobox3, combobox Pb ListBox et ComboBox VBA Excel [ par juju4953 ] Bonjour a tousMerci d'avance à ceux qui m'aideront !!!!!!Voila mon pb mon fichier excel comporte 3 colonnes (Nom Prenom, Montant,Date)Je voudrais que [Déplacé .Net --> VBA] VBA Excel (combobox) [ par starboost ] Bonjour, J'ai mis des combobox qui se refère a une plage d'une feuille le truc c que je veux que la personne rentre QUE les informations de la list While en VBA sur Excel [ par Fred2468 ] Bonsoir, Voilà j'ai un petit soucis avec mon code, j'utilise le VBA de Excel et ma petite manip consiste à remplir un "ComboBox" grâce à une colonne [Déplacé .Net --> VBA] Vba Excel une seule macro executee à la fois [ par Lea77 ] Bonjour tout le monde. J'ai un fichier excel pour lequel j'ai développé un certain nombre de macros. L'utilisateur n'a acces qu'à la 1ere feuille qu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,248 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales