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 :

Création dynamique d'un bouton de selection de zone d'impression sur une feuille déja existante.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Création dynamique d'un bouton de selection de zone d'impression sur une feuille déja existante.
    Bonjour,

    Dans le cadre de mon travail, je souhaite créer un bouton me permettant de redéfinir une zone d'impressions (dans le but de l'imprimer) en créant dynamiquement un bouton sur une feuille déjà créé.
    Or dans la FAQ, le seul exemple sur ce sujet impose la création d'une autre feuille.
    Voici mon code qui ne marche pas (Subscript out of range)
    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
    Sub moreprint()
        Dim Ws As Worksheet
        Dim Obj As OLEObject
        Dim laMacro As String
        Dim x As Integer
     
        'Ajout feuille
        Set Ws = Worksheets("Checklist of consumption")
     
        'Ajout CommandButton dans la feuille
        Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
        With Obj
            .Left = 500 'position horizontale
            .Top = 100 'position verticale
            .Width = 50 'largeur
            .Height = 30 'hauteur
            .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
            .Object.Caption = "print"
        End With
     
        'Paramètres pour la création de la macro:
        '(suppression contenu cellules)
        laMacro = "Sub CommandButton1_Click()" & vbCrLf
        laMacro = laMacro & "ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address" & vbCrLf
        laMacro = laMacro & "ActiveWindow.SelectedSheets.PrintPreview" & vbCrLf
        laMacro = laMacro & "End Sub"
     
        With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
            x = .CountOfLines + 1
            .InsertLines x, laMacro
        End With
    End Sub

    Merci de votre aide.

    Aureus Magnus

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Bonjour,

    C'est normal qu'il n'accepte pas ton code,

    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents(i)
    le paramètre (ici j'ai pris 'i') est forcément un identifiant:

    1 pour ThisWorkbook
    2 à x en pour le N° de feuille
    ensuite x+1 pour chaque module

    utilise ce code pour obtenir l'index de la feuille:


  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    OK,

    Merci pour la réponse.
    J'ai un peu bidouillé et ça marche.
    Je ne sais pas trop comment ni pourquoi, mais ça marche.

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

Discussions similaires

  1. Création dynamique d'un bouton sous intraweb ?
    Par julesclaude dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2009, 11h50
  2. [E-07] Création dynamique d'un bouton dans un graphique
    Par Harry Covair dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/02/2009, 05h55
  3. Création dynamique de ctrls Bouton
    Par Tommy57 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 10/10/2008, 10h33
  4. [VBA E] bouton dynamique sur une feuille
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2006, 18h05
  5. comment créer des boutons sur une feuille en utilisant eclipse
    Par ratamahatta dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/06/2006, 19h17

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