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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [resolu] [VBA] Cacher check box sous conditions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] [VBA] Cacher check box sous conditions

n°1552083
merenptah4​4
Posté le 02-05-2007 à 10:28:35  profilanswer
 

Bonjour à tous,
 
je vous présente mon problème :
j'ai un tableau de données sur 11 colonnes (de la 3 à la 13)
sur la 14 la 15 et la 16 j'ai des checkboxes (pas dans un userform)
je souhaite que ces check box ne soit affiché que s'il y a des données dans toutes les colonnes de la ligne correspondante.
 
1- doit-je activer une macro créer à cet effet ("hidechk()" ) à chaque changement, ou il y a t'il une méthode moins couteuse en tps de calcul?
2-j'ai un problème lors de l'appel de "hidechk()" avec le message suivant :"select method of Checkbox class has failed"
 
voici le code avec lequel je crée mes box (un peu faignant)

Code :
  1. Sub AddCheckBoxes()
  2. Dim i, j As Integer
  3.     Application.ScreenUpdating = False
  4.     'Call erasecheck
  5.     For i = 3 To 12
  6.     For j = 14 To 16
  7.     Cells(i, j).Select
  8.     ActiveSheet.CheckBoxes.Add(Selection.Left, Selection.Top, Selection.Width, Selection.Height).Select
  9.             With Selection
  10.                 .LinkedCell = Cells(i, j).Address
  11.                 .Characters.Text = ""
  12.                 .name = "chk" & i & j
  13.             End With
  14.         Next j
  15.         Next i
  16.     i = 13
  17.     For j = 14 To 16
  18.     Cells(i, j).Select
  19.     ActiveSheet.CheckBoxes.Add(Selection.Left, Selection.Top, Selection.Width, Selection.Height).Select
  20.             With Selection
  21.                 .LinkedCell = Cells(i, j).Address
  22.                 .Characters.Text = "All"
  23.                 .name = "chk" & i & j
  24.             End With
  25.         Next j
  26.        Application.ScreenUpdating = True
  27. End Sub


 
et celui qui me sert à verifier puis à cacher !

Code :
  1. Public Sub hideboxes()
  2. Dim i, j, k As Integer
  3. Dim name As String
  4. Dim cbox As CheckBox
  5. For i = 3 To 12
  6. MsgBox i
  7. visibility = True
  8.     For j = 3 To 13
  9.     If Cells(i, j).Value = "" Then
  10.         visibility = False
  11.     End If
  12.     Next
  13.        For k = 14 To 16
  14.        name = "chk" & i & k
  15.         If visibility = False Then
  16.                 ActiveSheet.CheckBoxes(name).Select
  17.                 Selection.Visible = False
  18.             Else
  19.                 ActiveSheet.CheckBoxes(name).Select
  20.                 Selection.Visible = True
  21.         End If
  22.         Next
  23. Next
  24. End Sub


MsgBox i me sert à verifier à quel moment il plante, je vous le donne dans le mille, il m'affiche "3" puis plus rien...
 
mercid 'avance pour le ocup de main éventuel
 
Benjamin


Message édité par merenptah44 le 03-05-2007 à 15:01:22
mood
Publicité
Posté le 02-05-2007 à 10:28:35  profilanswer
 

n°1552314
Paul Hood
Posté le 02-05-2007 à 14:17:57  profilanswer
 

Ton code fonctionne bien chez moi.
Il faut faire attention à ne pas créer plusieurs fois tes checkboxes CK33, etc....
Ton ADD crééà chaque fois les ckxx, alors que ton hide les caches seulement.

Message cité 1 fois
Message édité par Paul Hood le 02-05-2007 à 14:18:10
n°1552352
merenptah4​4
Posté le 02-05-2007 à 14:40:45  profilanswer
 

Paul Hood a écrit :

Ton code fonctionne bien chez moi.
Il faut faire attention à ne pas créer plusieurs fois tes checkboxes CK33, etc....
Ton ADD crééà chaque fois les ckxx, alors que ton hide les caches seulement.


et voila je me sens très con ...
j'a itout effacé bien proprement
en réaffichant tout ce qui avait pu être planqué
et là il tourne
 
cette erreur, comme tu le disais, arrive quand il y a deux chkbox du même nom, ou que la check n'existe pas d'ailleurs... pfff moitié pas fin moi...
 
sinon aurais tu une idée pour que j'éxécute la procedure hide_chk() afin qu'il ne me les cache plus quand il ne le doit plus ?
avec un worksheet_change ?
 
merci pour ta réponse au fait


Message édité par merenptah44 le 02-05-2007 à 15:04:44

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

  [resolu] [VBA] Cacher check box sous conditions

 

Sujets relatifs
[Résolu] Autorun ou menu DVD ?[Résolu]Gestion des processus par le systeme d'exploitation ...
[Résolu] Lien sur page HTML qui lance un fichier EXE ?[resolu]icher une image dont le lien se trouve dans une base de donnée
[Résolu] outil pour trouver les define ?[resolu] probleme pour rentrer dans un if
Noob détected ! ouvrir un lien dans la meme page[BATCH] Supprimer les " d'un string [résolu]
[resolu]Incrémenter une Plage de cellule avec range ?[resolu] Mise à jour si modification d'une feuille
Plus de sujets relatifs à : [resolu] [VBA] Cacher check box sous conditions


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