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 :

Décalage lors de la créationde check Box dynamique


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
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut Décalage lors de la créationde check Box dynamique
    Bonjour,

    J'ai un petit soucis avec une de mes fonctions.

    Mon but est de créé une ligne et d'insérer un check Box dansune des cases.
    Pour le moment,je pars du principe suivant :

    Je compte le nombre de check box de chaque ligne a partir de la ligne 5 et je fait la somme de la hauteur de tout les lignes jusqu'a celle ou je veux créer ma ligne avec mon check box. Une fois cela fait, j'insère le check box avec les propriétés top , left et hight.

    Voici le 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
     
    Dim compteur As Integer
    Dim adresse As String
    compteur = 6
    Dim Obj As OLEObject
    Dim hauteur As Long
    hauteur = 0
    Dim LeftBox As Integer
     
    For Each Obj In ActiveSheet.OLEObjects
        If TypeName(Obj.Object) = "CheckBox" Then
            compteur = compteur + 1
            LeftBox = Obj.Left
        End If
    Next
     
    For i = 1 To compteur - 1
    hauteur = hauteur + ActiveSheet.Rows(i).Height
    Next i
     
    adresse = "A" & compteur & ":I" & compteur
    Range(adresse).Select
        Selection.Borders.LineStyle = xlContinuous
        ActiveSheet.Cells(compteur, 1).Interior.ColorIndex = 34
        ActiveSheet.Cells(compteur, 5).Interior.ColorIndex = 45
        ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=LeftBox, Top:=hauteur, Width:=108, Height:=9.75).Select
    Mon soucis est qu'au bout de la 3ème fois que je clique sur le bouton je commence a avoir un déclage sur le positionnement du check box ( il va de plus en plus bas )

    Ca viens sans doute d'une erreur de mon code, mais je ne vois pas ou.


    Ensuite, j'aimerais savoir si il existe une fonction sous Excel qui me permet d'insérer une check box dans une case. ( ca m'arranger beaucoup ^^ )

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Tu peux tester cette adaptation


    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
    Dim Compteur As Integer, i As Integer
    Dim Adresse As String
    Dim Obj As OLEObject
    Dim Hauteur As Single, LeftBox As Single
     
    Compteur = 6
     
    For Each Obj In ActiveSheet.OLEObjects
        If TypeName(Obj.Object) = "CheckBox" Then
            Compteur = Compteur + 1
            LeftBox = Obj.Left
        End If
    Next
     
    Hauteur = ActiveSheet.Cells(Compteur, 1).Top
     
    Adresse = "A" & Compteur & ":I" & Compteur
    ActiveSheet.Range(Adresse).Borders.LineStyle = xlContinuous
    ActiveSheet.Cells(Compteur, 1).Interior.ColorIndex = 34
    ActiveSheet.Cells(Compteur, 5).Interior.ColorIndex = 45
     
    ActiveSheet.OLEObjects.Add ClassType:="Forms.CheckBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=LeftBox, Top:=Hauteur, _
        Width:=108, Height:=ActiveSheet.Cells(Compteur, 1).Height '9.75


    michel

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut
    Parfait , ca marche largement mieux ( rapidité incluse )

    ca venait d'ou ?

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

Discussions similaires

  1. [Javascript] probleme de check box
    Par stomerfull dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2006, 07h09
  2. [Tableaux] combo box dynamique
    Par macmac dans le forum Langage
    Réponses: 27
    Dernier message: 07/12/2005, 18h10
  3. eVC++ 4 : check box transparente
    Par zenetcalme dans le forum MFC
    Réponses: 10
    Dernier message: 29/11/2005, 09h11
  4. cocher tout les check box
    Par Flob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/02/2005, 10h29
  5. [FLASH 5] check box sous Flash 5
    Par Flash5man dans le forum Flash
    Réponses: 7
    Dernier message: 01/09/2004, 08h48

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