Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2828 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boucle avec Checkbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle avec Checkbox

n°1815848
mmarle
Posté le 24-11-2008 à 15:19:23  profilanswer
 

Bonjour,  
 
Après bien des recherches sur le net, je me permet d'écrire afin d'obtenir, enfin si possible, quelques infos.  
 
Description du projet:
 
Sur une feuille d'un fichier excel, une multitude de Checkbox sont integrées sur chaque cellule (ex: Checkbox1 en A1, Checkbox2 en A2, etc...).
A chaque Checkbox correspond un nom de fournisseur (ex: Maurice en B1, Marcel en B2, etc...).
 
d'autres part deux boutons sont également integrés dans la feuille, le premier pour filtrer, et le second pour réinitialiser  
 
Le principe du fichier est de pouvoir cacher les lignes sur lesquelles les Checkbox sont cochées. Lorsque l'on clique sur le bouton "Filtrer", les lignes cochées se cachent. Le second "Réinitialiser" permet de tout faire réapparaitre.
Le second servant à réinitialiser le tout. Le problème est que je n'arrive pas à créer de boucle qui fonctionne avec l'objet "CheckBox".
 
Voici le code:
 
Premier Bouton:
 
Private Sub CommandButton1_Click()
Dim a As Integer
For a = 0 To 100
Rows ("1:1" ).Offset (a,0).select
If CheckBox1 = True Then <-- Problème Boucle
Range ("A1" & a).entireRow.Hidden = True
End If
Next a
En Sub
 
 
Second Bouton:
Private Sub CommandButton2_Click()
Range ("1:100" ).EntireRow.Hidden = False
Checkbox1 = False <-- Problème Boucle
End Sub
 
