Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche fichier commençant par...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Moreno076

XLDnaute Impliqué
Bonjour

Dans le fichier ci-joint, je souhaite que lorsque l'on clique sur le bouton il aille chercher les fichiers dans le dossier C:\extractions reappro\wms\ mais seulement s'ils commencent par wms.

Une macro à proposer pour remplacer la présente?

Merci à vous
 

Pièces jointes

Re : Recherche fichier commençant par...

Bonjour,
non testé mais il te faut mettre une condition du type
Code:
If f Like "wms*" Then
après
Code:
For Each f In fso.GetFolder(MonRepertoire).Files
Ceci pourrait ressembler à :
Code:
Sub Report()

Dim MonRepertoire As String, fso As Object, DerLig_feuille_traitée As Long, f As Object, Fichier_traité As String, k As Integer

Application.ScreenUpdating = False
Range("A2:IV65000").ClearContents

Set fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "C:\extractions reappro\wms\"
For Each f In fso.GetFolder(MonRepertoire).Files ' on passe en revue tous les fichiers de ce dossiers
    If f Like "wms*" Then
        Workbooks.Open MonRepertoire & f.Name
        Fichier_traité = ActiveWorkbook.Name
            For k = 1 To Sheets.Count ' on passe en revue chaque feuille du fichier traité
                Sheets(k).Activate
                DerLig_feuille_traitée = ActiveSheet.Range("A65536").End(xlUp).Row
                    If Range("A2") = "" Then
                        GoTo Etiquette
                    Else
                        Range("A2:IV" & DerLig_feuille_traitée).Copy Destination:=Workbooks("Résumév3.xls").Sheets("Résumév1").Range("A" & Workbooks("Résumév3.xls").Sheets("Résumév1").Range("A65536").End(xlUp).Row + 1)
                    End If
    
Etiquette:
              Workbooks(Fichier_traité).Activate
              
             Next 'prochaine feuille
        Workbooks(Fichier_traité).Close SaveChanges:=False
    End If
Next f ' prochain fichier
End Sub
mais à tester et à adapter de ton côté
A+
 
Re : Recherche fichier commençant par...

Ci-joint 4 fichiers qui sont rangés dans le chemin c:\extraction reappros\.

Je te joins dans un second message le 5eme fichier ne pouvant envoyer 5 d'un coup.
Ce fichier "gestion ruptures" est mon fichier qui me permet d'importer les 4 autres fichiers.
Pour l'extraction reappro et ruptures pas de soucis à part la ligne 1 qui ne se recopie pas automatiquement
Par contre pour wms il peut y avoir 1 2 3 4... fichiers commençant par wms ce sont ces fichiers que je souhaite regrouper dans l'onglet WMS en gardant qu'une fois la ligne 1. Ces fichiers ont des lignes qui peuvent varier par leurs nombres.

Je pense que je suis plus clair en te transmettant toutes les données.

J'ai essayé ta macro mais ca ne fonctionne pas à priori.

Merci de ton aide.
 

Pièces jointes

Re : Recherche fichier commençant par...

Re

Désolé mais je ne préfère pas télécharger 5 fichiers et créer un dossier sur mon disque uniquement pour tester une macro.
De plus je suis en 64 bit ce qui m'oblige à retoucher les API.

Tu dis que cela ne fonctionne pas a priori sans d'autres explications.

Est-ce que la macro plante ?
Si oui quelle est la partie soulignée ?

Lorsque tu testes en mode pas à pas les fichiers commençant par wms passent-ils la ligne qui suit
Code:
If f Like "wms*" Then
ou le code va-t-il directement au End If qui précède Next f ?

A+
 
Re : Recherche fichier commençant par...

En fait lorsque je lance la macro rien ne se passe, ca ne plante pas mais ca ne recopie pas les fichiers.
Pour le pas à pas détaillé, lorsque je clique dessus ca me met Sub ButtonWMS() en surbrillance. Par contre je en sais pas comment executer l etape suivante en pas a pas.
 
Re : Recherche fichier commençant par...

Je ne vois pas ce que Sub ButtonWMS()...moi je te parle de la macro Sub Report().
Place ton curseur à l'intérieur de cette macro et appuie sur le bouton F8 de ton clavier : cela te permet de dérouler ta macro étape par étape (à chaque fois que tu appuie sur F8 tu avances d'une étape).
Fais ce que je t'ai suggéré dans mon précédent message et réponds à la question que je t'ai posée.
A+
 
