Voilà, j'aimerais trouver le moyen de sélectionner le plus grand nombre d'une colonne et d'attribuer ce nombre + 1 dans une cellule d'un fichier excel.
Version imprimable
Voilà, j'aimerais trouver le moyen de sélectionner le plus grand nombre d'une colonne et d'attribuer ce nombre + 1 dans une cellule d'un fichier excel.
Salut razorlok,
tu peux utiliser la formule "MAX" ça fais ce que tu aimerais je pense
un p'tit exemple vba
vala valaCode:
1
2
3
4
5
6
7
8
9 Dim vPlage As Range Dim vMax As Integer Set vPlage = Range("A1:a500") vMax = 0 For Each vCell In vPlage If vCell.Value > vMax Then vMax = vCell.Value Next Workbooks("tonfichier.xls").Worksheets("Feuil1").Cells(5, 1).Value = vMax
ou plus simple
Code:Range("B10").Formula = "=MAX(A:A)+1"
Merci de vos réponses, cela m'éclaire un peu plus.
Cependant, je désire ajouter ce nombre +1, que je compte a partir d'une feuille1, dans une feuille2. Existe-t-il une commande du genre :
Je voudrais donc afficher le résultat obtenu en feuille1 dans une cellule de la feuille2.Code:
1
2 Sheets("feuille2").Select Range("B14") = Sheets("feuille1").Cells("G3")
dans la mesure du possible évite les Select et Activate...
Code:Sheets("feuille2").Range("B14") = Sheets("feuille1").Range("G3")
En fait, vu que mes valeurs ne sont pas des suites de nombre (je commence a 56 et le nombre suivant est 150) j'ai pensé a une structure while :
Seulement je ne sais pas comment remplacer les ???? de façon a ce que MaxC reçoive la valeur suivante, sachant que le nombre peut passer, comme dans mon exemple, de 56 a 150...Code:
1
2
3
4
5
6
7
8
9 Dim MaxC As Integer Sheets("feuille2").Select Set vCode = Range("A4:A500") While vCode <> "" MaxC = ???? Sheets("feuille1").Select Sheets("feuille1").Range("D14") = MaxC + 1
Quel est l'intérêt de passer par une macro alors que ça marche très bien (et c'est plus simple, et c'est mis à jour automatiquement) avec de simples formules excel???
Tu mets:
Code:=MAX('feuille2'!A4:A500)+1
dans ta cellule D14 de la feuille1 et ça fera le même effet... (vérifier la syntaxe pour la zone sélectionnée en fonction du nom de la feuille... ou sélectionner en automatique)
Pourquoi faire compliqué quand on peut faire simple?
J'ai besoin d'affecter cette formule a un boutton plegat, c'est pour celà que je part dans un While...
Je pense que ma formule marcherait si je trouvais comment affecter a MaxC la valeur de la cellule suivante dans la colonne, dans ma ligne "MaxC = ????"
pas clair ... ton max..? il est censé contenir quoi ..? la valeur la plus "grande" dans ta colonne..A4:A500? ou la derniére valeur de ta colonne..
La valeur la plus grande, mais au pire, la dernière valeur, vu que j'ai fait un tri croissant.
en considérant que toutes tes cellules contiennent une valeur de A4 ... jusqu'à la cellule cherchée tu peu faire :
Ou en utilisant la fonction de feuille de calcul Max dans le code VBA :Code:sheets("feuille1").Range("D14") =Sheets("feuille2").Range("A4").End(xlDown) +1
Code:
1
2 sheets("feuille1").Range("D14") =Application.WorksheetFunction.Max (sheets("feuille2").Range("A4:A500"))+1
Ah, ça fonctionne!
Merci bien a vous pour vos réponses.
Encore une question de débutant, mais y-a-t'il une fonction pour copier le contenu d'une cellule dans une cellule d'une autre page ?
?? http://www.developpez.net/forums/sho...21&postcount=6Citation:
Envoyé par razorlok
Ah désolé j'avais oublié cette réponse.
Je viens d'essayer et celà m'efface les valeurs que je viens de saisir.
Je cherche une commande qui me permettrais de selectionner plusieurs cellules et de les copier dans d'autres cellules d'une feuille différente.
Est-ce possible ?
ben soit je comprends pas la question soit tu utilise mal le code .. pour plusieurs cellules tu peu écrire par exemple :
et ainsi tu copie les valeurs contenu dans la feuil2 du classeur courant en A4:A8 vers la feuil1 du même classeur en A6:A10 ...Code:
1
2 Sheets("Feuil1").range("A6:A10") = Sheets("Feuil2").range("A4:A8").value
En effet, c'est moi qui me suis trompé dans l'ordre des feuilles.
La commande marche bien.
Merci pour tout encore une fois!