Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

soustraire des zones ....à d'autres zone ?

6 réponses
Avatar
Alfred WALLACE
bonjour (re re re ...)
d=E9sol=E9 de "spammer" le newsgroup ....
mais vous m'etes vraiment d'un =E9norme secours !


je suis toujours en recherche de m=E9thodes sur mes zones
nomm=E9es...

ici, j'ai une zone "SAISIE" d'une seule ligne et de 7 colonnes.

je selectionne la colonne 1 =E0 la colonne 5 appartenant =E0 "SAISIE"


Ma quetion :

est ce que, je peux deselectionner la colonne 1 =E0 5 et selectionner le
reste (c'est
=E0 dire colonne 6 =E0 8) d'une fa=E7on "simple" ?

une sorte d'op=E9ration booleenne qui pour la zone "SAISIE" inverse
ce qui est selectionn=E9 et ce qui ne l'ai pas.

exemple : (le caract=E9re "_" repr=E9sente la selection.)

SAISIE -->
'______****' si on inverse la selection =E7=E0 donne
'******____'


j'esp=E8re avoir =E9t=E9 clair.

Merci
Jos=E9

6 réponses

Avatar
Daniel.C
Bonjour.
A condition que les cellules sélectionnées commencent à gauche de la
plage :
[A1:G1].Resize(, 7 - Selection.Count).Offset(, Selection.Count).Select
Cordialement.
Daniel

bonjour (re re re ...)
désolé de "spammer" le newsgroup ....
mais vous m'etes vraiment d'un énorme secours !


je suis toujours en recherche de méthodes sur mes zones
nommées...

ici, j'ai une zone "SAISIE" d'une seule ligne et de 7 colonnes.

je selectionne la colonne 1 à la colonne 5 appartenant à "SAISIE"


Ma quetion :

est ce que, je peux deselectionner la colonne 1 à 5 et selectionner le
reste (c'est
à dire colonne 6 à 8) d'une façon "simple" ?

une sorte d'opération booleenne qui pour la zone "SAISIE" inverse
ce qui est selectionné et ce qui ne l'ai pas.

exemple : (le caractére "_" représente la selection.)

SAISIE -->
'______****' si on inverse la selection çà donne
'******____'


j'espère avoir été clair.

Merci
José


Avatar
Pounet95
Re, ( eh spammer mais pas tro(ll)p :o)))

Sans trop fouiller, regardes du côté de l'instruction Intersect agrémentée
d'un Not
Ya p't^t ben queqchose à tirer de ça, mais j'ai pas vérifié

Pounet95

"Alfred WALLACE" a écrit dans le message de
news:
bonjour (re re re ...)
désolé de "spammer" le newsgroup ....
mais vous m'etes vraiment d'un énorme secours !


je suis toujours en recherche de méthodes sur mes zones
nommées...

ici, j'ai une zone "SAISIE" d'une seule ligne et de 7 colonnes.

je selectionne la colonne 1 à la colonne 5 appartenant à "SAISIE"


Ma quetion :

est ce que, je peux deselectionner la colonne 1 à 5 et selectionner le
reste (c'est
à dire colonne 6 à 8) d'une façon "simple" ?

une sorte d'opération booleenne qui pour la zone "SAISIE" inverse
ce qui est selectionné et ce qui ne l'ai pas.

exemple : (le caractére "_" représente la selection.)

SAISIE -->
'______****' si on inverse la selection çà donne
'******____'


j'espère avoir été clair.

Merci
José
Avatar
Alfred WALLACE
Merci Daniel,

du coup, j'ai adapté ton code comme celà :

[SAISIE].Resize(, [SAISIE].Count - Selection.Count).Offset(,
Selection.Count).Select

çà fonctionne !

Si je souhaite diminuer le nombre de colonnes selectionnées de cette
nouvelle selection
je suppose que je dois faire un truc du genre :

selection.resize( , Selection.Count - 2) ?


Merci encore


