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 :

Probleme cellule liée checkbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Par défaut Probleme cellule liée checkbox
    Bonjour le forum,

    J'ai une macro qui crée automatiquement des checkbox comme je le veux.
    J'ai un probleme avec les cellules liées à ces checkbox, celles qui renvoient la valeur VRAI, FAUX, je n'arrive pas à les placer là ou je le veux.
    Voila 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
    37
    38
    Sub AjouteCheckBox()
        Dim Box As CheckBox
        Dim Cpt As Integer, LigDeb As Integer, LigFin As Integer, LigLiee As Integer
        Dim ColonneBox As String, ColLiee As String, ColDeb As String, ColFin As String
     
        LigDeb = 13
        LigFin = 29
        ColDeb = 4
        ColFin = 10
    ColLiee = "L"
     
        Application.ScreenUpdating = False
        With ActiveSheet
     
       For Col = ColDeb To ColFin
            For Cpt = LigDeb To LigFin
                If .Rows(Cpt).RowHeight < 13.5 Then
                    .Rows(Cpt).RowHeight = 13.5
                End If
     
    Set Box = .CheckBoxes.Add((.Cells(Cpt, Col).Left + (.Cells(Cpt, Col).Width) / 2) - 8.25, .Cells(Cpt, Col).Top - 1, 0, 0)
     
                With Box
                    .Name = "CheckBoxCol" & Col & "Lig" & Format(Cpt, "000")
                    .Height = 16.5
                    .Width = 16.5
                    .Characters.Text = ""
                    .LinkedCell = ColLiee & Cpt
                End With
                Cpt = Cpt + 3
     
            Next Cpt
     
        Next Col
     
        End With
        Application.ScreenUpdating = True
    End Sub
    Tout se joue sur la ligne .LinkedCell.
    Pour l'instant toutes les checkbox situées sur la même ligne sont reliées à la même cellule.
    J'aimerais que chaque checkbox soit liées à la cellule qui est directement en dessous d'elle, mais voila je n'y arrive pas.

    Merci pour votre aide

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Sans avoir testé... essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim ADD as string
    ADD = (.Cells(Cpt, Col).Left + (.Cells(Cpt, Col).Width) / 2) - 8.25, .Cells(Cpt, Col).address
     
    Set Box = .CheckBoxes.Add(Range(ADD),Top - 1, 0, 0)
     
                With Box
                    .Name = "CheckBoxCol" & Col & "Lig" & Format(Cpt, "000")
                    .Height = 16.5
                    .Width = 16.5
                    .Characters.Text = ""
                    .LinkedCell = ADD
                End With
    Ou au moins quelque chose dans le genre.
    Y a peut-être des erreur de parenthèses.
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Par défaut
    Re et merci pour la réponse

    Sur cette ligne il y une erreur de syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ADD = (.Cells(Cpt, Col).Left + (.Cells(Cpt, Col).Width) / 2) - 8.25 , .Cells(Cpt, Col)
    sur la virgule apres le 8.25.

    J'ai mis un & mais peut etre que ça change le sens.

    puis apres la macro stoppe sur la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set Box = .CheckBoxes.ADD(Range(ADD).Top - 1, 0, 0)
    La méthode Range de l'objet global a échoué.

    Puis je ne comprends pas ton code. ADD prend la valeur d'un chiffre, donc Linkedcell ne comprendra?

    Peux tu m'éclairer

    Merci bcp

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Par défaut
    C'est bon, grace au code de LeForestier j'ai trouvé.

    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
    37
    38
    39
    40
    41
    42
    Sub AjouteCheckBox()
        Dim Box As CheckBox
        Dim Cpt As Integer, LigDeb As Integer, LigFin As Integer, LigLiee As Integer
        Dim ColonneBox As String, ColLiee As String, ColDeb As String, ColFin As String
     
     
        LigDeb = 13
        LigFin = 29
        ColDeb = 4
        ColFin = 10
     
     
        Application.ScreenUpdating = False
        With ActiveSheet
     
       For Col = ColDeb To ColFin
            For Cpt = LigDeb To LigFin
                If .Rows(Cpt).RowHeight < 13.5 Then
                    .Rows(Cpt).RowHeight = 13.5
                End If
     
    LigLiee = Cpt + 1
    LIG = .Cells(LigLiee, Col).Address
     
    Set Box = .CheckBoxes.ADD((.Cells(Cpt, Col).Left + (.Cells(Cpt, Col).Width) / 2) - 8.25, .Cells(Cpt, Col).Top - 1, 0, 0)
     
                With Box
                    .Name = "CheckBoxCol" & Col & "Lig" & Format(Cpt, "000")
                    .Height = 16.5
                    .Width = 16.5
                    .Characters.Text = ""
                    .LinkedCell = LIG
                End With
                Cpt = Cpt + 3
     
            Next Cpt
     
        Next Col
     
        End With
        Application.ScreenUpdating = True
    End Sub
    Donc j'ai rajouté ces 2 lignes et tout marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LigLiee = Cpt + 1
    LIG = .Cells(LigLiee, Col).Address
    Merci bcp et bonne journée à tous

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Autant pour moi, je me suis un peu mélanger les pinceaux.
    Change juste cette ligne..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .LinkedCell = Cells(Cpt + 1, Col).Address.
    A+
    Edit : ajouter +1 suite à ton poste que je n'avais pas encore vu.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Par défaut
    Oui c'est plus court. Merci à toi

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

Discussions similaires

  1. Combo box avec cellule liée
    Par andy38 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/06/2008, 10h38
  2. probleme arriere plan cellule et checkbox
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/11/2007, 01h05
  3. [VB.NET]Probleme datagrid avec checkbox et pagination
    Par junoreactor dans le forum ASP.NET
    Réponses: 7
    Dernier message: 14/06/2007, 23h18
  4. Probleme entre JComboBox/CheckBox
    Par bygui dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/05/2006, 11h26
  5. [EXCEL] Modifier la cellule liée d'une liste déroulante
    Par stéphane_ais2 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/03/2006, 11h18

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