bonjour a tous
jai besoin daide sur un ptit bo
je veux faire une fonction vba qui récupére la plus grande valeur d'une colonne particuliere( disons B)
merci de votre aide
bonjour a tous
jai besoin daide sur un ptit bo
je veux faire une fonction vba qui récupére la plus grande valeur d'une colonne particuliere( disons B)
merci de votre aide
salut,
ben je pense à ceci:
-tu parcours chaque cellules de ta colonne. Tu enregistres la première valeur dans une variable,
-puis ligne suivante, tu compares la valeur de la cellule avec ta variable, si c'est plus grand, tu enregistres cette valeur dans ta variable, sinon, tu passe à la cellule suivante.
Au final tu auras dans ta variable la + grande valeur de ta colonne.
Je sais que tu as tout ce qu'il faut pour y arriver dans les tuto et faq
Xavier
tu sais deja combien tu as de ligne maxi dans la colonne ou non?
si tu le sais et que c'est 50 par exemple, tu peu faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 dim a as double a=0 for i = 1 to 50 if range("A" & i).value>a then 'par exemple tu veux tester la colonne A a = range("A" & i).value end if next i range("B1").value = a ' tu écris le résultat de la recherche dans B1
Location saisonnière dans le Lot:
http://www.lot-holidays.com
il me semble bien que dans le forum il y a un post qui traite de ça, qui pemet de retrouver la fin. Attends, je jette un oeil, fais pareil..
Xavier
c'est-il pas beau ça?
http://www.developpez.net/forums/sho...lignes+colonne
Xavier
lol ça doit faire le cinquième fois que je la mets cette ligne de code
Pour avoir la taille d'une colonne particulière (attention il ne faut pas de cellule vide au milieu de la colonne) il faut écrire :
Feuille c'est le nom de ta feuille et Debut c'est le nom de la première cellule de ta colonne (n'oublie pas les guillemets quand même )
Code : Sélectionner tout - Visualiser dans une fenêtre à part nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count
Note : quand je mets, on pourrait aussi bien mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part worksheets(Feuille).range(Debut).address & ":"Le seul intérêt c'est de pouvoir adapter si par exemple la première case de ta colonne est celle en dessous de Debut, alors tu mettras :
Code : Sélectionner tout - Visualiser dans une fenêtre à part "Debut:" &
Code : Sélectionner tout - Visualiser dans une fenêtre à part nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).offset(1,0).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count
Le lien qu'a mis asdorve te permettra de connaître la dernière ligne d'une région mais pas forcément d'une colonne...
Je m'explique, imaginons que tu veuilles le nb de lignes de la colonne A. Si ta colonne A contient 100 lignes et ta colonne B 200 et que tu te sert de currentregion sur le debut de ta colonne A tu vas te retrouver avec un résultat de 200 lignes (enfin je crois bien ) vu qu'il considère tt la région A:B
Bonjour,
Juste une petite remarque, la fonction Max d'Excel ne marche pas ????
+
Théo
Forums VB : lire la notice
La touche existe pour être utilisée
Pensez au tag
Pour ceux n'ayant pas l'aide installée :
- Aide MSDN pour VB6
- Aide MSDN pour VBA
Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.
Re,
Petit complément pour la fonction Max dans VBA : regarder dans l'aide du côté de la propriété WorksheetFunction
+
Théo
Forums VB : lire la notice
La touche existe pour être utilisée
Pensez au tag
Pour ceux n'ayant pas l'aide installée :
- Aide MSDN pour VB6
- Aide MSDN pour VBA
Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.
Alala,
toujours aussi compliqué le comcombre !
nbligne=worksheets(Feuille).range(worksheets(Feuille).range(Debut).address & ":" & worksheets(Feuille).range(Debut).end(xldown).address).rows.count
c'est pas plus beau ca ?
Sinon je pense que la solution de Théo à l'air bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DerniereLigne = Worksheets(NomFeuilleSource).Range("D1").End(xlDown).Row
on peut faire plus rapide que la copie dans une variable temporaire je pense...
un sort et on recupere la valeur de la derneire ligne (je sais plus si ca trie de facon croissante ou non...)
Je rappelle tout de même qu'il souhaite :Envoyé par Elstak
... et non la dernière ligne définie dans la colonne (nuance)Envoyé par VBBBA
Théo
Forums VB : lire la notice
La touche existe pour être utilisée
Pensez au tag
Pour ceux n'ayant pas l'aide installée :
- Aide MSDN pour VB6
- Aide MSDN pour VBA
Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.
justement, on avait parlé de recherche de la dernière ligne si on utilise ma proposition, qui consistait à parcourir la colonne particulière, de faire une boucle de la ligne 1 à la ligne "DernièreLigne" et d'utiliser une variable + comparaison avec la valeurdu champs en cours.
Xavier
Et bien pour moi une colonne particuliere est connue (comme sa colonne B qu'il a dit en exemple) et donc on peut utiliser mon code en mettant "B1".
Il n'a pas di une colonne variable, changeante....
j'ai bien compris ta solution asdorve mais le "sort" d'excel est beaucoup plus rapide (ca crois moi !) et donc y'a jsute à lancer un sort et récuperer la valeur de sa colonne B qui est à la ligne derniere ligne un fois le Sort fait...
Code : Sélectionner tout - Visualiser dans une fenêtre à part cells(derniereligne,2)
possible, je ne suis pas expert en vba-Excel... Je connais pas tout
Xavier
Personnellement, je pense que la fonction Max est la plus rapide (intrinsèquement codée) que la manipulation des données avec un sort ...Envoyé par Elstak
...
Théo
Forums VB : lire la notice
La touche existe pour être utilisée
Pensez au tag
Pour ceux n'ayant pas l'aide installée :
- Aide MSDN pour VB6
- Aide MSDN pour VBA
Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.
quoi qu'il en soit, il y a ici 3 façons plus ou moins rapide de régler le problème. Il serait bien que l'auteur de ce post se manifeste...
Xavier
Juste une remarque pour mon ami elstak
Mon bout de code est plus long mais il donne le nb de ligne d'une plage spécifique et pas le numéro de la dernière ligne de la plage!!!
Réfléchis-y tu verras c'est très différent
bonjour
tu peux tester
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Application.WorksheetFunction.Large(Columns(2), 1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Application.WorksheetFunction.Subtotal(4, Columns(2))
bonne soiree
michel
vraiment merci pour toutes vos reponses
ca ma aidé.
maintenant je veux récupérer le numéro de la ligne qui contient le max dans une variable.
c'est plus interessant je trouve.
vu l'interet qu'a porté mon sujet je précise mon projet.
jai deux classeurs.
dans un premier jai plusieurs colonnes
je veuxx en fait prendre chaque colonne la trier par ordre decroissant et prendre unqiuement les 3 plus grandes valeurs.
ensuite je recopie ces valeurs avec le libélé de la colonne 1 correspondant dans un tableau de lautre classeur.
simple et compliqué à la fois...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager