Difficultés pour coder une macro et la lancer
Résolu/Fermé
ErnstP
Messages postés
11
Date d'inscription
mardi 13 juin 2017
Statut
Membre
Dernière intervention
15 juin 2017
-
Modifié le 15 juin 2017 à 14:10
ErnstP Messages postés 11 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 15 juin 2017 - 15 juin 2017 à 15:45
ErnstP Messages postés 11 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 15 juin 2017 - 15 juin 2017 à 15:45
A voir également:
- Difficultés pour coder une macro et la lancer
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour apprendre à coder - Guide
- Macro word - Guide
- Comment coder son whatsapp - Guide
- Lancer une application au démarrage windows 10 - Guide
3 réponses
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
Modifié le 15 juin 2017 à 14:27
Modifié le 15 juin 2017 à 14:27
Bonjour
Pas tout relu mais
1. ici tu as colXi, alors que la variable est coXi
Tu affiches une (seule) valeur AYN = la dernière valeur du tableau AY, dans la cellule A6
Si tu veux afficher tous les AY(k) à partir de la cellule A6 et en descendant, il te faut un truc du genre (placé après Next k)
3. Il y en a peut être d'autres
Cdlmnt
Pas tout relu mais
1. ici tu as colXi, alors que la variable est coXi
For i = 1 To n2. pas compris cette ligne placée après Next k
TX(i) = Range(colXi & listart + i - 1).Value
TF(i) = Range(colFi & listart + i - 1).Value
Next i
Range("A6").Value = AYN
Tu affiches une (seule) valeur AYN = la dernière valeur du tableau AY, dans la cellule A6
Si tu veux afficher tous les AY(k) à partir de la cellule A6 et en descendant, il te faut un truc du genre (placé après Next k)
Range("A6").Resize(n,1) = Application.Transpose(AY)
3. Il y en a peut être d'autres
Cdlmnt
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
Modifié le 15 juin 2017 à 14:49
Modifié le 15 juin 2017 à 14:49
4. qd j'essaye de lancer la macro j'obtiens le message :"L'indice n'appartient pas à la sélection".
Sur quelle ligne l'erreur se produit elle ?
Quand excel t'envoie dans l'editeur vba il te faut passer la souris sur les variables de la ligne "fautive" et contrôler leur valeur
5. tu as déclaré i, k, k1, n de type byte, si ça dépasse 255, il y aura une erreur
6. ici k1 va dépasser n (quand k1=n)
RQ. Lorsque tu envoies du code, utilises la coloration syntaxique - option basic (la 5° icone dans la barre des outil de l'editeur situé au dessus de cette fenêtre)
Sur quelle ligne l'erreur se produit elle ?
Quand excel t'envoie dans l'editeur vba il te faut passer la souris sur les variables de la ligne "fautive" et contrôler leur valeur
5. tu as déclaré i, k, k1, n de type byte, si ça dépasse 255, il y aura une erreur
6. ici k1 va dépasser n (quand k1=n)
For k1 = k + 1 To n
SX = SX + TX(k1 + 1)
Next k1
RQ. Lorsque tu envoies du code, utilises la coloration syntaxique - option basic (la 5° icone dans la barre des outil de l'editeur situé au dessus de cette fenêtre)
ErnstP
Messages postés
11
Date d'inscription
mardi 13 juin 2017
Statut
Membre
Dernière intervention
15 juin 2017
15 juin 2017 à 15:04
15 juin 2017 à 15:04
Ok merci pour les conseils et la remarque.
Effectivement les bornes étaient mal définies c'est ce qui posait problème. Le reste pas de soucis puisque n=30 pour le moment. Donc problème résolu malheureusement le résultat n'est pas bon puisque j'obtiens 0 ce qui est étrange pour une somme d'entiers positifs.
Je n'avais pas remarqué que c'est toi qui m'a déjà aidé hier. J'espère que ce n'est pas un problème de réutiliser le code que tu as mis en ligne hier. En tout cas merci bcp pour le coup de main.
Je risque de poster plusieurs messages à l'aide dans les jours à venir, je suis obligé de me mettre a coder un petit peu pour un projet.
Merci
Effectivement les bornes étaient mal définies c'est ce qui posait problème. Le reste pas de soucis puisque n=30 pour le moment. Donc problème résolu malheureusement le résultat n'est pas bon puisque j'obtiens 0 ce qui est étrange pour une somme d'entiers positifs.
Je n'avais pas remarqué que c'est toi qui m'a déjà aidé hier. J'espère que ce n'est pas un problème de réutiliser le code que tu as mis en ligne hier. En tout cas merci bcp pour le coup de main.
Je risque de poster plusieurs messages à l'aide dans les jours à venir, je suis obligé de me mettre a coder un petit peu pour un projet.
Merci
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
Modifié le 15 juin 2017 à 15:44
Modifié le 15 juin 2017 à 15:44
1. Remplaces, mais je doute ...
Range("A6").Value = AYN
par
Range("A6").Value =AY(n)
ce sera quand même plus propre
2. le résultat n'est pas bon puisque j'obtiens 0 ce qui est étrange pour une somme d'entiers positifs.
Fais une exécution pas a pas de ta macro, comme ça tu pourras suivre l'évolution de AY(k) ... entre autres
Bon courage
Cdlmnt
Range("A6").Value = AYN
par
Range("A6").Value =AY(n)
ce sera quand même plus propre
2. le résultat n'est pas bon puisque j'obtiens 0 ce qui est étrange pour une somme d'entiers positifs.
Fais une exécution pas a pas de ta macro, comme ça tu pourras suivre l'évolution de AY(k) ... entre autres
Bon courage
Cdlmnt
ErnstP
Messages postés
11
Date d'inscription
mardi 13 juin 2017
Statut
Membre
Dernière intervention
15 juin 2017
15 juin 2017 à 15:45
15 juin 2017 à 15:45
C'est bon j'ai réussi merci. Prochaine étape combiner les macros entre elle.
15 juin 2017 à 14:32
1)La première erreur est une erreur de ma part dans le code que j'utilise c'est bien écrit coXi et co Fi partout. Donc l'erreur ne vient pas de la.
2) Pour la deuxième erreur, je n'ai effectivement besoin que de la dernière valeur que j'appelle AYN et qui est enfaite égal à AY(n). J'ai créer tous les Ay(i) pour pouvoir calculer la valeur finale c'est pour ca que je ne les affiche nul part. Je ne sais pas si c'est comme ca qu'il faut faire.
3)Je pense que l'erreur est effectivement due a autre chose.
Merci pour la réponse.
Cordialement