Problème avec checkbox

Bonjour,

J'ai un gros problème et malheureusement je n'arrive pas à le résoudre depuis 3 jours....

Je suis novice dans le domaine des macro et on me demande de créer sous Excel des checkbox dans la colonne M qui commence de M3 et qui finissent jusqu'à la dernière ligne, sachant que les colonnes de A à L sont remplie.

Voici mon code un peu fouilli:

    Sub Check_objet()
    Dim Chekbox As OLEObject
    Dim i As Integer
    Dim Target As Range

    For i = 3 To 13

        Set Target = ActiveSheet.Range("M" & i)
            Set Chekbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=Target.Left, Top:=Target.Top, Width:=Target.Width, Height:=Target.Height)
            With Chekbox
            .LinkedCell = Target.Offset(0, 1).Address(0, 0)
            .Object.Value = False
           End With
    Next
    End Sub

    Sub Derniere_ligne()
    Dim dernligne As Long

    dernligne = Range("M" & Rows.Count).End(xlUp).Row
    Range("M3").AutoFill Destination:=Range("M3:M" & dernligne)
    MsgBox "colonne check ok"
    End Sub

Merci de bien vouloir m'aider.

Cordialement.

Bonjour,

Ta macro pour créer tes Check Boxes ne comporte pas d'erreur ...

Quelle difficulté rencontres-tu ...???

Edit : je viens concrètement de la tester ... et elle fonctionne ...

elle ne fonctionne pas .-.

quand je clique sur le bouton (qui est affecté à la macro check_objet) il m'affiche les checkbox mais que sur 11 lignes....(autrement dit c'est un nombre de ligne manuel)

et si j'attribue mon bouton à la macro Derniere_ligne

il m'affiche bien mon msgbox mais rien d'autre....

faire fusionner les 2 c'est en quelque sorte ce que je cherche à faire saut que le nombre de ligne manuel on peux supprimer

Re,

Il faut prendre les problèmes les uns après les autres ...

Si ta macro ne fonctionne pas du tout .. tu es sans doute victime, comme nous tous, du bug de Microsoft ...

Il te fermer Excel ... te rendre sur ton disque C: ... rechercher et supprimer tous les fichiers avec comme extension *.exd

J'ai trouver 1 fichier: "MSForms.exd"

je l'ai supprimé sa n'a rien changé (malgré l'affichage des fichier cacher système et normal)

PS: j'ai modifié ma phrase dans mon post précédent pour que cela soit plus compréhensible.

Re,

Merci pour les précisions ... c'est effectivement plus clair ...

Tu peux tester le code suivant :

Sub Check_objet()
    Dim Chekbox As OLEObject
    Dim i As Integer
    Dim Targ As Range
    Dim derl As Long

    derl = Range("L65536").End(xlUp).Row
    For i = 3 To derl
        Set Targ = ActiveSheet.Range("M" & i)
            Set Chekbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=Targ.Left, Top:=Targ.Top, Width:=Targ.Width, Height:=Targ.Height)
        With Chekbox
            .LinkedCell = Targ.Offset(0, 1).Address(0, 0)
            .Object.Value = False
        End With
    Next i
End Sub

Il m'affiche:

"Erreur d'execution '1004':

La méthode 'Range' de l'objet '_Global' a échoué"

:/

borrougagnou a écrit :

Il m'affiche:

"Erreur d'execution '1004':

La méthode 'Range' de l'objet '_Global' a échoué"

Re,

Désolé ... un chiffre 5 de trop ... : derl = Range("L65536").End(xlUp).Row

Un chiffre 5 ou un chiffre 3 ?

parce que là, tu viens de supprimer un 3

mais j'ai compris c'est la limite max des fichiers sous excel 2003

et ton code marche ! *-* mais pourquoi mettre jusqu'à la ligne : 65536 au lieu de mettre jusqu'à la ligne de fin ?

Sachant que dans notre groupe, certain ont une version d'Excel 2010 qui leur permet d'afficher des fichiers Excel dépassant les 80 000 lignes donc il faut que le code cohabite avec les versions de 65536 lignes et de 1 million et des poussières de lignes d'où le fais que je t'ai montré cette lignes (sur pastebin):

dernligne = Range("M" & Rows.Count).End(xlUp).Row
Range("M3").AutoFill Destination:=Range("M3:M" & dernligne)

PS: il m'affiche VRAI et FAUX mais je ne sais pas comment l'effacer.

Merci de ton aide :3 elle m'est vraiment précieuse.

Re,

Tu as doublement raison ... j'avais tapé un 3 de trop ... et tu définis la dernière ligne comme tu le veux ...

L'essentiel reste ... que le code fonctionne comme tu le voulais ...

Et je ne sais pas trop comment on défini la dernière ligne malheureusement ^^"

ce n'est pas que je veux que l'on me fasse le code

c'est juste que je n'ai que les bases minimal et encore

et les scripts comme ce code concernant la dernière ligne je les récupères sur internet ^^"

Voici ce que je pense que le code devrai être mais sa ne marche pas sa na m'affiche rien:

    Sub Check_objet()
        Dim Chekbox As OLEObject
        Dim i As Integer
        Dim Targ As Range
        Dim derl As Long

        derl = Range("M" & Rows.Count).End(xlUp).Row
        Range("M3").AutoFill Destination:=Range("M3:M" & derl)
        For i = 3 To derl
            Set Targ = ActiveSheet.Range("M" & i)
                Set Chekbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=Targ.Left, Top:=Targ.Top, Width:=Targ.Width, Height:=Targ.Height)
            With Chekbox
                .LinkedCell = Targ.Offset(0, 1).Address(0, 0)
                .Object.Value = False
            End With
        Next i
    End Sub
     

Re,

Peux-tu avoir la gentillesse de tester le code ci dessous :

Sub Check_objet()
   Dim Chekbox As OLEObject
   Dim i As Integer
   Dim Targ As Range
   Dim derl As Long

   ' Identification de la dernière ligne en fonction de
   ' la Colonne située à la gauche de la colonne M  ...!!!!
   derl = Range("L" & Rows.Count).End(xlUp).Row

   For i = 3 To derl
       Set Targ = ActiveSheet.Range("M" & i)
           Set Chekbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=Targ.Left, Top:=Targ.Top, Width:=Targ.Width, Height:=Targ.Height)
       With Chekbox
           .LinkedCell = Targ.Offset(0, 1).Address(0, 0)
           .Object.Value = False
       End With
   Next i
End Sub

Si ce code ne fonctionne pas correctement ... il te faudra joindre ton fichier ...

Merciiiii ^^ sa marche, Bonne journée à vous et encore merci pour votre aide, cela me sera énormément utile !

borrougagnou a écrit :

Merciiiii ^^ sa marche, Bonne journée à vous et encore merci pour votre aide, cela me sera énormément utile !

Content que cela fonctionne ...

Merci pour tes remerciements ...

Rechercher des sujets similaires à "probleme checkbox"