Merci de ramener un mouton dans le bon chemin (j'en ai marre! Lol)
 
 
 
 
 
 

mood
Publicité
Posté le 24-11-2008 à 15:19:23  profilanswer
 

n°1816239
otobox
Maison fondée en 2005
Posté le 25-11-2008 à 07:42:28  profilanswer
 

Je parie que ton code est dans un module et pas dans le module de ta feuille active. C'est pour ça que ça ne fonctionne pas ! Deux solutions :
- soit tu recopies tes procédures dans le module de la feuille où sont mis les checkbox
-soit dans le module tu remplaces checkbox1 par :

Code :
  1. ActiveSheet.CheckBox1


 
Chez moi ça marche !


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1816390
SuppotDeSa​Tante
Aka dje69r
Posté le 25-11-2008 à 14:35:36  profilanswer
 

Bonjour
 
Je pense qu'il veut surtout faire une boucle avec  
CheckBox1, CheckBox2, CheckBox3 etc.
 
Regarde du coté de la fonction Evaluate()
 
If Evaluate("CheckBox" & a) = True Then
 
Parcontre je ne sais pas comment tu vas masquer la checkbox en fonction de la ligne et remonter les autres...?
Tu peux lier tes checkbox a une cellule, avec la propriété 'LinkedCell'.
Imaginons une checkbox, checkbox1 situé sur B1, liée à B1 avec la propriété LinkedCell definie en B1
Si en B1 tu saisis 'False', la case se decoche, si en B1 tu saisis 'True' la case se coche...
Ca pourrait te servir
 
Cordialement


Message édité par SuppotDeSaTante le 25-11-2008 à 14:39:40

---------------
Soyez malin, louez entre voisins !
n°1817868
mmarle
Posté le 27-11-2008 à 17:09:00  profilanswer
 

Bonsoir je vous remercie de votre aide,
 
dje69r a bien cerné mon problème c'est exactement ça que je voudrais faire!
Mais ça ne marche toujours pas.
 
Par contre les checkbox sont dimensionnées sur celles des cellules, par conséquent elles disparaissent lorsque les lignes sont masquées.
Est-il possible de joindre mon fichier excel sur le forum?
 
Merci à tous

n°1818020
86vomito33
Posté le 27-11-2008 à 20:06:56  profilanswer
 

bonsoir,
 
je te laisse adapter ca a ton besoin
 
http://cjoint.com/?lBudvRfc83

n°1818555
SuppotDeSa​Tante
Aka dje69r
Posté le 28-11-2008 à 16:33:52  profilanswer
 

mmarle a écrit :

Bonsoir je vous remercie de votre aide,
 
dje69r a bien cerné mon problème c'est exactement ça que je voudrais faire!
Mais ça ne marche toujours pas.
 
Par contre les checkbox sont dimensionnées sur celles des cellules, par conséquent elles disparaissent lorsque les lignes sont masquées.
Est-il possible de joindre mon fichier excel sur le forum?
 
Merci à tous


Oui ou tu peux l'envoyer sur mon mail, si besoin je le mettrai sur un partage.
Parcontre explique pourquoi ca ne marche toujours pas, car j'ai fait l'essai et ca tourne sans souci.


---------------
Soyez malin, louez entre voisins !
n°1818607
mmarle
Posté le 28-11-2008 à 16:54:12  profilanswer
 

Bonsoir dje69r
 
Tu peux Donwloader le fichier Excel sur le lien suivant:  
http://www.megaupload.com/?d=AU0WV9PC
 
Je ne sais toujours pas pourquoi ça marche, je pense essentiellement à un problème de programmation tout simplement, mais où?
 
Merci

n°1818899
SuppotDeSa​Tante
Aka dje69r
Posté le 29-11-2008 à 01:36:08  profilanswer
 

Euh normal que ca marche pas...  
Tu n'as pas tenu compte de ce que je t'ai dit la derniere fois...
Un probleme de programmation, oui certainement. Mais essaie tout de meme de regarder les solutions qu'on te donne ou de tenter de les exploiter... Là je l'ai refait en meme pas 5mn et ca roule...
 
Indice :

Citation :


Tu peux lier tes checkbox a une cellule, avec la propriété 'LinkedCell'.
Imaginons une checkbox, checkbox1 situé sur B1, liée à B1 avec la propriété LinkedCell definie en B1
Si en B1 tu saisis 'False', la case se decoche, si en B1 tu saisis 'True' la case se coche...


 
Apres si vraiment tu veux coder voila :

Citation :


Private Sub CommandButton1_Click()
z = Feuil1.OLEObjects.Count
For i = 1 To z
    NomCtrl = Feuil1.OLEObjects(i).Name
    If InStr(1, NomCtrl, "Check" ) <> 0 Then
        'Feuil1.OLEObjects(i).Object.Value = False
        Cells(i + 1, 2).EntireRow.Hidden = False
    End If
Next
End Sub
 
Private Sub CommandButton2_Click()
z = Feuil1.OLEObjects.Count
For i = 1 To z
NomCtrl = Feuil1.OLEObjects(i).Name
If Feuil1.OLEObjects(i).Visible = True Then
    If NomCtrl = "CheckBox" & i And Feuil1.OLEObjects(i).Object.Value = True Then
        Cells(i + 1, 2).EntireRow.Hidden = True
     
    End If
End If
Next
 
End Sub


 
Mais je pense qu'il te faudra quelques explications.
 
Cordialement


Message édité par SuppotDeSaTante le 29-11-2008 à 02:14:54

---------------
Soyez malin, louez entre voisins !
n°1819708
mmarle
Posté le 01-12-2008 à 08:27:26  profilanswer
 

Génial! ça marche du Tonnerre,
 
Un grand merci dje69r, pour la patience que tu m'as accordé.
j'ai biensur essayé d'exploiter les ressources que tu as expliqué, malheureusement je n'ai pas les même connaissances que toi en terme de "OLEObject".
C'est pourquoi j'ai préféré posté le fichier Excel de base, pour éviter les âneries.
Après lecture de ta programmation, j'ai mieux compris le principe de la syntaxe et la manière dont il faut procéder (même si toutefois je n'y serais pas arriver à l'écrire).
 
Maintenant je sais attribuer à une variable, l'étendue du compte d'un objet.
 
Merci encore.
 
 

n°1819722
SuppotDeSa​Tante
Aka dje69r
Posté le 01-12-2008 à 09:47:25  profilanswer
 

Je te proposais la premiere solution, car elle est beaucoup plus simple. En effet, une fois ta case a cocher liée a une cellule, il suffit de definir la cellule sur vrai ou faux, pour que la case se coche ou se decoche... Et inversement si tu coches la case, la cellule prend Vrai et si tu decoches, la cellule prend Faux... Puis pour masquer ta ligne pas besoin d'atteindre la coche en elle meme, on listait toutes les lignes avec vrai, et on masquait ces memes lignes sans meme avoir besoin de se preoccuper des case a cocher ni de oleobject.
 
For x=1 to 1000
   if Cells(x+1,1)=true then  
      cells(x+1,1)entireRow.hidden = True
   else
      cells(x+1,12)entireRow.hidden = false
   endif
 
next x
 
C'est quand meme plus simple ;)
 
Ravi que ca tourne.
 
 :jap:


Message édité par SuppotDeSaTante le 01-12-2008 à 09:55:26

---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boucle avec Checkbox

 

Sujets relatifs
[PERL] boucle imbriquéesActiver un checkbox
Aide boucle While Encore ?? je pete un cable ... :'([NSIS] CheckBox le + simple, ajout de checkbox au dernier ecran
[batch] un bète SET puis ECHO dans une boucle for, mais non...setAutoCreateRowSorter JTable avec checkBox
[résolu]boucle de classement selon valeur tableauBoucle sur répertoire en batch
[JS] Cocher une checkbox générée à partir d'une boucle PHP (réparé) 
Plus de sujets relatifs à : Boucle avec Checkbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR