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 :

Export d'un tableau de taille variable sous forme d'image.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut Export d'un tableau de taille variable sous forme d'image.
    Bonjour à tous,

    Je viens vers vous car j'ai un petit soucis.
    J'ai le tableau ci-dessous, un diagramme de gantt se générant en fonction des durées renseignées.

    Suivant la durée du projet, le nombre de tache mon tableau est différents .

    Nom : Tableau_export.PNG
Affichages : 357
Taille : 51,7 Ko
    J'aimerai cependant qu'il s'adapte toujours au format une page j'ai testé un sub impression

    j'ai tenté un sub impression

    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
    Sub impression()
    Dim MyValue As Byte
    MyValue = MsgBox("Voulez vous imprimer ?", vbYesNo + vbDefaultButton1)
    If MyValue = vbNo Then Exit Sub
     
    With ActiveSheet
    .PageSetup.PrintArea = "$A$1:$W$" & .[W65000].End(xlUp).Row
    With .PageSetup
    .PaperSize = xlPaperA4
    .Orientation = xlLandscape '
    .FitToPagesWide = 1
    .FitToPagesTall = True
    .BlackAndWhite = True
    .Zoom = 71
    End With
    .PrintOut Copies:=1
    End With
     
    End Sub
    Il ne me donne absolument pas satisfaction...
    Je n'ai également pas trouvé de collage spéciale .... si vos lumières peuvent me guider ...
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    que se passera-t-il lorsque tu auras par exemple 25 tâches ? tu auras toujours une seule feuille ou plusieurs ?

    As-tu fait des essais manuellement en utilisant l'enregistreur de macros ? Cela devrait déjà te fournir des pistes intéressantes sur les valeurs que tu fournis dans ton pagesetup
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Bonjour Jean-Philippe,

    Je viens d'avoir une évolution dans mon projet suite à remarque de mon supérieur.

    Il voudrait une étape intermédiaire pour mettre en forme mon tableau
    voir schéma du besoin ci-dessous

    Nom : étude du besoin.png
Affichages : 275
Taille : 4,8 Ko

    j'ai donc réaliser une petite macro pour faire le collage ( via le générateur de macro) et j'ai essayé de supprimer les select ( Vu sur un tuto du forum )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub paste()
    '
    Worksheets("Masque").Activate 'J'active ma feuille ou il a le tableau
     
      Range("A3:AV7").Copy ' Je copie mon tableau : Question Comment faire une range variable
     
        Worksheets("FINAL").Activate ' J'active la feuille Final
        Range("B12").Select ' Je colle sur une cellule aléatoire:  question peut on définir préalablement un encart pour un dimensionnement
        ActiveSheet.Pictures.paste.Select
        ActiveSheet.Shapes.Range(Array("Picture 3")).Select
     
    End Sub
    Concernant vos interrogations
    que se passera-t-il lorsque tu auras par exemple 25 tâches ? tu auras toujours une seule feuille ou plusieurs ?
    L'idéal serait de faire sur 1 feuille format A4 et A3 si ça dépasse X tache ( généralement maxi 20 opérations de fabrications). La durée ( nombre de semaine affiché risque d'être plus problématique car je peux avoir des projets jusqu'à 50 semaines.


    J'ai inclus mes question en remarque dans le code à savoir:
    - Comment faire une range variable
    - peut on définir préalablement un encart pour un dimensionnement


    PS: Petit up

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Petit Up,


    J'ai fais quelques test aujourd'hui
    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
     
     
    Sub paste()
    '
    'Activate 'J'active ma feuille ou il a le tableau
     
     
     
       Worksheets("Masque").Range("A3", ActiveCell.SpecialCells(xlLastCell)).Copy
     
       ' Activate ' J'active la feuille Final
     
    '  Sheets("Masque").Range("A3", ActiveCell.SpecialCells(xlLastCell)).Copy Destination:=Sheets("FINAL").Range("B12")  (le code ne marche pas car j'ai besoin d'un collage spéciale sous forme d'image) 
     
        Worksheets("FINAL").Activate
        Cells(12, 2).Select ' Selection de B12
        ActiveSheet.Pictures.paste
     
    End Sub
    Personne pour m'aider sur les problématique ci-dessus Merci d'avance

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Update,

    Nouvelle essai j'arrive presque à mon but .

    voici le code que je saisie
    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
    Sub paste()
    '
    'Activate 'J'active ma feuille ou il a le tableau
     
      Worksheets("Masque").Activate ' Systématiquement rediriger vers la feuille Masque
      Worksheets("Masque").Range("A3", ActiveCell.SpecialCells(xlLastCell)).Copy  ' Copie du tableau complet
     
     
        Worksheets("FINAL").Activate
        Cells(43, 2).Select ' Selection de B43
        ActiveSheet.Pictures.paste
        '
        ActiveSheet.Shapes.Range(Array("Picture 11")).Select ' Je selectionne mon image 
        Selection.ShapeRange.ScaleWidth 2.3, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 2.3, msoFalse, msoScaleFromTopLeft
     
    End Sub
    Comme vous le remarquerai j'ai fait la dernière partie à l’enregistreur de macro.
    Quelques interrogations subsiste néanmoins.
    Comment faire pour sélectionner la bonne image à coup sur ? La nous voyons que c'est l'image 11. Mais si je supprime cette image je refais une itération de ma macro il y aura une erreur si je ne mets pas 12.
    Comment ajuster au mieux la taille de l'image en fonction de la place dispo ? là j'ai choisis 2.3 après p

    Ci dessous un screen de que j'obtiens,


    Nom : Dev.PNG
Affichages : 259
Taille : 28,5 Ko


    Merci d'avance pour votre aide

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    tu as la possibilité de passer par une variable qui s'incrémente, ou sinon voir si le Shapes.Count est probant, mais je pense plus èa passer par une variable que tu set, ca fait plus propre

    Concernant les 2.3, ca reste du cosmétique, donc pas objectif ^^
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/01/2019, 10h03
  2. [Conception] tableau de taille variable
    Par salirose dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 21/10/2006, 13h53
  3. Réponses: 2
    Dernier message: 15/10/2006, 10h27
  4. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  5. [TP] Tableau de taille variable
    Par Ripley dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/01/2006, 15h36

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