Afficher les éléments d'un dossier
Résolu/Fermé
Paul
-
31 juil. 2020 à 10:51
yg_be Messages postés 23335 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 - 4 août 2020 à 09:40
yg_be Messages postés 23335 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 - 4 août 2020 à 09:40
A voir également:
- Afficher les éléments d'un dossier
- Dossier appdata - Guide
- Mettre un mot de passe sur un dossier - Guide
- Afficher taille dossier windows - Guide
- Impossible de supprimer un dossier - Guide
- Dossier rar - Guide
10 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
31 juil. 2020 à 11:30
31 juil. 2020 à 11:30
Bonjour,
Vous n'allez pas chercher les valeurs, vous creez un lien entre les cellules de fichiers et votre fichier!
Cells(i, j).FormulaR1C1 = "='" & ThisWorkbook.Path & "\[" & Fichier & "]Feuil1'!R" & i & "C" & j
Vous n'allez pas chercher les valeurs, vous creez un lien entre les cellules de fichiers et votre fichier!
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
3 août 2020 à 16:27
3 août 2020 à 16:27
Bonjour,
Il faut deux "_" pour que ca donne le bon resulat.
Verifiez le nom du fichier
Il faut deux "_" pour que ca donne le bon resulat.
Verifiez le nom du fichier
Bonjour,
Merci beaucoup pour ta réponse, c'est parfait !
J'aurais juste une autre petite question, quand ma boucle While parcours mon dossier elle s'arrête avec un message d'erreur (j'imagine parce qu'elle a parcouru tous les fichiers du dossier).
J'ai regardé sur la doc Microsoft pour sortir de ma boucle s'il n'y a plus de fichier à ajouter mais je n'arrive pas à l’implémenter à mon code..
Merci d'avance
Merci beaucoup pour ta réponse, c'est parfait !
J'aurais juste une autre petite question, quand ma boucle While parcours mon dossier elle s'arrête avec un message d'erreur (j'imagine parce qu'elle a parcouru tous les fichiers du dossier).
J'ai regardé sur la doc Microsoft pour sortir de ma boucle s'il n'y a plus de fichier à ajouter mais je n'arrive pas à l’implémenter à mon code..
Merci d'avance
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
31 juil. 2020 à 15:56
31 juil. 2020 à 15:56
Re,
Ben, si vous avez ce code, ca doit le faire:
Quelle erreur avez-vous ?
Ben, si vous avez ce code, ca doit le faire:
Fichier = Dir(chemin & "*.xlsx", vbNormal) Do While Fichier <> "" . . . . Fichier=Dir Loop
Quelle erreur avez-vous ?
Bonjour,
Merci pour ta réponse, en faite j'effectue une boucle avec une copie des noms des fichiers, présents dans un dossier, en les mettant en onglet dans mon fichier ou s’exécute ma macro.
Avec ce code :
Mais du coup dès qu'il ne trouve plus de fichiers, il s'arrête avec l'erreur "indice non défini" sur cette ligne :
Merci pour ta réponse, en faite j'effectue une boucle avec une copie des noms des fichiers, présents dans un dossier, en les mettant en onglet dans mon fichier ou s’exécute ma macro.
Avec ce code :
Do While monFichier <> "" wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Split(monFichier, "_") (2) ' Permet de passer au fichier suivant monFichier = Dir Loop End Sub
Mais du coup dès qu'il ne trouve plus de fichiers, il s'arrête avec l'erreur "indice non défini" sur cette ligne :
wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Split(monFichier, "_") (2) ' Permet de passer au fichier suivant
yg_be
Messages postés
23335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2024
1 551
1 août 2020 à 17:25
1 août 2020 à 17:25
l'erreur se produit sans doute parce qu'un fichier n'est pas nommé comme tu l'imagines, avec au moins deux "_".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
1 août 2020 à 16:33
1 août 2020 à 16:33
Bonjour,
dès qu'il ne trouve plus de fichiers
Desole, mais si plus de fichier, la variable Fichier="", donc pas de passage dans la boucle
Au moment de l'erreur, quelle est la valeur de Fichier?
dès qu'il ne trouve plus de fichiers
Desole, mais si plus de fichier, la variable Fichier="", donc pas de passage dans la boucle
Au moment de l'erreur, quelle est la valeur de Fichier?
Bonjour,
Et merci à tous les deux pour vos réponses.
Elle affiche bien le nom du dernier fichier dans un onglet, mais me renvoie l'erreur juste après : "L'indice n'appartient pas à la section" erreur d'execution 9. Je me suis fourvoyé dans mon précédent poste.
Et merci à tous les deux pour vos réponses.
Elle affiche bien le nom du dernier fichier dans un onglet, mais me renvoie l'erreur juste après : "L'indice n'appartient pas à la section" erreur d'execution 9. Je me suis fourvoyé dans mon précédent poste.
Do While monFichier <> "" wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Split(monFichier, "_") (2) ' Permet de passer au fichier suivant onglet = Split(monFichier, "_")(2) monFichier = Dir Loop End Sub
Voici la boucle complète
yg_be
Messages postés
23335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2024
1 551
1 août 2020 à 20:07
1 août 2020 à 20:07
difficile à suivre avec un code qui change tout le temps. difficile de croire que l'erreur porte sur une ligne qui ne fait que partiellement ce que fait la ligne précédente.
à quoi sert la variable onglet?
n'est-il pas préférable de faire:
tu n'as-toujours pas répondu à la question:
Au moment de l'erreur, quelle est la valeur de monFichier? sais-tu comment obtenir la valeur d'une variable après une erreur? si non, demande-nous, ne néglige pas notre question.
à quoi sert la variable onglet?
n'est-il pas préférable de faire:
onglet = Split(monFichier, "_")(2) wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet
tu n'as-toujours pas répondu à la question:
Au moment de l'erreur, quelle est la valeur de monFichier? sais-tu comment obtenir la valeur d'une variable après une erreur? si non, demande-nous, ne néglige pas notre question.
Bonjour,
Veuillez m'excuser pour mon délais et la non réponse à votre précédente question.
Concernant la valeur de monFichier, j'ai utilisé la commande
Voici mon code complet, j'ai peut être omis de vous spécifier quelques informations qui ont une importance dans la boucle :
Ligne de l'erreur à la fin de l’exécution du code :
Merci encore pour votre aide.
Veuillez m'excuser pour mon délais et la non réponse à votre précédente question.
Concernant la valeur de monFichier, j'ai utilisé la commande
Debug.Print monFichieret cela me renvoie tout simplement tous les noms de fichier présent dans mon dossier, et pour la dernière ligne, le nom du dernier fichier.
Voici mon code complet, j'ai peut être omis de vous spécifier quelques informations qui ont une importance dans la boucle :
Sub toto() Dim monFichier As String Dim wb As Workbook Dim chemin As String Dim i As Integer Dim nom As String Set wb = Workbooks(ThisWorkbook.Name) 'classeur reception ' On a besoin du chemin absolu du dossier ' Doit se terminer par \ chemin = ThisWorkbook.Path & "\" ' La fonction Dir(chemin, mode) permet de parcourir un dossier ' Ici je rajoute à mon chemin "*.xlsx", ' pour ne retrouver que mes fichiers Excel ' vbNormal permet de ne récupérer que des fichiers, ' vbDirectory récupère tout (dossiers et fichiers) monFichier = Dir(chemin & "*.xlsx", vbNormal) Do While monFichier <> "" onglet = Split(monFichier, "_")(2) wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet 'Debug.Print onglet Debug.Print monFichier monFichier = Dir Loop End Sub
Ligne de l'erreur à la fin de l’exécution du code :
onglet = Split(monFichier, "_")(2)
Merci encore pour votre aide.
yg_be
Messages postés
23335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2024
1 551
3 août 2020 à 16:58
3 août 2020 à 16:58
comme tu as mis la ligne debug.print (19) après la ligne qui donne l'erreur (22), tu n'as évidement pas le nom du fichier qui donne l'erreur.
au moment où tu as l'erreur, il suffit de passer en mode "debogage", puis de mettre le curseur sur la variable monFichier.
au moment où tu as l'erreur, il suffit de passer en mode "debogage", puis de mettre le curseur sur la variable monFichier.
C'est bon j'ai trouvé, en plaçant le Debug.Print monFichier avant la ligne 19.
Et le programme prend en compte le nom du fichier sur lequel se lance la macro, qui lui ne possède pas (2) "_"
Merci à tous les deux pour votre aide, j'ai enfin compris !
Et le programme prend en compte le nom du fichier sur lequel se lance la macro, qui lui ne possède pas (2) "_"
Merci à tous les deux pour votre aide, j'ai enfin compris !
yg_be
Messages postés
23335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2024
1 551
4 août 2020 à 09:40
4 août 2020 à 09:40
peux-tu alors marquer la discussion comme résolue?