Tobi26
Messages postés56Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention 6 juillet 2006
-
17 mai 2006 à 11:01
Tobi26
Messages postés56Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention 6 juillet 2006
-
17 mai 2006 à 13:38
NHenry avais réussi à répondre à ma question concernant la propriété formula (cf post d'hier), mais il y a une erreur que je viens de découvrir aujourd'hui :
En fait si on donne 27 comme valeur pour a (dans mon exemple), le code ne fonctionne plus et il y a une erreur du type "Erreur définie par l'application ou par l'objet", je pense que cette erreur arrive au moment où les colonnes prennent le format AA, AB, AC etc.
Je donne à nouveau mon code pour pouvoir résoudre ce problème :
Sub essai()
Dim a, b, c, d As Integer
a = 27
b = 8
c = 4
d = 8
Cells(8, 2).Formula = "=$" + Chr$(Asc("A") + a - 1) + "$" + Format(b) + "+$" + Chr$(Asc("A") + c - 1) + "$" + Format(d)
Cells(8, 2).NumberFormat = "General"
End Sub
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 mai 2006 à 11:09
Salut,
(je suis clélèbre )
Oui, ça vien de là.
private function GetColumnName(byval pIndex as long) as string
if pIndex<=26 then
GetColumnName=chr$(asc("a")+pIndex-1)
else
GetColumeName=chr$(asc("a")+(pindex MOD 27)-1))+chr$(asc("a")+int(pindex /27)))
End if
End Fuunction
puis tu remplace :
Chr$(Asc("A") + a - 1)
par
GetColumnName(a)
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Tobi26
Messages postés56Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention 6 juillet 2006 17 mai 2006 à 11:19
Je n'arrive pas encore à le faire fonctionner mais je pense que c'est une erreur de ma part. (surtt que je ne comprend pas trop le code depuis hier en fait lol :-p )
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 mai 2006 à 11:23
Bonjour
Met peut-être la patie du code qui pose pb.
Chr : transforme un nombre en son équivalent ASCII
Asc : fait l'inverse.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tobi26
Messages postés56Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention 6 juillet 2006 17 mai 2006 à 11:28
Le code en entier
<hr size="2" width="100%" />Function GetColumnName(ByVal pIndex As Long) As String
If pIndex <= 26 Then
GetColumnName = Chr$(Asc("a") + pIndex - 1)
Else
GetColumnName = ((Chr$(Asc("a") + (pIndex Mod 27) - 1)) + Chr$(Asc("a") + Int(pIndex / 27)))
End If
End Function
<hr size="2" width="100%" />Sub essai()
Dim a, b, c, d As Integer
a = 27
b = 8
c = 4
d = 8