Declaration de variable

  • Initiateur de la discussion Initiateur de la discussion willce
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

W

willce

Guest
Bonjour,

Une question a 2 balles (!!)

Je souhaite déclarer une variable "double" mais qui dépend d'autres variables texte (string).

Exemple:
J'ai 2 données "Excel" et "Downloads" et je veux que:
Result("Excel")=10
Result("Downloads")=100

Dans cet exemple, j'essaie:

dim Result() as double => ne marche pas
dim Result(byref as string) as double => ne marche pas


Z'avez une idée ?! 🙂
Merci
 
Re : Declaration de variable

Salut willce et le forum
Result("Excel")=10
Result("Downloads")=100
.........
dim Result() as double => ne marche pas
dim Result(byref as string) as double => ne marche pas
Questions :
- Qu'est-ce que "Résult()" ? Une variable tableau ?
- Qu'est-ce que "Excel" et "Download" ? Un indice ne peut être que numérique. Donc, si ce sont des variables, les guillemets sont de trop. Si c'est du texte, un indice ne peut être que numérique.
A+
 
Re : Declaration de variable

. Si c'est du texte, un indice ne peut être que numérique.
A+

Aie, c'est ce que je redoutais: il s'agit d'un indice que je souhaite pouvoir traiter en texte. J'essaie de vous repréciser mon problème car je me rend compte que ce n'était pas clair..

1er tableau avec 2 colonnes et 1500 lignes:
- Colonne 1: numéros de contrats, par exemple: 33659878Tr
- Colonne 2: taux de cotisations, par exemple: 0.2%

Second tableau avec x lignes (environ 15000) qui représentent des personnes adhérentes aux contrats.

L'idée, pour chacune de ces personnes, est de rapatrier les taux de cotisations.


Vu le volume, j'ai donc construit mon code VBA en 2 parties:

1. J'associe le numéros de contrats aux différents taux:

Do While cells(i,1)<> ""
Taux(range(1er tableau).cells(i,1).value) = cells(i,2).value
loop

Avec mon exemple, j'obtiens pour ma première ligne:
Taux(33659878Tr)=0.2%

2.Pour chaque personnes, je récupère le taux:

For j=1 to 15000
Taux(j)= taux(range(2eme tableau).cells(j,2).value)
next j
Avec mon exemple, si le premier individu cotise sur le contrat 33659878Tr alors:
Taux(1) = taux (33659878Tr ) = 0.2%

Et cela marche très bien avec des indices.... numériques, snif !

Bon, en rallongeant la procedure je m'en sors mais c'est plus long => je vais tenter de faire référence aux numéros de lignes...

Merci de vos réponses en tous cas.....
 
Re : Declaration de variable

Salut willce et le forum
Malgré tes explications, je ne comprends pas ce que tu veux faire
Do While cells(i,1)<> ""
Taux(range(1er tableau).cells(i,1).value) = cells(i,2).value
loop

Avec mon exemple, j'obtiens pour ma première ligne:
Taux(33659878Tr)=0.2%
Si ton numéro de contrat est "33659878Tr", Excel le considère comme du texte (il a des lettres) et ne peut donc être utilisé en indice. Mais rien ne t'empêche de te créer une variable tableau à 2 dimensions
dim Taux(2,1500)
avec une boucle qui va charger, pour la ligne X ta variable :
Taux(1, X)= cells(X, "A")
Taux(2, X)= cells(X, "B")
2.Pour chaque personnes, je récupère le taux:
For j=1 to 15000
C'est une erreur de fixer en dur un nombre de lignes. if faut qu'excel le calcule (Cells(Rows.Count,"B").end(xlUp).row)
Si tu fixes 15000 et que tu en as plus, il faut revoir la macro, pour ne pas en oublier. Si tu en as moins, tu perds du temps.

Hormis cela, quel est le but ? Là, tu nous expliques la méthode (ou une partie de la méthode) que tu comptes employer pour arriver à un résultat, qu'on ne connaît pas. Ta macro doit servir à parvenir à ce résultat. Mais il existe un tas de code pour parvenir à un même résultat. Le but d'une demande d'aide n'est pas de t'aider à faire marcher un code bancal : c'est de t'aider à trouver un code, plus performant, plus adapté, mais qui te convienne.

Ce que tu est en train de faire, c'est de demander comment additionner 15 nombres. Alors qu'en expliquant qu'ils sont identiques, on peut t'expliquer que la multiplication existe (Ouais, je sais que cet exemple est nul).
Donc : Quelles Sont les données et quel est le but à atteindre avec ces données ?
A+
 
Re : Declaration de variable

Bonjour,
Salut willce et le forum
Malgré tes explications, je ne comprends pas ce que tu veux faire(...) Hormis cela, quel est le but ?
A+
Bon...Je pensais être plus clair avec un exemple...Je constate que ça ne doit pas être le cas.

C'est une erreur de fixer en dur un nombre de lignes.
A+
Bien sur ! la problématique n'était pas là, c'est pourquoi j'ai simplifié en mettant 15000 en dur !
La prochaine fois, je chargerai un fichier Excel avec le code: ce sera, je crois, beaucoup plus clair...Donc Mea culpa....

Lors de ta première intervention Gorfael, tu avais répondu à ma problématique: un indice doit être numérique, ce que je ne savais pas.

Enfin, pour l'anecdote, j'ai effectivement contourné mon problème en associant à ma variable taux, le numéro de ligne de mon tableau.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
470
W
Réponses
1
Affichages
323
Retour