Accueil > Forum > > > > VBA - Excel
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|