Rechercher : dans
Par :

Macro excel :selection d'une plage de cellule

Dernière réponse le 27 mar 2009 à 15:06:54 Von lebaron, le 8 nov 2007 à 08:48:29 
 Signaler ce message aux modérateurs

Bonjour,
je suis débutant en macro excel.
je souhaiterais effectuer une selection variable d'une plage de cellules en fonction de certaines conditions.
je m'explique :
dans la première colonne de mon tableau, j'ai une plage de 10 cellules. dans chaque cellule se trouve une checkbox.
pour chaque cellule, si la checkbox est cochée, la cellule doit etre selectionnée.
A la fin je souhaite recuperer la plage de cellule correspondant au checkbox coché.
j'espere que je suis pas trop confus!!!
voili voilou

merci d'avance

Von lebaron

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « macro excel :selection d'une plage de cellule » dans :
Tableur - La sélection des cellules Voir Sélection de cellules Le tableur est un formidable outil pour manipuler des données. Ainsi, pour pouvoir manipuler les données il est nécessaire de disposer d'outils permettant de sélectionner rapidement toutes les cellules dont on a...
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Sélection de cellules VoirSélection de cellules Un tableur est un formidable outil de manipulation de données. Qu’il s’agisse toutefois de référencer des cellules isolées ou des plages de cellules, que ce soit pour les besoins d’une formule, pour leur attribuer un format de...
Exécuter une macro VoirExécuter une macro Excel et Calc proposent plusieurs façons d’exécuter une macro : en la sélectionnant dans une liste, dans la boîte de dialogue Macro ; par un raccourci clavier ; en l’attachant à un bouton de la barre d’outils ; ...

1

gbinforme, le 8 nov 2007 à 09:21:12
  • +1

Bonjour

A la fin je souhaite recuperer la plage de cellule correspondant au checkbox coché.

Tu dis toi même qu'il y a une checkbox dans chaque cellule et donc ce n'est pas une plage.

Tu souhaites récupérer où ?

C'est un peu confus effectivement tout cela, tu devrais reformuler tout à fait différemment ta question et en voyant les deux versions on arriverai plus facilement à comprendre.
@+

toujours zen

Répondre à gbinforme

2

Von lebaron, le 8 nov 2007 à 10:06:21

Bonjour gbinforme,
tout d'abord merci de m'avoir répondu aussi rapidement.
je vais essayer d'etre moins confus.
voici mon tableau :

A B
1 chckbox1=true 10
2 chckbox2 12
3 chckbox3=true 13
4 chckbox3 17

dim i 'variable

Pour i = 1 à 4
si A(i)=true alors
selection de la cellule B(i)
fin
ensuite selection de la plage de cellule correspondant à une valeur de checkbox =true.

dans mon exemple, je souhaite recuperer la plage (B1;B3).
cette plage sera ensuite transféré au solveur excel comme plage de critère.

j'espere que c plus clair!
merci d'avance

Von lebaron

Répondre à Von lebaron

3

Papou93, le 8 nov 2007 à 22:48:47
  • +1

Bonsoir Von lebaron, gbinforme,

Cette macro atteint le but recherché :

Public Plage As String

Public Sub SelPlage()
Plage = ""
For n = 1 To 4
  If Cells(n, 3) Then Plage = Plage & "B" & n & ","
Next
If Right(Plage, 1) = "," Then Plage = Left(Plage, Len(Plage) - 1)
Range(Plage).Select
End Sub

PS : il faut définir la propriété LinkedCell de chaque CheckBox à la cellule correspondante en colonne 3 (dans mon exemple, mais on peut définir n'importe quelle autre colonne et la masquer) : on obtient ainsi VRAI si la CheckBox est cochée ou FAUX dans l'autre cas. Il est facile ensuite de récupérer cette valeur dans la boucle.
Petite précision : en code VBA, la séparation des cellules non contugües se définit avec "," au lieu de ";" dans les feuilles Excel.

Espérant avoir apporté un grain de sel utile.

Cordialement.

Répondre à Papou93

4

eriiic, le 9 nov 2007 à 00:27:41
  • +1

Bonsoir,

Pour présenter d'autres fonctions dans la boucle tu peux aussi utiliser ...then plage = Union(plage, cell(n, 3).Offset(0, -2)) en ayant défini plage as range (et supprimer les 2 dernières lignes)
eric

Répondre à eriiic

5

Von lebaron, le 9 nov 2007 à 12:11:19

Bonjour Papou93, eriiic, gbinforme
tout d'abord je vous remercie pour votre aide.
ca marche parfaitement désormais, la selection de plages non contigues se réalise.
j'ai un dernier petit souci, la plage de cellules selectionnée doit permettre de renseigner une plage de critère du solveur excel.
Mais le solveur ne reconnait pas "," il reconnait juste ":".
Je n'arrive donc pas à faire une selection de plages non contigues.

merci d'avance

Von lebaron

Répondre à Von lebaron

6

 eriiic, le 9 nov 2007 à 12:32:54

Je ne me sert pas du solveur mais est-ce qu'il ne voudrait pas du ; à la place de la , comme séparateur ?

Répondre à eriiic