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 :

[VBA-Excel] Macro Création Case à cocher


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 57
    Par défaut
    Bonjour,
    J'ai un problème depuis une journée sur une macro qui me permettrait de compléter un document avec 200 onglets.
    Il faut que je rajoute deux cases à cocher dans chaque onglet.
    Donc je me suis dit pourquoi pas faire un nouvelle macro qui ferais les 200 onglets vite fait (le contenu des onglets sont les mêmes)
    Puis après il faut que je lie chaque case sur un document de rapport :
    Par exemple Onglet 1 :
    -Case a cocher 1 -> liés a la case I2
    -Case a cocher 2 -> liés a la case J2
    Onglet 2
    -Case a cocher 3 -> liés a la case I3
    -Case a cocher 4 -> liés a la case J3
    Etc ..

    Voici le début de mon 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
    Sub Case_cocher()
     
    For i = 1 To 200
     
        Sheets("" & i).Select
        ActiveSheet.CheckBoxes.Add(456, 16.5, 51, 24).Select
        ActiveSheet.Shapes("Check Box " & j).Select
        Selection.Characters.Text = "Nouveau Domaine"
        Selection.ShapeRange.ScaleWidth 1.97, msoFalse, msoScaleFromTopLeft
     
        With Selection
            .Value = xlOff
            .LinkedCell = "Récap!$J$" & i
            .Display3DShading = False
        End With
     
    Next i
     
     
    For j = 1 To 2000
     
        Sheets("" & j).Select
        ActiveSheet.CheckBoxes.Add(591.75, 14.25, 85.5, 30).Select
        ActiveSheet.Shapes("Check Box " & j).Select
        Selection.Characters.Text = "Domaine Renégocié"
        Selection.ShapeRange.ScaleWidth 1.24, msoFalse, msoScaleFromTopLeft
     
        With Selection
            .Value = xlOff
            .LinkedCell = "Récap!$K$" & j
            .Display3DShading = False
         End With
     
    Next j
     
    End Sub
    J'ai déjà une erreur de compilation sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.CheckBoxes.Add(456, 16.5, 51, 24).Select
    Merci d’avance pour vôtre aide

    Personne ne peut m'aider ?

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il faut éviter les select, activeSheet....selection ...qui sont des source d'erreurs...écrit plutôt un truc du genre !

    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
     
    Dim chk As CheckBox
    For i = 1 To 200
     
       Set chk = Sheets(i).CheckBoxes.Add(456, 16.5, 51, 24)
       With chk
            .Text = "Nouveau Domaine"
            .ShapeRange.ScaleWidth 1.97, msoFalse, msoScaleFromTopLeft
            .Value = xlOff
            .LinkedCell = "Récap!$J$" & i
            .Display3DShading = False
        End With
       Set chk = Sheets(i).CheckBoxes.Add(591.75, 14.25, 85.5, 30)
       With chk
            .Text = "Domaine Renégocié"
            .ShapeRange.ScaleWidth 1.24, msoFalse, msoScaleFromTopLeft
            .Value = xlOff
            .LinkedCell = "Récap!$k$" & i
            .Display3DShading = False
        End With
    Next
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 57
    Par défaut
    erreur d'éxecutions 1004 sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set chk = Sheets(i).CheckBoxes.Add(456, 16.5, 51, 24)
    Impossible de lire la propriété Add de la Classe Checkboxes

    Même genre d'erreur que tout à l'heure.

    En tout cas merci pour ton aide.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et dans ton classeur tu n'as que des feuilles de calculs ( pas des graphiques...? ou feuille de dialogue Excel 5.0)...?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 57
    Par défaut
    Le classeur ce présente ainsi :

    Un Onglet Récap qui récapitule tout ce qui est présent dans les autres onglets.

    Puis 200 onglets numérotés de 1 à 200 :
    Dans ces onglets, titre Action 1 à 200.
    Dan chaque onglets il n'y a que des calculs qui sont liés à la feuille Récap.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    essai de voir la valeur de i au moment du plantage... par exemple en rajoutant .. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    debug.print "Traitement " & i & " .. feuille : " & sheets(i).name
     
    Set chk = Sheets(i).CheckBoxes.Add(456, 16.5, 51, 24)
    puis aprés le l'arrêt voir les messages dans fenêtre exécution (CTRL G)

Discussions similaires

  1. [XL-2013] Besoin d'aide VBA Excel sur les cases a cocher
    Par Mel_38 dans le forum Excel
    Réponses: 4
    Dernier message: 16/05/2014, 15h02
  2. VBA sous excel - Macro - Création de feuilles à partir d'une liste
    Par Sylione dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 09h42
  3. [VBA-Excel] Macro de mise à jour de Report
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 13/07/2006, 11h23
  4. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  5. [VBA] Excel + macro + aléatoire
    Par spopo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2006, 15h42

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