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 Insertion de CheckBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut VBA Insertion de CheckBox
    Bonjour tout le monde,

    J'aurais besoin de votre aide sur trois points.
    J'ai créé une macro pour inserer des CheckBox sur toutes les lignes d'un tableau.

    1°) Je l'ai fait avec un For et du coup c'est assez long car il y a plus de 1500lignes. Ne peut on pas le faire autrement (genre en selectionnant toutes les cellules d'un coup et en inserant toutes les checkbox en même temps ?)
    2°) J'aimerais qu'elles soient insérées en étant cochées (donc True), mais en placant un peu partout un valeur:=True ca n'a rien donné, comme puis-je faire ?
    3°) Dans la macro essai() je souhaite copié l'était (vrai ou faux) des checkbox de chaque ligne dans une colonne de chacune des ligne mais cette macro ne marche pas, j'ai du mal nommer les checkbox dans Checkbox() ou mal les appeler dans essai() mais en remuant le truc dans tous les sens je n'ai pas réussi à m'extirper....

    Merci par avance pour votre aide

    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
    Sub CheckBox()
    Dim t, l, i
     
         NbreLignes = Application.CountA(Range("Q1:Q65536")) + 3
         For i = 5 To 10
     
              Sheets(1).Activate
              Cells(i, 20).Select
              t = ActiveCell.Top
              l = ActiveCell.Left
              Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
                   DisplayAsIcon:=False, Left:=l + 30, Top:=t + 2, Width:=10, Height:=10 _
                   )
        Obj.Name = "Check" & i
     
          Next i
     
    End Sub
     
     
    Sub essai()
     
     
    For i = 5 To 10
     
    If "Check" & i.Value = True Then
    Cells(i, 25) = "OUI"
    Else
    Cells(i, 25) = "NON"
    End If
     
    Next i
     
    End Sub

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    Pour les initier a vrai tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         For i = 5 To 10
     
              Sheets(1).Activate
              Cells(i, 20).Select
              t = ActiveCell.Top
              l = ActiveCell.Left
              Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
                   DisplayAsIcon:=False, Left:=l + 30, Top:=t + 2, Width:=10, Height:=10 _
                   )
        Obj.Name = "Check" & i
        obj.value=true  'ceci devrais fonctionner
          Next i
    Pour la suite tu ne peux pas utiliser
    Il fat utiliser quelque chose comme controls("Check" & &i) mais je en me souvient plus de la syntaxe, le code a été donnée récemment pour un problème similaire fait une recherche sur le forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    Non ca ne marche pas, il me met une erreur :

    Erruer d'exécution '438':
    Propriété ou méthode non gérée par cet objet

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Surprenant bon désolé de mettre planté là je ne vois pas quoi faire d'autre.

    Pour ta deuxième question
    JE me disais bien que je l'avais déjà vu passer. Ucfoutu y avait répondu j'espère que ca t'ira je n'ai pas testé
    http://www.developpez.net/forums/d71...bjet-variable/
    Un deuxième lien sur le même principe
    http://www.developpez.net/forums/d75...l/soucis-code/

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Tomuscz l' ami krovax le forum
    peut être comme cela a tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=l + 30, Top:=t + 2, Width:=10, Height:=10)
    Obj.Name = "Check" & i
     Next i
     For Each Obj In ActiveSheet.OLEObjects
     If TypeOf Obj.Object Is MSForms.CheckBox Then
     Obj.Object = True
     End If
     Next Obj
    End Sub
    idem pour essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub essai()
      i = 5
     For Each Obj In ActiveSheet.OLEObjects
     If TypeOf Obj.Object Is MSForms.CheckBox Then
    If Obj.Object = True Then
    Cells(i, 25) = "OUI"
    Else
    Cells(i, 25) = "NON"
    End If: End If
     i = i + 1
     Next Obj
     End Sub

Discussions similaires

  1. [VBA]INSERT INTO et récupération d'id auto
    Par norkius dans le forum Access
    Réponses: 8
    Dernier message: 24/02/2013, 19h17
  2. [VBA - Excel]Concatenation checkbox/variable
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2006, 16h45
  3. VBA insert et numero automatique
    Par mikebranque dans le forum Access
    Réponses: 1
    Dernier message: 19/05/2006, 08h45
  4. [VBA-E]Probleme checkbox qui reste cochée
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2006, 11h39
  5. VBA : Insertion d'un saut de page dans WORD
    Par Actarus69 dans le forum VBA Word
    Réponses: 1
    Dernier message: 25/04/2006, 13h05

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