XL 2019 Compter le nb de Fichier dans un dossier afin de créer une nouvelle version

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 !

youguybass

XLDnaute Junior
Bonjour à tous
Je cherche à compter dans un dossier, le nb de fichier qui aurait les 12 premiers caractères identiques à une variable "NumCom" par exemple
Dans le dossier (en image) ci-dessous en exemple je voudrais que si je faisait une nouvelle version de la OUT 2027-016, celle-ci soit appelée OUT 2027-016 _ SNM Métal _ Version 6
Que si je créé une nouvelle commande OUT 2027-019 _ ToTo , cela me crée comme fichier OUT 2027-019 _ ToTo _ Version 1

D'avance merci

VB:
Sub CréatPDFCommande()
Dim NumCom As String, DosDépot As String, DosRacine As String, An%, Fournisseur, Indice

Fournisseur = Page17_2Commandes.ComboBox1

NumCom = TextBox26       ' Num Commande
An = Left(Split(NumCom, " ")(1), 4) 'Récupère l'année de la commande

DosRacine = "I:\Chevalerias\" ' // Peut-être à adapter
DosDépot = "Commandes " & An        ' // Nom du dossier de dépot voulu
Indice = 1

'***************************
'On Error Resume Next: ChDrive DosRacine: ChDir DosRacine & DosDépot
'If Err Then MkDir DosRacine & DosDépot: ChDir DosRacine & DosDépot

'Ci-dessus ou ci-dessous les 2 fonctionnent

Dim cheminDossier As String
cheminDossier = DosRacine & "\" & DosDépot  ' Assure le \ entre les deux

If Dir(cheminDossier, vbDirectory) = "" Then
    MkDir cheminDossier
End If
'*********************************

Dim CheminCommande As String
CheminCommande = cheminDossier & "\" & NumCom & " _ " & Fournisseur & " _ Version " & Indice & ".pdf"
'Indice = Left(Split(CheminCommande, " ")(1), 4)
Indice = Right(Split(CheminCommande, " ")(1), 1)

MsgBox Indice

If Dir(CheminCommande, vbDirectory) <> "" Then
    If MsgBox("Le PDF de cette commande existe déja" & Chr(10) & "Voulez vous l'écraser? ", vbYesNo + vbExclamation) = vbYes Then

        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DosRacine & DosDépot & "\" & NumCom & " _ " & Fournisseur & " _ Version " & Indice & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    Else
    
  If MsgBox("Voulez vous faire évoluer l'indice" & Chr(10) & "Blabla", vbYesNo + vbExclamation) = vbYes Then
    Indice = Indice + 1
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DosRacine & DosDépot & "\" & NumCom & " _ " & Fournisseur & " _ Version " & Indice & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
        Else: Exit Sub
        End If
    
    End If
 
    Else 'Pour créer les PDF s'il n'existe pas
    Indice = 1
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DosRacine & DosDépot & "\" & NumCom & " _ " & Fournisseur & " _ Version " & Indice & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
 
End If

    End Sub
image_2026-01-23_123922143.png
 
- 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 Problème macro
Réponses
4
Affichages
369
Réponses
3
Affichages
835
Réponses
10
Affichages
731
Réponses
6
Affichages
496
W
Retour