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
Invité de passage
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 3
Points : 3
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 :
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
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 00
Vieux 02/07/2009, 13h54   #2
Membre Expert
 
Avatar de Krovax
 
Inscription : juillet 2008
Messages : 1 889
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juillet 2008
Messages : 1 889
Points : 1 937
Points : 1 937
Bonjour
Pour les initier a vrai tu fait
Code :
1
2
3
4
5
6
7
8
9
10
11
12
     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
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 00
Vieux 02/07/2009, 14h00   #3
Invité de passage
 
Inscription : juin 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 24
Points : 3
Points : 3
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 00
Vieux 02/07/2009, 14h14   #4
Membre Expert
 
Avatar de Krovax
 
Inscription : juillet 2008
Messages : 1 889
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juillet 2008
Messages : 1 889
Points : 1 937
Points : 1 937
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 00
Vieux 02/07/2009, 17h00   #5
Membre Expert
 
Avatar de laetitia
 
Inscription : décembre 2002
Messages : 1 281
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : décembre 2002
Messages : 1 281
Points : 1 363
Points : 1 363
bonjour Tomuscz l' ami krovax le forum
peut être comme cela a tester

Code :
1
2
3
4
5
6
7
8
9
10
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 :
1
2
3
4
5
6
7
8
9
10
11
12
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 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h22.


 
 
 
 
Partenaires

Hébergement Web