Dernière édition:
Re : Recherche fichier commençant par...

Re
Fais progresser la macro en pas à pas jusqu'au End Sub.
Y-a-t-il au moins 1 fichier dont le nom commence par wms qui est traité par la partie située à l'intérieur de
Code:
Workbooks.Open MonRepertoire & f.Name
        Fichier_traité = ActiveWorkbook.Name
            For k = 1 To Sheets.Count ' on passe en revue chaque feuille du fichier traité
                Sheets(k).Activate
                DerLig_feuille_traitée = ActiveSheet.Range("A65536").End(xlUp).Row
                    If Range("A2") = "" Then
                        GoTo Etiquette
                    Else
                        Range("A2:IV" & DerLig_feuille_traitée).Copy Destination:=Workbooks("Résumév3.xls").Sheets("Résumév1").Range("A" & Workbooks("Résumév3.xls").Sheets("Résumév1").Range("A65536").End(xlUp).Row + 1)
                    End If
    
Etiquette:
              Workbooks(Fichier_traité).Activate
              
             Next 'prochaine feuille
        Workbooks(Fichier_traité).Close SaveChanges:=False
    End If
Autre possibilité de test plus simple et plus rapide : tu places un point d'arrêt (positionner le curseur au début de la ligne à tester et appuyer sur la touche F9) sur la ligne
Code:
Workbooks.Open MonRepertoire & f.Name
et un autre sur
Code:
End Sub
et tu lances la macro (touche F5) : la macro est stoppée par End Sub ou par le 1er point d'arrêt ?
A+
 
Re : Recherche fichier commençant par...

J'ai refait un copier coller de ton code à partir de la ligne concernée.
En testant F9 ca met un point violet et surbrillance meme couleur au niveau des deux lignes que tu m'as cité au dessus.
Lorsque je fais F5 rien ne bloque. mais rien ne se passe non plus.

Ci joint capture d'ecran pour comprendre. Le fichier gestion ruptures a un onglet WMS et la macro correspondant au bouton correspondant. Je t'ai fait aussi une capture de l'arbre c:\extractions reappro.

A+

Sub ButtonWMS()
Dim MonRepertoire As String, fso As Object, DerLig_feuille_traitée As Long, f As Object, Fichier_traité As String, k As Integer

Application.ScreenUpdating = False
Range("A2:IV65000").ClearContents

Set fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "C:\extractions reappro\"
For Each f In fso.GetFolder(MonRepertoire).Files ' on passe en revue tous les fichiers de ce dossiers
If f Like "wms*" Then
Workbooks.Open MonRepertoire & f.Name
Fichier_traité = ActiveWorkbook.Name
For k = 1 To Sheets.Count ' on passe en revue chaque feuille du fichier traité
Sheets(k).Activate
DerLig_feuille_traitée = ActiveSheet.Range("A65536").End(xlUp).Row
If Range("A2") = "" Then
GoTo Etiquette
Else
Range("A2:IV" & DerLig_feuille_traitée).Copy Destination:=Workbooks("gestion ruptures.xls").Sheets("WMS").Range("A" & Workbooks("gestion ruptures.xls").Sheets("WMS").Range("A65536").End(xlUp).Row + 1)
End If

Etiquette:
Workbooks(Fichier_traité).Activate

Next 'prochaine feuille
Workbooks(Fichier_traité).Close SaveChanges:=False
End If
Next f ' prochain fichier
End Sub
 

Pièces jointes

  • Capture.JPG
    27 KB · Affichages: 73
  • Gestion rupture.jpg
    26.2 KB · Affichages: 74
  • Capture.JPG
    27 KB · Affichages: 95
  • Capture.JPG
    27 KB · Affichages: 106
Re : Recherche fichier commençant par...

Avec la nouvelle ligne et ce que tu m'as dit de faire voilà ce que ca fait
 

Pièces jointes

  • Capture.jpg
    25.1 KB · Affichages: 69
  • Capture.jpg
    25.1 KB · Affichages: 63
  • Capture.jpg
    25.1 KB · Affichages: 52
Re : Recherche fichier commençant par...

Re

Fais ce que je t'ai indiqué au message #10 STP et dis-moi si la macro est stoppée par la phrase
Code:
Workbooks.Open MonRepertoire & f.Name
quand tu places un point d'arrêt sur cette phrase.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
409
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…