Case Cochée, Info sélectionnée

D

Daniel

Guest
Bonsoir à tous,
j'aimerai sélectionner (par l'intermédiaire de cases cochées en tête d'informations) dans une liste des informations qui seraient reportée sur une autre feuille sous la forme d'une nouvelle liste d'informations choisies. D'avance je vous remercie de toute votre aide et de vos conseils.
 
P

POLO

Guest
Salut Les gars et les filles !
Bon je tenvoie un truc, je ne suis pas sûr que ce soit ce que tu veuilles...

J'ai aussi deux questions liées à ça pour tout le forum.

1) Comment faire pour utiliser la fonction IsNothing ? Excel me répond qu'il ne la connait pas...

2) Comment faire une boucle du style "for each" sur toutes les CheckBox contenues sur la feuille "Liste" du document joint ???

Quelqu'un ?

POLO
 

Pièces jointes

  • CaseCochee.zip
    17.4 KB · Affichages: 25
M

Moa

Guest
Eh bien, si tu veux, le Vba ce n'est pas mon fort et je n'ai plus vraiment le temps de bien apprendre...héhé...!

Et tous les mois, je me dis, allez le mois prochain, je m'y met sérieusement et puis le manque de temps me fait repousser au mois suivant..héhé...!

Par contre, rien n'empêche de faire une macro évènementielle qui fera le filtre automatique.

@ +

Moa
 
D

Daniel

Guest
Bonjour,
Vos explications m'ont bien éclairé, toutefois j'ai encore quelques petits problèmes lorsqu'il s'agit de l'adapter sur un document un peu plus serieux.
Michel à bien tenté de m'aider mais comme il n'a pu retrouver la petite démo sur l'ancien fil, il a tenter de m'apporter une réponse qui me parait moins adaptée à mon type de document. Mea coulpa ! A l'avenir, lorsque je demandrai un complément d'informations sur un sujet déjà débattu, je tracerai dans le même sillon pour ne pas multiplier à tord les doublons.
Voici mon bobo. Je vous serait tellement reconnaissant de m'expliquer comme à un enfant de 4 ans ; les bêtises que j'ai pu commettre, mes ommissions. A bientôt Merci à tous!
 
M

michel

Guest
bonsoir philippe ,Moa et polo

Philippe , le ciblage des objets ( checkbox ) ne fonctionnait pas
je l'ai remplacé par
If TypeOf OleObj.Object Is MSForms.CheckBox Then
If OleObj.Object = True Then ...

tu peux remplacer ta procedure par celle ci et comparer le code

Private Sub Worksheet_Activate()
Dim OleObj As OLEObject
Dim Plage As Range
Dim Lig As Integer

Application.ScreenUpdating = False
Sheets("Commande").Range("A14:B34").ClearContents ' option perso
Sheets("Commande").Range("F14:G34").ClearContents'option perso

For Each OleObj In Sheets("Matériel").OLEObjects
If TypeOf OleObj.Object Is MSForms.CheckBox Then
If OleObj.Object = True Then
Lig = Sheets("Commande").Range("A65536").End(xlUp).Row + 1
Sheets("Commande").Range("A" & Lig) = Sheets("Matériel").Range(OleObj.TopLeftCell.Offset(0, 1).Address)
Sheets("Commande").Range("F" & Lig) = Sheets("Matériel").Range(OleObj.TopLeftCell.Offset(0, 2).Address)
Sheets("Commande").Range("G" & Lig) = Sheets("Matériel").Range(OleObj.TopLeftCell.Offset(0, 4).Address)
End If
End If
Next

Application.ScreenUpdating = False
End Sub

bonne soirée
michel
lapin4.gif
 
D

Daniel

Guest
A Michel et à tous qui contribue à ce forum,

Mille Merci !

Vous êtes tous "Super!". Si tout le web était comme vous, je ne décollerais plus de la toile. Je n'ai plus qu'une idée en tête: renforcer mes maigres connaissances afin qu'un jour, peut-être, je puis participer au partage...
A bienôt et............encore Merci.
Daniel
 
P

POLO

Guest
Je viens d'aller voir le doc...
(après la 'bataille'...)
Bon, Michel qui m'avait débloqué un jour est bien un chef !
Je suis d'accord, j'aurais fait un truc finalisé dans le style...

Un petit soucis tout de même Michel :

Ton astuce (très joli, d'ailleurs, je ne connaissais pas) :
Lig = Sheets("Commande").Range("A65536").End(xlUp).Row + 1

OK, (je m'en servirai lolll) mais dans ce cas précis, je ne sais pas si elle ne risque pas de gêner Daniel s'il compte ajouter d'autres données sous le tableau désignation/Observations ??? Daniel ?
(Cela explique mes formules beaucoup moins belles que les tiennes :
ActiveWorkbook.Sheets("Commande").Range("A" & 13 + j).Value = ""
ActiveWorkbook.Sheets("Commande").Range("F" & 13 + j).Value = ""
ActiveWorkbook.Sheets("Commande").Range("G" & 13 + j).Value = ""
(Comme ici pour l'effacement)

Merci de me tenir au courant si vous trouvez une réponse plus esthétique à ce petit soucis...

POLO

PS : Michel, as-tu la réponse à la question que je posais plus haut dans le post ?
à savoir : 1) Comment faire pour utiliser la fonction IsNothing ? Excel me répond qu'il ne la connait pas...
 
M

michel

Guest
bonjour Polo

merci pour ton message
l'interet d'excel vba est qu'il existe pleins de solutions pour arriver au meme resultat . ta solution fonctionne aussi tres bien

s'il y a des données sous le tableau de resultat dans la feuille commande , tu peux utiliser la meme procedure sans etre obligé de remonter à partir de la ligne 65536
par exemple si tu as d'autres données a partir de la ligne 31 tu peux ecrire
Lig = Sheets("Commande").Range("A30").End(xlUp).Row + 1

je ne connais pas IsNothing . je regarderai ça ce soir en rentrant du travail


bonne journée
michel
lapin4.gif


ps
je ne suis malheureusement pas un "chef" en vba , comparé à certains autres contributeurs du forum XLD...je ne peux pas tous les citer de peur d'en oublier ( voir une partie de la liste dans le post de remerciements super sympa de Cyrille hier apres midi ) je n'ai que quelques mois d'experience , mais je travaille dur pour progresser...
j'en profite pour remercier tous ceux et celles qui m'ont permis de m'améliorer dans l'approche du VBA
 
D

Daniel

Guest
Salut à tout le Forum,
Aîe, Aîe,
Je suis au travail, je l'ai adapté à mon document (Excel 97) et... Rien! Qu'ais-je fais ou pas fais! Voici ma pièce jointe de travail.
A bientôt et merci encore à tous.
 

Pièces jointes

  • Liste_de_Prestations_Projet_test.zip
    36.4 KB · Affichages: 26

Discussions similaires

Réponses
7
Affichages
580
Réponses
5
Affichages
563

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji