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

Macros et VBA Excel Discussion :

Enregistrer dans un dossier qui comporte le nom d'une cellule variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Qualité
    Inscrit en
    Août 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Qualité

    Informations forums :
    Inscription : Août 2024
    Messages : 10
    Par défaut Enregistrer dans un dossier qui comporte le nom d'une cellule variable
    Bonjour,

    Voici un petit moment que je galère sur ma macro "savesheet", qui consiste à (au moment du click sur le bouton) :
    A - créer un dossier portant le nom de la cellule O19 - fonctionne
    B - exporter la copie Excel de ce fichier, reprenant le nom de la cellule O20 dans le dossier créer en A - fonctionne
    C - exporter la feuille en PDF, reprenant aussi le nom de la cellule O20 , toujours dans ce même dossier - fonctionne
    D - enregistrer une image issue d'une plage de cellule dans ce même dossier - fonctionne partiellement

    Pourquoi "fonctionne partiellement" ? je m'explique
    L'image que je crée, issue d'une plage de cellule s'enregistre bien, mais dans le répertoire ou se trouve mon fichier Excel parent.
    Or je souhaite l'enregistrer dans le dossier créée en debut de macro, reprennant la valeur de la cellule 019.
    019 et une cellule qui s'incrémente à chaque "Clear" du fichier (fonction avec bouton)

    on Obtiens donc un dossier par enregistrement avec normalement 3 fichiers à l'intérieure :
    - la copie excel
    - le PDF
    - l'image ou les images.

    Sauf qu'a ce jour, je ne parviens pas a mettre l'image dans mon dossier.
    un petit coup de main serait le bienvenue

    le code
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Const Repert As String = "W:\Quality Management\Soumissions"
    Sub Save_sheet()
    Dim SousRep$, sPath$
    ActiveSheet.Unprotect
    SousRep = Range("O19").Text
    sPath = Repert & SousRep
    'Teste si le repertoire existe sinon creation
    If Len(Dir(sPath, vbDirectory)) = 0 Then
    MkDir sPath
    End If
    'sauvegarde du fichier Excel
    ActiveWorkbook.SaveCopyAs sPath & "" & Range("O20").Value & ".xls"
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & "" & Range("O20").Value, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
    End Sub
     
    Sub KopImg()
    Dim MyChart As Chart, NomImage As String
    'Récupération du texte d'une cellule ou d'un nom prédéfini pour l'image
    NomImage = Range("O21").Text
    'Copie des cellules cible selon tableau. A adapter selon besoin
    Range("F18:J30").CopyPicture Appearance:=xlScreen, Format:=xlPicture
    'Copier l'image selon nom souhaité avec mensurations
    ActiveSheet.Paste: Selection.Name = NomImage
    Haut = ActiveSheet.Shapes(NomImage).Height
    Large = ActiveSheet.Shapes(NomImage).Width
    'Copie sur l'ordinateur à adapter. Ici sur dossier Bureau avec le nom de l'image
    chemin = "W:\Quality Management\Soumissions" & "" & NomImage & ".jpg"
    With ActiveSheet
     
    Set MyChart = .ChartObjects.Add(0, 0, Large, Haut).Chart
        'Réalise l'export avec l'objet Chart puis supprime ce dernier
        With MyChart
            .Parent.Activate
            .ChartArea.Format.Line.Visible = msoFalse 'Ligne du cadre non visible
            .Paste
            .Export Filename:=chemin
            .Parent.Delete
        End With
    End With
      Set MyChart = Nothing
      ActiveSheet.Shapes(NomImage).Delete
    Range("B2").Select 'Ou tout autre cellule
     
    End Sub

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 308
    Par défaut
    Hello,

    dans la macro Save_sheet le chemin de sauvegarde est "W:\Quality Management\Soumissions" et le contenu de la cellule O19 (en espérant qu'il y ait un \ avant le nom)
    Dans la macro KopImg le chemin est W:\Quality Management\Soumissions" & "" donc il manque le contenu de O19


    NB : vous avez oublié de déclarer Haut, Large et Chemin dans KopImg et je vous conseille d'ajouter tout au début du module Option Explicit ça permet d'éviter pas mal d'erreurs bêtes

  3. #3
    Membre du Club
    Homme Profil pro
    Qualité
    Inscrit en
    Août 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Qualité

    Informations forums :
    Inscription : Août 2024
    Messages : 10
    Par défaut
    Bonjour Nain Porte koi

    Merci pour ta réponse.
    J'ai regardé d'après ta remarque, mais toujours dans l'impasse avec mon image.
    Elle s'enregistre dans le dossier général mais ne suit pas ses copains Excel et PDF.

    Tu pourrais me faire voir quel modification tu apporterais au niveau du code ?
    je boque la.

    Merci beaucoup

  4. #4
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 308
    Par défaut
    remplacez la ligne 31 par
    chemin = "W:\Quality Management\Soumissions" & Range("O19").text & NomImage & ".jpg"
    Sous condition que O19 contienne \nom du dossier\ sinon il faut ajouter des \ avant et après

  5. #5
    Membre du Club
    Homme Profil pro
    Qualité
    Inscrit en
    Août 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Qualité

    Informations forums :
    Inscription : Août 2024
    Messages : 10
    Par défaut
    alors hélas la photo ne se sauvegarde plus du tout, pourtant en lisant votre code, je vois rien qui cloche.
    Il me semble même que je l'avais testé...

    Je vais gratter encore un peu, car j'ai un autre fichier plus gros encore que je devrais faire tourner sur la même logique.
    Merci

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 308
    Par défaut
    Que voyez vous, quand vous lancez la macro, si ajoutez MsgBox chemin sous la ligne 31 ?

Discussions similaires

  1. accéder à des fichiers dans un dossier sans connaitre leurs noms
    Par mkachekh dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/03/2010, 14h27
  2. Réponses: 2
    Dernier message: 23/12/2009, 13h05
  3. enregistrer dans un dossier
    Par niassa dans le forum ASP.NET
    Réponses: 1
    Dernier message: 12/05/2009, 17h39
  4. Réponses: 7
    Dernier message: 15/03/2009, 17h07
  5. ouvrir un PDF et enregistrer dans un dossier
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/03/2008, 20h32

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