On 3 fév, 11:18, Daniel.C wrote:
Bonjour.
A condition que les cellules sélectionnées commencent à gauche de l a
plage :
[A1:G1].Resize(, 7 - Selection.Count).Offset(, Selection.Count).Select
Cordialement.
Daniel


Avatar
Modeste
Bonsour® Alfred WALLACE
je suis toujours en recherche de méthodes sur mes zones
nommées...
ici, j'ai une zone "SAISIE" d'une seule ligne et de 7 colonnes.
je selectionne la colonne 1 à la colonne 5 appartenant à "SAISIE"
Ma quetion :
est ce que, je peux deselectionner la colonne 1 à 5 et selectionner le
reste (c'est
à dire colonne 6 à 8) d'une façon "simple" ?
une sorte d'opération booleenne qui pour la zone "SAISIE" inverse
ce qui est selectionné et ce qui ne l'ai pas.



;o)))
Solution fournie le 26/01 : Ensemble complémentaire

Sub Grommit()' -----à associer à un bouton déposé dans une barre d'outils perso
Dim cellule As Range, selSpec As Range
Set selSpec = Nothing '------la selection alternative est vide au départ
For Each cellule In Range("SAISIE")
If Intersect(cellule, Selection) Is Nothing Then ' --Ctrl la selection est dans le tableau
' --- la 1ere fois initialisation de la selection alternative
If selSpec Is Nothing Then Set selSpec = Range(cellule.Address)
' --- extension de la selection alternative
Set selSpec = Application.Union(selSpec, Range(cellule.Address))
End If
Next
' ---- si la selection alternative existe sinon
If Not selSpec Is Nothing Then
selSpec.Select
else
msgbox "pas d'alternative",vbexclamation, "cristi de bine!!!"
end if
End Sub
Avatar
garnote
Bonjour,


Voir le fil débutant le 26-01-2009 à 02:54

Voici une macro à fignoler :

Sub Complément()
Dim comp As Range
Dim c As Range, s As Range, t As Range
Dim i%, k%
Set s = Selection
Set t = Range("SAISIE")
For Each c In t
i = i + 1
If Intersect(c, s) Is Nothing Then
k = k + 1
If k = 1 Then Set comp = t(i) Else Set comp = Union(comp, t(i))
End If
Next c
comp.Select
End Sub

Serge






"Alfred WALLACE" a écrit dans le message de news:

bonjour (re re re ...)
désolé de "spammer" le newsgroup ....
mais vous m'etes vraiment d'un énorme secours !


je suis toujours en recherche de méthodes sur mes zones
nommées...

ici, j'ai une zone "SAISIE" d'une seule ligne et de 7 colonnes.

je selectionne la colonne 1 à la colonne 5 appartenant à "SAISIE"


Ma quetion :

est ce que, je peux deselectionner la colonne 1 à 5 et selectionner le
reste (c'est
à dire colonne 6 à 8) d'une façon "simple" ?

une sorte d'opération booleenne qui pour la zone "SAISIE" inverse
ce qui est selectionné et ce qui ne l'ai pas.

exemple : (le caractére "_" représente la selection.)

SAISIE -->
'______****' si on inverse la selection çà donne
'******____'


j'espère avoir été clair.

Merci
José
Avatar
Daniel.C
A mon avis, oui, mais je ne suis pas sûr de comprendre... Le mieux est
de tester.
Daniel

Merci Daniel,

du coup, j'ai adapté ton code comme celà :

[SAISIE].Resize(, [SAISIE].Count - Selection.Count).Offset(,
Selection.Count).Select

çà fonctionne !

Si je souhaite diminuer le nombre de colonnes selectionnées de cette
nouvelle selection
je suppose que je dois faire un truc du genre :

selection.resize( , Selection.Count - 2) ?


Merci encore


On 3 fév, 11:18, Daniel.C wrote:
Bonjour.
A condition que les cellules sélectionnées commencent à gauche de la
plage :
[A1:G1].Resize(, 7 - Selection.Count).Offset(, Selection.Count).Select
Cordialement.
Daniel