Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/07/2009, 12h38   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'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 :
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
Tomuscz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2009, 13h54   #2 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Bonjour
Pour les initier a vrai tu fait
Code :
     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
Code :
if "Check" & i then
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
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2009, 14h00   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'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
Tomuscz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2009, 14h14   #4 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
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/
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2009, 17h00   #5 (permalink)
Membre Expert
 
Avatar de laetitia
 
Date d'inscription: décembre 2002
Localisation: 38
Âge: 20
Messages: 1 160
Par défaut

bonjour Tomuscz l' ami krovax le forum
peut être comme cela a tester

Code :
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 :
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
__________________
SALUTATIONS
laetitia est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 22h57.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.