Boucle avec Checkbox - VB/VBA/VBS - Programmation
Marsh Posté le 25-11-2008 à 07:42:28
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 :
|
Chez moi ça marche !
Marsh Posté le 25-11-2008 à 14:35:36
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
Marsh Posté le 27-11-2008 à 17:09:00
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
Marsh Posté le 27-11-2008 à 20:06:56
bonsoir,
je te laisse adapter ca a ton besoin
http://cjoint.com/?lBudvRfc83
Marsh Posté le 28-11-2008 à 16:33:52
mmarle a écrit : Bonsoir je vous remercie de votre aide, |
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.
Marsh Posté le 28-11-2008 à 16:54:12
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
Marsh Posté le 29-11-2008 à 01:36:08
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 : |
Apres si vraiment tu veux coder voila :
Citation : |
Mais je pense qu'il te faudra quelques explications.
Cordialement
Marsh Posté le 01-12-2008 à 08:27:26
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.
Marsh Posté le 01-12-2008 à 09:47:25
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.
Marsh Posté le 24-11-2008 à 15:19:23
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)