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 :

activer le mode "création de formulaire" dans une procédure


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Points : 43
    Points
    43
    Par défaut activer le mode "création de formulaire" dans une procédure
    Il est facil d'activer le mode "création de formulaire" en clickant sur l'icone qui ressemble à une équerre+crayon+règle. Y arrivez-vous avec une commande VBA ?
    (désolé si le bouton ne s'appelle pas comme ca, mais je suis en Allemagne, et le bouton s'appelle "entwurfsmodus", je pense pas que ca vous aide)

    Ce bouton magique permet de modifier les controles de formulaires (changer le nom de boutons, leur tailles, leur position, etc, etc). Certes, pour réaliser ces actions en VBA, je n'ai aucun besoin de l'activer.
    mais pour faire un copier-coller d'une zone avec des boutons, ca m'est indispensable. si le mode "création" n'est pas actif, il ne copie que les cellules.
    si le mode est activé, il copie les cellules et les boutons ...

    J'ai même remarqué pire : si on est en mode "création" et qu'on active une macro, on repasse en mode normal !

    Une idée ?

    je sens que je vais devoir programmer mon copie-colle de bouton automatique (avec re-positionnement de bouton bien là où attendu)

  2. #2
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    je m'auto-répond ou plutot "j'ai trouvé une solution":
    le code suivant copie-colle une zone avec toutes les formes incluses dedans 2 (nbCol) collonnes plus loin
    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
     
    Sub copieTout()
     
        addressCopie = "F9:G18"
        ' nb de colonne de décalage entre la zone copiée jusqu'à la zone collée
        nbCol = 2
        Range(addressCopie).Select
        Selection.Copy
     
        Cells(Range(addressCopie).row, Range(addressCopie).Cells(1, 1).Column + nbCol).Select
        ActiveSheet.Paste
     
        'boucle sur toutes les formes (shapes) de la feuille
        For Each forme In ActiveSheet.Shapes
            'vérifie que la forme est dans la zone que l'on copie
            If (Not Application.Intersect(forme.TopLeftCell, Range(addressCopie)) Is Nothing) Then
                Cells(forme.TopLeftCell.row, 1).Value = forme.Name
                Cells(forme.TopLeftCell.row, 2).Value = forme.TopLeftCell.Top
                forme.Copy
                'copie-colle la forme 2 colonne plus à droite
                Cells(forme.TopLeftCell.row, forme.TopLeftCell.Column + nbCol).Select
                ActiveSheet.Paste
            End If
        Next
    End Sub

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/09/2011, 19h35
  2. Réponses: 13
    Dernier message: 27/04/2011, 10h13
  3. Création affectation de parmètre dans une url
    Par bumbo500 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/11/2004, 16h39
  4. Création d'un Job déclenchant une Procédure stockée
    Par Drooxy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/04/2004, 17h34

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