Qq peut-il me donner le code VBA qui me permettrai de=20
r=E9aliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la=20
colonne B apparaisse le classement de ceux-ci.
exemple:
A B =20
17 5 =20
7 1 =20
14 4 =20
9 2 =20
13 3 =20
J'aimerai =E9galement pouvoir r=E9cup=E9rer les coordonn=E9es de=20
chaque chiffre =E0 savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)
Le 2=E8me chiffre (9) se trouve dans la cellule: Cells(5,1)
Le 3=E8me chiffre(13) se trouve dans la cellule: Cells(6,1)
etc..
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent.
Salut La petite procéduire suivante ma paraît assez adaptée (attention quand même au fait que je n'ai pas d'entête à mes colonnes A et B)...
Sub zaza() Range("B1").EntireColumn.Insert i = 0 For Each c In Range(Range("A1"), Range("A65536").End (xlUp)).Offset(0, 1) c.Value = i i = i + 1 Next c i = 1 Range("A1").CurrentRegion.Sort Range("A1"), xlAscending, , , , , , xlNo For Each c In Range(Range("A1"), Range("A65536").End (xlUp)).Offset(0, 2) c.Value = i i = i + 1 Next c Range("A1").CurrentRegion.Sort Range("B1"), xlAscending, , , , , , xlNo Range("B1").EntireColumn.Delete
' récupération de la deuxième plus petite valeur rang = 2 Set plage = Range("B1:B5") With Application.WorksheetFunction Set Range9 = Cells(.Match(.Small(plage, rang), plage, 0), 1) End With Range9.Select End Sub Si tu as besoin de plus de précision, n'hésite pas ! A+
V.
-----Message d'origine----- Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..
Est-ce possible?
Grand merci.
Stach ;-) .
Salut
La petite procéduire suivante ma paraît assez adaptée
(attention quand même au fait que je n'ai pas d'entête à
mes colonnes A et B)...
Sub zaza()
Range("B1").EntireColumn.Insert
i = 0
For Each c In Range(Range("A1"), Range("A65536").End
(xlUp)).Offset(0, 1)
c.Value = i
i = i + 1
Next c
i = 1
Range("A1").CurrentRegion.Sort Range("A1"),
xlAscending, , , , , , xlNo
For Each c In Range(Range("A1"), Range("A65536").End
(xlUp)).Offset(0, 2)
c.Value = i
i = i + 1
Next c
Range("A1").CurrentRegion.Sort Range("B1"),
xlAscending, , , , , , xlNo
Range("B1").EntireColumn.Delete
' récupération de la deuxième plus petite valeur
rang = 2
Set plage = Range("B1:B5")
With Application.WorksheetFunction
Set Range9 = Cells(.Match(.Small(plage, rang),
plage, 0), 1)
End With
Range9.Select
End Sub
Si tu as besoin de plus de précision, n'hésite pas !
A+
V.
-----Message d'origine-----
Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de
réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la
colonne B apparaisse le classement de ceux-ci.
exemple:
A B
17 5
7 1
14 4
9 2
13 3
J'aimerai également pouvoir récupérer les coordonnées de
chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)
Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1)
Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1)
etc..
Salut La petite procéduire suivante ma paraît assez adaptée (attention quand même au fait que je n'ai pas d'entête à mes colonnes A et B)...
Sub zaza() Range("B1").EntireColumn.Insert i = 0 For Each c In Range(Range("A1"), Range("A65536").End (xlUp)).Offset(0, 1) c.Value = i i = i + 1 Next c i = 1 Range("A1").CurrentRegion.Sort Range("A1"), xlAscending, , , , , , xlNo For Each c In Range(Range("A1"), Range("A65536").End (xlUp)).Offset(0, 2) c.Value = i i = i + 1 Next c Range("A1").CurrentRegion.Sort Range("B1"), xlAscending, , , , , , xlNo Range("B1").EntireColumn.Delete
' récupération de la deuxième plus petite valeur rang = 2 Set plage = Range("B1:B5") With Application.WorksheetFunction Set Range9 = Cells(.Match(.Small(plage, rang), plage, 0), 1) End With Range9.Select End Sub Si tu as besoin de plus de précision, n'hésite pas ! A+
V.
-----Message d'origine----- Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..
Est-ce possible?
Grand merci.
Stach ;-) .
Michel Gaboly
Bonjour,
Si VBA n'est pas une condition essentielle, on peut s'en passer, en utilisant des fonctions d'Excel :
Avec les valeurs indiquées, 17, 7 , 14, 9 et 13 dans les cellules A1 à A5 le classement en colonne B s'ob- tient avec la fonction RANG() :
En B1 :
=RANG(A1;A$1:A$5;1)
à recopier vers le bas, en respectant l'emplacement des "$" qui permettent d'avoir une référence mixte.
PETITE.VALEUR(Réf;D1) renvoie la plus petite (car D1 contient 1) valeur de la plage "Réf". PETITE.VALEUR(Réf;D2) renvoie la seconde plus (car D1 contient 2) petite valeur de la plage "Réf". ...
EQUIV(PETITE.VALEUR(Réf;D1);Réf;0) renvoie le numéro d'ordre de la cellule dans laquelle PETITE.VALEUR(Réf;D1), c'est-à-dire la + peti- te valeur apparaît dans "Ref", en l'occurrence 2, car 7 apparaît dans la seconde des 5 cellules.
LIGNE(Réf) renvoie le numéro de ligne de la cel- lule située au coin supérieur gauche de "Réf", soit 1.
renvoie le numéro de ligne dans laquelle apparaît la plus petite valeur de la plage.
La formule complète renvoie la référence corres- pondante.
Je peux t'envoyer le fichier en Bal perso, si tu veux.
Voilà.
Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..
Est-ce possible?
Grand merci.
Stach ;-)
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
Si VBA n'est pas une condition essentielle, on peut
s'en passer, en utilisant des fonctions d'Excel :
Avec les valeurs indiquées, 17, 7 , 14, 9 et 13 dans
les cellules A1 à A5 le classement en colonne B s'ob-
tient avec la fonction RANG() :
En B1 :
=RANG(A1;A$1:A$5;1)
à recopier vers le bas, en respectant l'emplacement
des "$" qui permettent d'avoir une référence mixte.
PETITE.VALEUR(Réf;D1) renvoie la plus petite
(car D1 contient 1) valeur de la plage "Réf".
PETITE.VALEUR(Réf;D2) renvoie la seconde plus
(car D1 contient 2) petite valeur de la plage "Réf".
...
EQUIV(PETITE.VALEUR(Réf;D1);Réf;0) renvoie
le numéro d'ordre de la cellule dans laquelle
PETITE.VALEUR(Réf;D1), c'est-à-dire la + peti-
te valeur apparaît dans "Ref", en l'occurrence 2,
car 7 apparaît dans la seconde des 5 cellules.
LIGNE(Réf) renvoie le numéro de ligne de la cel-
lule située au coin supérieur gauche de "Réf",
soit 1.
renvoie le numéro de ligne dans laquelle apparaît
la plus petite valeur de la plage.
La formule complète renvoie la référence corres-
pondante.
Je peux t'envoyer le fichier en Bal perso, si tu
veux.
Voilà.
Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de
réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la
colonne B apparaisse le classement de ceux-ci.
exemple:
A B
17 5
7 1
14 4
9 2
13 3
J'aimerai également pouvoir récupérer les coordonnées de
chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)
Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1)
Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1)
etc..
PETITE.VALEUR(Réf;D1) renvoie la plus petite (car D1 contient 1) valeur de la plage "Réf". PETITE.VALEUR(Réf;D2) renvoie la seconde plus (car D1 contient 2) petite valeur de la plage "Réf". ...
EQUIV(PETITE.VALEUR(Réf;D1);Réf;0) renvoie le numéro d'ordre de la cellule dans laquelle PETITE.VALEUR(Réf;D1), c'est-à-dire la + peti- te valeur apparaît dans "Ref", en l'occurrence 2, car 7 apparaît dans la seconde des 5 cellules.
LIGNE(Réf) renvoie le numéro de ligne de la cel- lule située au coin supérieur gauche de "Réf", soit 1.
renvoie le numéro de ligne dans laquelle apparaît la plus petite valeur de la plage.
La formule complète renvoie la référence corres- pondante.
Je peux t'envoyer le fichier en Bal perso, si tu veux.
Voilà.
Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..
Est-ce possible?
Grand merci.
Stach ;-)
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Hervé
Salut Stach, En complément des réponses de Michel et Vincent, et pour la richesse de la diversité : Je ne sais pas comment tu veux récupérer les Cells ; "Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)" donc à la fin de la proc, un message affiche l'adresse de cellule des différentes valeurs :
Sub Ranger() Dim Plage As Range Dim Cel As Range Dim Tbl Dim Chaine As String Dim I As Integer, J As Integer
Set Plage = Range([A1], [A65536].End(xlUp)) Tbl = Plage
J = Plage.Rows.Count
On Error Resume Next Do I = Application.WorksheetFunction.Max(Plage) Set Cel = Plage.Find(I, , xlValues) Cel.Offset(0, 1).Value = J J = J - 1 Chaine = Chaine & I _ & " se trouve dans la cellule " _ & Cel.Address(0, 0) & vbCrLf Cel.Value = "" Loop While Not Cel Is Nothing
Plage = Tbl
MsgBox Chaine
Erase Tbl Set Cel = Nothing Set Plage = Nothing End Sub
Hervé.
"Stach" a écrit dans le message news: 09e401c3b032$d14c7c90$ Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..
Est-ce possible?
Grand merci.
Stach ;-)
Salut Stach,
En complément des réponses de Michel et Vincent, et pour la richesse de la
diversité :
Je ne sais pas comment tu veux récupérer les Cells ; "Le 1er chiffre (7) se
trouve dans la cellule: Cells(3,1)" donc à la fin de la proc, un message
affiche l'adresse de cellule des différentes valeurs :
Sub Ranger()
Dim Plage As Range
Dim Cel As Range
Dim Tbl
Dim Chaine As String
Dim I As Integer, J As Integer
Set Plage = Range([A1], [A65536].End(xlUp))
Tbl = Plage
J = Plage.Rows.Count
On Error Resume Next
Do
I = Application.WorksheetFunction.Max(Plage)
Set Cel = Plage.Find(I, , xlValues)
Cel.Offset(0, 1).Value = J
J = J - 1
Chaine = Chaine & I _
& " se trouve dans la cellule " _
& Cel.Address(0, 0) & vbCrLf
Cel.Value = ""
Loop While Not Cel Is Nothing
Plage = Tbl
MsgBox Chaine
Erase Tbl
Set Cel = Nothing
Set Plage = Nothing
End Sub
Hervé.
"Stach" <anonymous@discussions.microsoft.com> a écrit dans le message news:
09e401c3b032$d14c7c90$a401280a@phx.gbl...
Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de
réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la
colonne B apparaisse le classement de ceux-ci.
exemple:
A B
17 5
7 1
14 4
9 2
13 3
J'aimerai également pouvoir récupérer les coordonnées de
chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)
Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1)
Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1)
etc..
Salut Stach, En complément des réponses de Michel et Vincent, et pour la richesse de la diversité : Je ne sais pas comment tu veux récupérer les Cells ; "Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1)" donc à la fin de la proc, un message affiche l'adresse de cellule des différentes valeurs :
Sub Ranger() Dim Plage As Range Dim Cel As Range Dim Tbl Dim Chaine As String Dim I As Integer, J As Integer
Set Plage = Range([A1], [A65536].End(xlUp)) Tbl = Plage
J = Plage.Rows.Count
On Error Resume Next Do I = Application.WorksheetFunction.Max(Plage) Set Cel = Plage.Find(I, , xlValues) Cel.Offset(0, 1).Value = J J = J - 1 Chaine = Chaine & I _ & " se trouve dans la cellule " _ & Cel.Address(0, 0) & vbCrLf Cel.Value = "" Loop While Not Cel Is Nothing
Plage = Tbl
MsgBox Chaine
Erase Tbl Set Cel = Nothing Set Plage = Nothing End Sub
Hervé.
"Stach" a écrit dans le message news: 09e401c3b032$d14c7c90$ Bonjour à tous,
Qq peut-il me donner le code VBA qui me permettrai de réaliser la chose suivante:
Dans la colonne A j'ai 5 chiffres. J'aimerai que dans la colonne B apparaisse le classement de ceux-ci.
exemple:
A B 17 5 7 1 14 4 9 2 13 3
J'aimerai également pouvoir récupérer les coordonnées de chaque chiffre à savoir:
Le 1er chiffre (7) se trouve dans la cellule: Cells(3,1) Le 2ème chiffre (9) se trouve dans la cellule: Cells(5,1) Le 3ème chiffre(13) se trouve dans la cellule: Cells(6,1) etc..