OVH Cloud OVH Cloud

gros pb de colonne

3 réponses
Avatar
pierref
bonjour,

jai souci de colonne...

voici mon code :

[noms].Cells(2, i).Value =3D "=3DMOYENNE(R=E9sultats!A3:A12)"

cette ligne ce trouve dans une boucle.

J'aimerais faire evoluer la lettre de colonne en fonction=20
de i qui est incr=E9ment=E9 par la boucle.

une id=E9e ?

merci=20

pierre

3 réponses

Avatar
pierref
ben pour ceux que ca interesse, en fait jai le truc

il faut faire Chr(64 + i)

d'ou : si i= 1 ca donne A
si i = 2 ca donne B

etc..

a+


-----Message d'origine-----
bonjour,

jai souci de colonne...

voici mon code :

[noms].Cells(2, i).Value = "=MOYENNE(Résultats!A3:A12)"

cette ligne ce trouve dans une boucle.

J'aimerais faire evoluer la lettre de colonne en fonction
de i qui est incrémenté par la boucle.

une idée ?

merci

pierre
.



Avatar
chrisn
Bonsoir,

"pierref" a écrit dans le message de news:

il faut faire Chr(64 + i)
d'ou : si i= 1 ca donne A
si i = 2 ca donne B
etc..


C'est une formule intéressante jusqu'à la colonne 26, mais
inutilisable au delà

-----Message d'origine----->voici mon code :

[noms].Cells(2, i).Value = "=MOYENNE(Résultats!A3:A12)"
[...]
J'aimerais faire evoluer la lettre de colonne en fonction

Quelque chose dans chaque boucle du style :


Range("F1").Select
ActiveCell.Offset(1, i).Value...
devrait convenir.


--
chrisn
mettre le bon fai, libertysurf pour me répondre


Avatar
Clément Marcotte
Bonjour,

Des solutions "agricoles" (1) comme dirait Jean-Claude Bellamy, en
partant de l'adresse de la
cellule.

Sub DismoiOutuEsEtJeTeDiraiLesLettresdescolonnes()
Dim ladresse As String, laplace1 As Byte
Dim laplace2 As Byte
Dim lacolonne As String, message As String
ladresse = ActiveCell.Address
laplace1 = InStr(ladresse, "$")
laplace2 = InStr(laplace1 + 1, ladresse, "$")
lacolonne = Mid(ladresse, laplace1 + 1, laplace2 - laplace1 - 1)
message = "Le pointeur se trouve en colonne " & lacolonne
MsgBox message
End Sub

Une fonction qui permet de retourner soit
l'adresse, soit la lettre de la colonne, selon que le troisième
paramètre est "a", "A", "C" ou c

Function IlEstOu(noligne As Long, nocolonne As Integer, _
cherchequoi As String)
'Clément Marcotte
'Amos Québec
'Si cherchequoi = "a" ou "A" , on cherche l'adresse
'Si cherchequoi = "c" ou "C" , on cherche la colonne
Dim ladresse As String, laplace1 As Byte
Dim laplace2 As Byte, lacolonne As String
Select Case UCase(cherchequoi)
Case "A"
Cells(noligne, nocolonne).Select
IlEstOu = ActiveCell.Address
Case "C"
ladresse = ActiveCell.Address
laplace1 = InStr(ladresse, "$")
laplace2 = InStr(laplace1 + 1, ladresse, "$")
lacolonne = Mid(ladresse, laplace1 + 1, laplace2 - laplace1 - 1)
IlEstOu = lacolonne
Case Else
IlEstOu = "Impossible de déterminer le résultat"
End Select
End Function


(1) Dans le langage de de JCB, une solution agricole est une solution
qui fonctionne comme du monde, sans être nécessairement la plus
sophistiquée. Il n'y a rien de péjoratif envers les agriculteurs

"pierref" a écrit dans le
message de news:27fb01c3e0f6$15d65310$
bonjour,

jai souci de colonne...

voici mon code :

[noms].Cells(2, i).Value = "=MOYENNE(Résultats!A3:A12)"

cette ligne ce trouve dans une boucle.

J'aimerais faire evoluer la lettre de colonne en fonction
de i qui est incrémenté par la boucle.

une idée ?

merci

pierre