Copier cellule à l'ouverture du classeur

Bonjour à tous,

J'ai un problème avec une macro à l'ouverture de mon classeur.

J'ai une liste de tache à faire, quand la personne les fait, elle coche la case puis enregistre le classeur en fermant.

Quand j'ouvre à nouveau le classeur, je voudrais que les taches correspondant à la checkbox coché (à la fermeture) s'efface dans la feuille "A faire" et qu'elle soit inscrite dans la feuille "Historique des taches"

Dans ma feuille la première cellule avec des taches est la C11, d'où ma tentative pour récupérer la cellule 11 (code ci dessous).

Private Sub WorkBook_Open()

Worksheets("A faire").Activate

For i = 1 To 50

If "CheckBox" & i.Value = True Then

j = i + 10

Sheets("Historique des taches").Range("C8").End(xlDown).Offset(1, 0) = Sheets("A faire").Range("C" & j)

Sheets("A faire").Range("C" & i + 10).End(xlDown).Offset(1, 0) = ""

End If

Next

End Sub

J'ai l'erreur 404 Objet Requis... les noms de feuille sont bon et je ne vois pas ce qui pourrait etre mal défini ailleurs ...

si quelqu'un saurait m'aider ..

Merci

bonjour,

si tes checkboxes se nomment bien checkbox1,checkbox2, etc ... remplace cette instruction

If "CheckBox" & i.Value = True Then

par

If activesheet.Shapes("checkbox" & i).OLEFormat.Object.Value = true

"Argument ou appel de proc incorrect"

Pour précision je susi en ActiveX et non en formulaire.

Je suis assez débutant en vba, tu m'as un peu perdu ...

bonjour,

mets-nous un fichier exemple !

ci-joint mon fichier

re-bonjour,

pour tester une checkbox activeX

if ActiveSheet.OLEObjects("checkbox" & i).Object.Value = True then 

ce coup ci c'est erreur 1004, erreur défini par l'application ou l'objet

J'ai modifier le i+10 par j et j'ai ajouter dim i as integer, dim j as integer, au debut...

bonjour,

remplace cette instruction, qui te selectionnes la dernière ligne possible +1 (d'où l'erreur), par contre j'ai pas compris pourquoi cette instruction te renvoie cette valeur.

Sheets("Historique des taches").Range("C8").End(xlDown).Offset(1, 0)

par

Sheets("Historique des taches").Range("C"& rows.count).End(xlup).Offset(1, 0)

toujour pas, même erreur.

J'utilise la meme instruction sur un autre classeur et il n'y a pas de probleme, il ecrit les valeur à la suite dans la colonne (il prend la première cellule vide a partir de la cellule indiqué (C8) et la rempli. ..

bonjour,

tu as une autre erreur. tu n'as que 40 checkbox mais tu veux en traiter 50,

correction

Private Sub WorkBook_Open()
    Worksheets("A faire").Activate
    For i = 1 To 40
    Debug.Print i
        If ActiveSheet.OLEObjects("checkbox" & i).Object.Value = True Then
            j = i + 10
            Sheets("Historique des taches").Range("C" & Rows.Count).End(xlUp).Offset(1, 0) = Sheets("A faire").Range("C" & j)
            Sheets("A faire").Range("C" & Rows.Count).End(xlUp).Offset(1, 0) = ""
        End If
    Next
End Sub

Bonjour

macro a mettre dans un module

et si ca te va mettre le non de la macro dans le ThisWorkbook

Private Sub Workbook_Open()

LanceMod

End Sub

Dans le module

Sub LanceMod()
Dim Sh As Object
Feuil1.Select
Set Sh = Feuil2
Lig = Sh.Range("B" & Rows.Count).End(xlUp).Row + 1
   For L = 11 To 50
      If ActiveSheet.OLEObjects("checkbox" & L - 10).Object.Value = True Then
         Sh.Range("B" & Lig).Value = Range("B" & L).Value
         Sh.Range("C" & Lig).Value = Range("C" & L).Value
         Sh.Range("D" & Lig).Value = DateValue(Now)
         ActiveSheet.OLEObjects("checkbox" & L - 10).Object.Value = False
          Lig = Lig + 1
      End If
   Next
End Sub

A+

Maurice

evidement ... -____- J'ai mis mon nombre de ligne au lieu du numero de checkbox (===> boulet )

Ok, ca marche ! (en mettant le code dans this workbook) et non pas dans Feuil1 ^^

Merci beaucoup h2so4 !

Je nacvais pas vu la réponse de archer ... que je viens de lire en ecrivant la réponse ... Je vais essayé de me débrouiller un peu tous seul pour le reste avec les éléments que j'ai mais je garde ta réponse sous le coude au cas où

Merci a vous !

Rechercher des sujets similaires à "copier ouverture classeur"