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

Excel Discussion :

Créer un dossier sous le nom d'une cellule fixe [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Créer un dossier sous le nom d'une cellule fixe
    Bonjour,

    Tout d'abord, je voulais vous prévenir que je débute en VBA et sur developpez.com donc je m'excuse par avance si vous ne comprenez pas tout de suite le but de ma demande

    Néanmoins, je vais essaie d'être précis:

    Je voudrais savoir si il est possible de créer une macro sur un bouton pour pouvoir créer en cliquant dessus
    Premièrement : Créer un dossier nommer par une cellule (ex:F7)
    Deuxièmement : Enregistrer le classeur xls nommer par une cellule (ex:F7) dans ce dossier
    Troisièmement : Enregistrer la feuille 1 en pdf sous un nom de deux cellules + "CLT" dans ce dossier

    Actuellement j'ai réussit à moitié car je n'est pas réussit à nommer le dossier et j'ai un problème lors du ré-enregistrement avec le même bouton on me re-crée un dossier dans le premier dossier

    Voila ma macro actuelle :
    Sub CLT_PDF()
    MkDir ThisWorkbook.Path & "\A renommer"
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & ActiveSheet.[F7] & ".xls"
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & ActiveSheet.[F7] & " CLT " & ActiveSheet.[E14] & ".pdf"
    End Sub

    Merci d'avance à tous !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut et bienvenue sur developpez !

    Tout d'abord, n'oublie pas, lorsque tu écris un message, de mettre ton code dans les balises CODE, de façon à avoir une meilleure lisibilité pour ceux qui essayent de t'aider


    Dans ton énoncé, il y a déjà une incohérence : le nom de ton classeur et ton dossier sont dans la même cellule (F7) ? ça va être difficile ? à moins que ton nom de classeur et le même nom que le dossier ?

    Sinon, pour répondre àt on besoin, je reprend ta macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub CLT_PDF()
    MkDir ThisWorkbook.Path & "\" & range("F7").value
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & range("F7").value & ".xls"
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & ActiveSheet.[F7] & " CLT " & ActiveSheet.[E14] & ".pdf"
    End Sub
    Par contre, je te conseille, avant de créer ton dossier de vérifier s'il existe. Tu peux le faire à l'aide de cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Function Rep_exists(ByRef Repertoire As String) As Boolean
        On Error Resume Next
        Rep_exists = CBool(GetAttr(Repertoire) And vbDirectory)
    End Function
    Du coup, ton code donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub CLT_PDF()
    REP = ThisWorkbook.Path & "\" & range("F7").value & "\"
    If Not Rep_exists(REP) Then
       MkDir (REPREP )
    End If
    ThisWorkbook.SaveCopyAs REP  & range("F7").value & ".xls"
    ThisWorkbook.SaveCopyAs REP  & range("F7").value & " CLT " &  range("E14").value & ".pdf"
    End Sub
    Par contre, pour le PDF, je te laisse voir, ne connaissant pas parfaitement cette commande, mais l'enregistreur de macro devrait t'aider à savoir quoi écrire

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Tout d'abord merci, car le dossier prend bien le nom de la cellule comme voulut néanmoins le fichier excel et pdf ne se range pas dans ce même dossier avec ta première macro et la troisième blocs sur la compilation de " Rep_exists(REP)"

    Et pour répondre à ton interrogation le fichier xls et pdf porte le même nom car cela constitue le dossier de mon client en gros je développe un devis automatiser par excel pas facile

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Sub CLT_PDF()
    MkDir ThisWorkbook.Path & "\" & range("F7").value
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & range("F7").value & ".xls"
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\A renommer\" & ActiveSheet.[F7] & " CLT " & ActiveSheet.[E14] & ".pdf"
    End Sub

    C'est bon j'ai réussi j'ai repris ta première requête et j'ai remplacé "\A renommer\" par "\" & Range("F7").Value & "\" et c'est parfait !!!!

    Merci beaucoup pour ton aide car ça faisait déjà 4 jours de combat, ça fait plaisir l'aide des professionnel

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    3 choses :
    - il faut que la fonction Rep_exists que tu la mette dans ton module, sinon effectivement la fonction ne sera pas reconnue
    - si ton problème est réglé, n'oublie pas de cliquer sur le bouton résolu !
    - si une réponse à répondu à ton besoin, n'oublie pas de cliquer sur la petite main verte

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Merci beaucoup pour ton aide car ça faisait déjà 4 jours de combat, ça fait plaisir l'aide des professionnel
    et
    si une réponse à répondu à ton besoin, n'oublie pas de cliquer sur la petite main verte
    eh oui, je viens de le rappeler à deux reprises sur d'autres sujets
    Oui, mais vous oubliez un peu trop souvent les encouragements se traduisant par un click sur en bas du message de celui qui vous a favorablement répondu, en l'occurence, ici llight

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un dossier sous Picasa
    Par laurentSc dans le forum Imagerie
    Réponses: 0
    Dernier message: 28/11/2008, 19h09
  2. enregistrer sous le nom d'une cellule
    Par lebeniste dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 04/04/2008, 22h46
  3. sauvegarder un fichier sous le nom d'une cellule
    Par Jonathan Raucy dans le forum Excel
    Réponses: 2
    Dernier message: 06/02/2008, 00h55
  4. Créer un dossier sous SQL
    Par cedeym dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/05/2007, 17h00
  5. créer classeur Excel portant le nom d'une ComboBox
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/12/2006, 10h01

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