Trouver les colonnes de gauche et droite d'une sélection
20 réponses
AfterBoy
Bonjour,
J'ai une s=E9lection(range) et je veux savoir la colonne de gauche et
droite de la s=E9lection.
Ex : S=E9lection de B2:E2 donc gauche =3D 2 et droite =3D 5
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
J'ai une sélection(range) et je veux savoir la colonne de gauche et droite de la sélection. Ex : Sélection de B2:E2 donc gauche = 2 et droite = 5
merci
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose
que ce qui te gêne c'est de balayer toutes les cellules dans le cas de
grosses sélections... me gouré-je ?
Mac
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%23TSu17Y6GHA.3644@TK2MSFTNGP03.phx.gbl...
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage
est plus à gauche que celle de la première
et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma
proposition.
Je voulais éviter ces boucles, un with peut-être?...
@+
lSteph
Sub testr()
Dim prmc, drmc
prmc = 256
drmc = 1
For Each c In Selection.Cells
prmc = WorksheetFunction.Min(prmc, c.Column)
drmc = WorksheetFunction.Max(drmc, c.Column)
Next
MsgBox prmc & ":" & drmc
End Sub
"isabelle" <iii@iii> a écrit dans le message de news:
%23sTigQY6GHA.2288@TK2MSFTNGP05.phx.gbl...
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas :
premC = Selection.Areas(1).column
Mac
"isabelle" <iii@iii> a écrit dans le message de news:
uG%23ih2V6GHA.4304@TK2MSFTNGP03.phx.gbl...
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
J'ai une sélection(range) et je veux savoir la colonne de gauche et droite de la sélection. Ex : Sélection de B2:E2 donc gauche = 2 et droite = 5
merci
lSteph
Bonjour Isa et DarthMac, i tutti,
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" a écrit dans le message de news: u4xm$
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
J'ai une sélection(range) et je veux savoir la colonne de gauche et droite de la sélection. Ex : Sélection de B2:E2 donc gauche = 2 et droite = 5
merci
Bonjour Isa et DarthMac, i tutti,
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse,
ce qui me turlupine c'est qu'il y a probablement un moyen
plus direct de désigner ces extrémités et d'effectuer la comparaison
sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" <macgyver@free.fr> a écrit dans le message de news:
u4xm$fZ6GHA.1244@TK2MSFTNGP03.phx.gbl...
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose
que ce qui te gêne c'est de balayer toutes les cellules dans le cas de
grosses sélections... me gouré-je ?
Mac
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%23TSu17Y6GHA.3644@TK2MSFTNGP03.phx.gbl...
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage
est plus à gauche que celle de la première
et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma
proposition.
Je voulais éviter ces boucles, un with peut-être?...
@+
lSteph
Sub testr()
Dim prmc, drmc
prmc = 256
drmc = 1
For Each c In Selection.Cells
prmc = WorksheetFunction.Min(prmc, c.Column)
drmc = WorksheetFunction.Max(drmc, c.Column)
Next
MsgBox prmc & ":" & drmc
End Sub
"isabelle" <iii@iii> a écrit dans le message de news:
%23sTigQY6GHA.2288@TK2MSFTNGP05.phx.gbl...
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas :
premC = Selection.Areas(1).column
Mac
"isabelle" <iii@iii> a écrit dans le message de news:
uG%23ih2V6GHA.4304@TK2MSFTNGP03.phx.gbl...
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" a écrit dans le message de news: u4xm$
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
J'ai une sélection(range) et je veux savoir la colonne de gauche et droite de la sélection. Ex : Sélection de B2:E2 donc gauche = 2 et droite = 5
merci
DarthMac
llo guys
peut-être un moyen de ne boucler que la première ligne de chaque plage... j'y réfléchirai ;-)
Mac
"lSteph" a écrit dans le message de news:
Bonjour Isa et DarthMac, i tutti,
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" a écrit dans le message de news: u4xm$
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
J'ai une sélection(range) et je veux savoir la colonne de gauche et droite de la sélection. Ex : Sélection de B2:E2 donc gauche = 2 et droite = 5
merci
llo guys
peut-être un moyen de ne boucler que la première ligne de chaque plage...
j'y réfléchirai ;-)
Mac
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
OcSvque6GHA.2120@TK2MSFTNGP03.phx.gbl...
Bonjour Isa et DarthMac, i tutti,
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse,
ce qui me turlupine c'est qu'il y a probablement un moyen
plus direct de désigner ces extrémités et d'effectuer la comparaison
sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" <macgyver@free.fr> a écrit dans le message de news:
u4xm$fZ6GHA.1244@TK2MSFTNGP03.phx.gbl...
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose
que ce qui te gêne c'est de balayer toutes les cellules dans le cas de
grosses sélections... me gouré-je ?
Mac
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%23TSu17Y6GHA.3644@TK2MSFTNGP03.phx.gbl...
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage
est plus à gauche que celle de la première
et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma
proposition.
Je voulais éviter ces boucles, un with peut-être?...
@+
lSteph
Sub testr()
Dim prmc, drmc
prmc = 256
drmc = 1
For Each c In Selection.Cells
prmc = WorksheetFunction.Min(prmc, c.Column)
drmc = WorksheetFunction.Max(drmc, c.Column)
Next
MsgBox prmc & ":" & drmc
End Sub
"isabelle" <iii@iii> a écrit dans le message de news:
%23sTigQY6GHA.2288@TK2MSFTNGP05.phx.gbl...
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas :
premC = Selection.Areas(1).column
Mac
"isabelle" <iii@iii> a écrit dans le message de news:
uG%23ih2V6GHA.4304@TK2MSFTNGP03.phx.gbl...
peut-être un moyen de ne boucler que la première ligne de chaque plage... j'y réfléchirai ;-)
Mac
"lSteph" a écrit dans le message de news:
Bonjour Isa et DarthMac, i tutti,
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
"DarthMac" a écrit dans le message de news: u4xm$
ah... Steph,
elle me plait bien cette petite boucle là pourtant... mais bon je suppose que ce qui te gêne c'est de balayer toutes les cellules dans le cas de grosses sélections... me gouré-je ?
Mac
"lSteph" a écrit dans le message de news: %
Bonsoir Isabelle,
Il me semble que si la première cellule troisiéme plage est plus à gauche que celle de la première et la dernière de la seconde plage plus à droite que la troisième ...
En revanche je suis certain que l'on doit pouvoir simplifier ma proposition. Je voulais éviter ces boucles, un with peut-être?...
@+ lSteph
Sub testr() Dim prmc, drmc prmc = 256 drmc = 1 For Each c In Selection.Cells prmc = WorksheetFunction.Min(prmc, c.Column) drmc = WorksheetFunction.Max(drmc, c.Column) Next MsgBox prmc & ":" & drmc End Sub
"isabelle" a écrit dans le message de news: %
bonjour Mac,
oui pourquoi pas, y a plusieurs possibilité,
une autre serait,
prmC = Selection.Item(1).Column
isabelle
Isabelle,
dans l'idée de ton derC, pourquoi pas : premC = Selection.Areas(1).column
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse,
ce qui me turlupine c'est qu'il y a probablement un moyen
plus direct de désigner ces extrémités et d'effectuer la comparaison
sans être obligé de boucler toutes les cellules.
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
Puis-je me permettre Isabelle, Selon le contenu de la plage des cellules, tu risques d'avoir des surprises avec le paramètre XlValues
Imagine que la dernière colonne de l'application contient des formules renvoyant "" comme dans =si(a1=5;"","ça marche") et bien ta ligne de code ne trouvera pas la dernière colonne du tableau mais bien la dernière colonne affichant des "Valeurs" Ce paramètre simple en apparence fout le bordel si on n'y pas gare... et comme l'explication est insuffisante dans l'aide d'excel, J'ai commis un excellent article sur le sujet (c'est le seul que je connaisse ;-)) ) disponible là : http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate
Puis-je me permettre Isabelle,
Selon le contenu de la plage des cellules, tu risques d'avoir des surprises avec le
paramètre XlValues
Imagine que la dernière colonne de l'application contient des formules renvoyant ""
comme dans =si(a1=5;"","ça marche") et bien ta ligne de code ne trouvera pas
la dernière colonne du tableau mais bien la dernière colonne affichant des "Valeurs"
Ce paramètre simple en apparence fout le bordel si on n'y pas gare... et comme
l'explication est insuffisante dans l'aide d'excel, J'ai commis un excellent article
sur le sujet (c'est le seul que je connaisse ;-)) ) disponible là :
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate
Puis-je me permettre Isabelle, Selon le contenu de la plage des cellules, tu risques d'avoir des surprises avec le paramètre XlValues
Imagine que la dernière colonne de l'application contient des formules renvoyant "" comme dans =si(a1=5;"","ça marche") et bien ta ligne de code ne trouvera pas la dernière colonne du tableau mais bien la dernière colonne affichant des "Valeurs" Ce paramètre simple en apparence fout le bordel si on n'y pas gare... et comme l'explication est insuffisante dans l'aide d'excel, J'ai commis un excellent article sur le sujet (c'est le seul que je connaisse ;-)) ) disponible là : http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate
MichDenis
Tu peux m'expliquer ce que vous cherchez.... je n'ai pas vraiment saisi .. est-ce tout siimplement la premère et la dernière colonne d'une plage ?
"isabelle" a écrit dans le message de news: % oublier ça, ça ne marche pas :-( isabelle
Tu peux m'expliquer ce que vous cherchez.... je n'ai pas vraiment saisi .. est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente, qui fonctionnera peu importe l'ordre de sélection par exemple les colonnes EDF EFD et le tout sans boucle
merci pour ton aide, isabelle
Salut,
Tu peux m'expliquer ce que vous cherchez....
je n'ai pas vraiment saisi ..
est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente,
qui fonctionnera peu importe l'ordre de sélection
par exemple les colonnes
EDF
EFD
et le tout sans boucle
Tu peux m'expliquer ce que vous cherchez.... je n'ai pas vraiment saisi .. est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente, qui fonctionnera peu importe l'ordre de sélection par exemple les colonnes EDF EFD et le tout sans boucle
merci pour ton aide, isabelle
lSteph
Bonjour les amis,
Oui! on cherche!.. par plage dans la selection ceci devrait boucler bien moins de cellules :
Sub tttt() Dim a As Range, prmc As Byte, drmc As Byte Application.ScreenUpdating = False prmc = 255 drmc = 1 For Each a In Selection.Areas prmc = WorksheetFunction.Min(prmc, a.Cells(1).Column) drmc = WorksheetFunction.Max(drmc, a.Cells(a.Cells.Count).Column) Next MsgBox prmc & ":" & drmc End Sub
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
Bonjour les amis,
Oui! on cherche!.. par plage dans la selection
ceci devrait boucler bien moins de cellules :
Sub tttt()
Dim a As Range, prmc As Byte, drmc As Byte
Application.ScreenUpdating = False
prmc = 255
drmc = 1
For Each a In Selection.Areas
prmc = WorksheetFunction.Min(prmc, a.Cells(1).Column)
drmc = WorksheetFunction.Max(drmc, a.Cells(a.Cells.Count).Column)
Next
MsgBox prmc & ":" & drmc
End Sub
@+
lSteph
"isabelle" <iii@iii> a écrit dans le message de news:
ez$0uVh6GHA.4876@TK2MSFTNGP05.phx.gbl...
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse,
ce qui me turlupine c'est qu'il y a probablement un moyen
plus direct de désigner ces extrémités et d'effectuer la comparaison
sans être obligé de boucler toutes les cellules.
Oui! on cherche!.. par plage dans la selection ceci devrait boucler bien moins de cellules :
Sub tttt() Dim a As Range, prmc As Byte, drmc As Byte Application.ScreenUpdating = False prmc = 255 drmc = 1 For Each a In Selection.Areas prmc = WorksheetFunction.Min(prmc, a.Cells(1).Column) drmc = WorksheetFunction.Max(drmc, a.Cells(a.Cells.Count).Column) Next MsgBox prmc & ":" & drmc End Sub
Oui, on peut toujours désactiver la m.a.j. ecran , screenupdating:úlse, ce qui me turlupine c'est qu'il y a probablement un moyen plus direct de désigner ces extrémités et d'effectuer la comparaison sans être obligé de boucler toutes les cellules.
@+
lSteph
isabelle
correction, par exemple les colonnes EGB EBG
isabelle
Salut,
Tu peux m'expliquer ce que vous cherchez.... je n'ai pas vraiment saisi .. est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente, qui fonctionnera peu importe l'ordre de sélection par exemple les colonnes EDF EFD et le tout sans boucle
merci pour ton aide, isabelle
correction,
par exemple les colonnes
EGB
EBG
isabelle
Salut,
Tu peux m'expliquer ce que vous cherchez....
je n'ai pas vraiment saisi ..
est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente,
qui fonctionnera peu importe l'ordre de sélection
par exemple les colonnes
EDF
EFD
et le tout sans boucle
Tu peux m'expliquer ce que vous cherchez.... je n'ai pas vraiment saisi .. est-ce tout siimplement la premère et la dernière colonne d'une plage ?
oui, la premère colonne d'une plage non adjacente, qui fonctionnera peu importe l'ordre de sélection par exemple les colonnes EDF EFD et le tout sans boucle