OVH Cloud OVH Cloud

code de garnote

4 réponses
Avatar
gamma60
bonjour
je n'arrive pas à utiliser le code de Garnote peut-être trop subtil pour moi
le debogage bute sur la ligne 4 "fonction non définie",et l'aide me renvoie
sur ParamArray
pourriez-vous, patiemment, me commenter cette ligne 4
voici le code

Sub Ceci_Est_Mon_Numéro_De_Téléphone()
n = Array("51", "49", "48", "48", "45", "57", "50", "53")
For i = UBound(n) To 0 Step -1
num = num & Chr(n(i))
Next i
MsgBox num, vbInformation, "Serge Garneau"
End Sub


vu la longueur je suppose qu'il avait modifié son numero de tel
les compteurs se remplissent mais "num =" ne fonctionne pas
Aidez-moi je voudrai comprendre
merci

--
Claire

4 réponses

Avatar
JLuc
*Bonjour gamma60*,
Le probleme vient peut etre que tu travail en OPTION BASE 1
Donc l'indice 0 de ton tableau passe en dehors des ses limites.
Essaie
For i = UBound(n) To 1 Step -1
bonjour
je n'arrive pas à utiliser le code de Garnote peut-être trop subtil pour moi
le debogage bute sur la ligne 4 "fonction non définie",et l'aide me renvoie
sur ParamArray
pourriez-vous, patiemment, me commenter cette ligne 4
voici le code

Sub Ceci_Est_Mon_Numéro_De_Téléphone()
n = Array("51", "49", "48", "48", "45", "57", "50", "53")
For i = UBound(n) To 0 Step -1
num = num & Chr(n(i))
Next i
MsgBox num, vbInformation, "Serge Garneau"
End Sub


vu la longueur je suppose qu'il avait modifié son numero de tel
les compteurs se remplissent mais "num =" ne fonctionne pas
Aidez-moi je voudrai comprendre
merci



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS

Avatar
anonymousA
en complément de la réponse de J Luc écrire plutot
For i = UBound(n) To LBound(n) step -1 que
For i = UBound(n) To 0 Step -1

car effectivement dans ce cas, l'option base que tu as n'aura pas
d'importance.

L'option Base sert à référencer le N° d'index du 1er élement d'un
tableau. Ce paramètre peut être Option Base 1 ou Option Base 0.

ci-dessous ,extrait de l'aide d'Excel:

Instruction utilisée au niveau module pour déclarer la limite inférieure
par défaut des indices d'un tableau.

Syntaxe

Option Base {0 | 1}

Remarques

La base par défaut ayant la valeur 0, l'instruction Option Base n'est
jamais obligatoire. Si elle est utilisée, l'instruction doit apparaître
dans un module avant toute procédure. L'instruction Option Base ne peut
apparaître qu'une seule fois dans un module et doit précéder les
déclarations de tableau contenant des dimensions.

Note La clause To des instructions Dim, Private, Public, ReDim et
Static constitue un moyen plus souple de contrôler la plage des indices
d'un tableau. Toutefois, si vous ne définissez pas explicitement la
limite inférieure à l'aide d'une clause To, vous pouvez utiliser
l'instruction Option Base pour modifier la limite inférieure par défaut
et lui attribuer la valeur 1. La base d'un tableau créé à l'aide du mot
clé ParamArray a pour valeur zéro ; l'instruction Option Base n'affecte
ni le mot clé ParamArray (ni la fonction Array, lorsqu'elle est
qualifiée à l'aide du nom de sa bibliothèque de types, VBA.Array, par
exemple).

L'instruction Option Base modifie uniquement la limite inférieure des
tableaux situés dans le même module que l'instruction.

Option Base, instruction, exemple
Cet exemple utilise l'instruction Option Base pour redéfinir la valeur
par défaut d'indice de tableau de base, égale à 0. La fonction LBound
renvoie l'indice le plus faible disponible pour la dimension indiquée
d'un tableau. L'instruction Option Base est utilisée au niveau module
uniquement.

Option base 1 ' Attribue la valeur 1 aux indices de
' tableau par défaut.

Dim Lower
' Déclare les variables de tableau.
Dim MyArray(20), TwoDArray(3, 4)
Dim ZeroArray(0 To 5) ' Remplace l'indice de base par
' défaut.
' Utilise la fonction LBound pour déterminer les
' limites inférieures de tableaux.
Lower = LBound(MyArray) ' Renvoie 1.
Lower = LBound(TwoDArray, 2) ' Renvoie 1.
Lower = LBound(ZeroArray) ' Renvoie 0.


A+

bonjour
je n'arrive pas à utiliser le code de Garnote peut-être trop subtil pour moi
le debogage bute sur la ligne 4 "fonction non définie",et l'aide me renvoie
sur ParamArray
pourriez-vous, patiemment, me commenter cette ligne 4
voici le code

Sub Ceci_Est_Mon_Numéro_De_Téléphone()
n = Array("51", "49", "48", "48", "45", "57", "50", "53")
For i = UBound(n) To 0 Step -1
num = num & Chr(n(i))
Next i
MsgBox num, vbInformation, "Serge Garneau"
End Sub


vu la longueur je suppose qu'il avait modifié son numero de tel
les compteurs se remplissent mais "num =" ne fonctionne pas
Aidez-moi je voudrai comprendre
merci



Avatar
Pierre Archambault
Bonjour Claire,

Essaie ceci:

Sub Ceci_Est_Mon_Numéro_De_Téléphone()
Dim N As Variant
Dim i As Byte
Dim Num As String

N = Array("51", "49", "48", "48", "45", "57", "50", "53")
For i = 0 To UBound(N) '<--- Commencer à 0
Num = Chr(N(i)) & Num '<--- Inverser la concaténation
Next i
MsgBox Num, vbInformation, "Serge Garneau"

End Sub

Bonne chance
Pierre


"gamma60" a écrit dans le message de
news:ODoL5BM%
bonjour
je n'arrive pas à utiliser le code de Garnote peut-être trop subtil pour
moi

le debogage bute sur la ligne 4 "fonction non définie",et l'aide me
renvoie

sur ParamArray
pourriez-vous, patiemment, me commenter cette ligne 4
voici le code

Sub Ceci_Est_Mon_Numéro_De_Téléphone()
n = Array("51", "49", "48", "48", "45", "57", "50", "53")
For i = UBound(n) To 0 Step -1
num = num & Chr(n(i))
Next i
MsgBox num, vbInformation, "Serge Garneau"
End Sub


vu la longueur je suppose qu'il avait modifié son numero de tel
les compteurs se remplissent mais "num =" ne fonctionne pas
Aidez-moi je voudrai comprendre
merci

--
Claire




Avatar
gamma60
merci à vous
je progresse mais le résultat n'est pas encore ce que je veux
je finirai bien par y arriver.....un de ces jours
Bonne soirée

--
Claire