IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Nommer un fichier aléatoirement


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 18
    Points
    18
    Par défaut Nommer un fichier aléatoirement
    Bonjour,

    Voilà je pense que ma requête est assez simple, mais je n'y parviens pas.

    Dans Powerpoint (2007), j'ai une macro qui enregistre la slide actuelle, sur le bureau en PNG :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Commentez()
     
    ActivePresentation.Slides(1).Export _
    FileName:="C:\Users\Thibault\Desktop\1.png", FilterName:="PNG"
     
    End Sub
    Ca fonctionne très bien, sauf que je ne veux pas que mon fichier final s'appelle 1. Je veux qu'il soit composé de 6 chiffres aléatoires.
    Mon but est d'enregistrer des fichiers ayant des noms tels que 465973, 179442...

    Pouvez-vous m'aider svp ?

    Un grand merci !

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim NonAleaFichier
     
    function CreatNomFichier()
    dim T
    Randomize
     
    for T = 0 to 5
            CreatNomFichier = CreatNomFichier & cstr(Int((9 * Rnd) + 1))
    next
    CreatNomFichier = CreatNomFichier & ".PNG"
    end function
     
    NonAleaFichier = CreatNomFichier
    msgbox NonAleaFichier
    Reste à vérifier si ce non de fichier n'existe pas avant de l'utiliser.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Hey merci ! Ca m'a l'air super ! Tu peux juste me dire comment je combine ton code au mien ? J'y arrive pas !
    Parce que ton code tout seul ne fonctionne pas !

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Re
    Parce que ton code tout seul ne fonctionne pas !
    je comprend pas ce que tu veux dire par là, ce qui est sûr c'est que le code proposé ne fait qu'afficher un nom de fichier composé de 6 chiffre aléatoire.

    Pour l'utiliser dans ton code, cela devrait donner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function CreatNomFichier(DossDest)
    dim T
    Randomize
    for T = 0 to 5
            CreatNomFichier = CreatNomFichier & cstr(Int((9 * Rnd) + 1))
    next
    CreatNomFichier = DossDest & CreatNomFichier & ".PNG"
    if FichierExiste(CreatNomFichier) = True then CreatNomFichier(DossDest)'recommencer le tirage aléatoire
    end function
     
    function FichierExiste(ChemDoss) ' le fichier existe t'il
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    FichierExiste = oFSO.FileExists(CreatNomFichier)
    Set oFSO = NotHing
    end fucntion
     
     
    Sub Commentez()
    Dim NonAleaFichier
    NonAleaFichier = CreatNomFichier("C:\Users\Thibault\Desktop\")
    'ActivePresentation.Slides(1).Export _
    'FileName:="C:\Users\Thibault\Desktop\1.png", FilterName:="PNG"
     
    ActivePresentation.Slides(1).Export _
    FileName:=NonAleaFichier, FilterName:="PNG"
     
    end sub
    Question importante, tu veux faire cela en VBSCript ou en VBA dans Powerpoint (2007)?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Pourquoi poster ailleurs ? et surtout ne pas y revenir !

    Salut, pourquoi ne pas utiliser une fonction comme celle-ci, qui pour un fichier nommé par exemple "Fusion", s'il existe déjà, nommera le second "Fusion(001)" le 3eme "Fusion(002)" etc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Function RenommerFichier(sDossier As String, sNomfichier As String) As String
    Dim sNouveauNom As String
    Dim sPre As String, sExt As String
    Dim i As Long
    Dim FSO As Object
     
     
       Set FSO = CreateObject("Scripting.FileSystemObject" )
        If FSO.FileExists(sDossier & "\" & sNomfichier) Then
            sNouveauNom = sNomfichier
            sPre = FSO.GetBaseName(sNomfichier)
            sExt = FSO.GetExtensionName(sNomfichier)
     
     
            i = 0
            While FSO.FileExists(sDossier & "\" & sNouveauNom)
                i = i + 1
                sNouveauNom = sPre & Chr(40) & Format(i, "000" ) & Chr(41) & Chr(46) & sExt
            Wend
            sNomfichier = sNouveauNom
        End If
        Set FSO = Nothing
     
     
       RenommerFichier = sDossier & "\" & sNomfichier
    End Function
    Un exemple, qui n'a rien à voir avec ton fichier, mais permet de voir l'usage de cette fonction.

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Bonjour kiki29

    La question étant posée dans le forum VBScript, je ne sais pas si le demandeur sait que les variables ne doivent pas être typée ou non.

    La fonction Format n'existe pas en VbScript mais il y a FormatNumer qui ne sera pas utile dans ce contexte puisque les "00" précèdent la valeur de i.

    Une astuce pour contourner le problème : sNouveauNom = sPre & Chr(40) & Right("000" & Cstr(i), 3) & Chr(41) & Chr(46) & sExt
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

Discussions similaires

  1. Nommer le fichier PDF avec un Response.BinaryWrite() c#
    Par alexfayard dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/10/2008, 10h44
  2. Nommer un fichier Excel
    Par tsharlz dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/12/2006, 16h26
  3. [FLASH MX] Chargement de fichiers aléatoirement
    Par leanita dans le forum Flash
    Réponses: 2
    Dernier message: 15/05/2006, 13h06
  4. nommer un fichier texte avec la date du jour
    Par avantoux dans le forum Windows
    Réponses: 4
    Dernier message: 02/02/2006, 09h57
  5. Nommer un fichier de manière intéractive
    Par sducos81 dans le forum C++
    Réponses: 2
    Dernier message: 27/09/2005, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo