Macro excel :selection d'une plage de cellule
Fermé
Von lebaron
Messages postés
7
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
16 novembre 2007
-
8 nov. 2007 à 08:48
Eruel - 26 nov. 2009 à 20:42
Eruel - 26 nov. 2009 à 20:42
A voir également:
- Macro excel :selection d'une plage de cellule
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si et excel - Guide
8 réponses
Papou93
Messages postés
146
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
5 juin 2012
59
8 nov. 2007 à 22:48
8 nov. 2007 à 22:48
Bonsoir Von lebaron, gbinforme,
Cette macro atteint le but recherché :
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.
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.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 259
9 nov. 2007 à 00:27
9 nov. 2007 à 00:27
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
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
8 nov. 2007 à 09:21
8 nov. 2007 à 09:21
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.
@+
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.
@+
Von lebaron
Messages postés
7
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
16 novembre 2007
1
9 nov. 2007 à 12:11
9 nov. 2007 à 12:11
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Von lebaron
Messages postés
7
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
16 novembre 2007
1
8 nov. 2007 à 10:06
8 nov. 2007 à 10:06
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 259
9 nov. 2007 à 12:32
9 nov. 2007 à 12:32
Je ne me sert pas du solveur mais est-ce qu'il ne voudrait pas du ; à la place de la , comme séparateur ?
Je me permets de déterrer le sujet car je suis dans une situation similaire j'utilise le solveur pour resoudre des equations. Mes cellules variables ont un fond rouge et selon mon probleme ce ne sont pas les memes cellules qui doivent être résolues. J'ai essayé avec "for et "if" mais je ca ne marche pas je ne vois pas comment ajouter ma plage de cellule dans le solveur.
For Each Cell In Sheets("Feuil1").Range("B2:D16")
If Cell.Interior.Color = 255 Then
SolverOK SetCell:=Range("J2"), MaxMinVal:=3, ValueOf:=0,
ByChange:=Cell.Value
End If
Next
For Each Cell In Sheets("Feuil1").Range("B2:D16")
If Cell.Interior.Color = 255 Then
SolverOK SetCell:=Range("J2"), MaxMinVal:=3, ValueOf:=0,
ByChange:=Cell.Value
End If
Next