Argument pour la fonction Cells [Résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 20-07-2012 à 17:44:05
c'est quoi comme erreur et que valent i, nbvide et n ?
Si l'opération "nbvide + 10 * (i - 1) + 1 + n" donne un résultat <=0 ou null, ça provoque certainement une erreur.
Marsh Posté le 23-07-2012 à 09:35:01
Bonjour oovaveoo,
nbvide est défini auparavant comme un entier et vaut 2 ici
i la variable de ma boucle for et varie de 1 à 3
n est un entier et vaut 0 ou 1
La valeur de "nbvide + 10 * (i - 1) + 1 + n" est donc au minimum de 3.
L'erreur que j'obtiens est une erreur d'exécution '1004': Erreur définie par l'application ou par l'objet.
Je te remets mon code ci dessous:
Code :
|
L'erreur a lieu à la ligne 7.
Merci beaucoup,
Cfgluciole1
Marsh Posté le 23-07-2012 à 10:05:04
Le code entier est trop long ?
parce-que là, je ne vois pas ce qui ne marche pas ??
Et qu'est-ce que tu veux faire, parce-que, ça me semble un peu compliqué cette opération pour juste sélectionner une colonne à masquer.
Marsh Posté le 23-07-2012 à 10:23:15
Bonjour oovaveoo,
Le code entier est un peu long mais je peux t'expliquer plus en détail ma manœuvre:
Je dispose de deux onglets (Feuil 6 et Feuil 7) dans lesquels sont situés des données (différentes) rangées par années (de 2012 à 2015)
Mon but est d'avoir une macro qui prend en entrée une année de début (Cells (2,3)) et de fin (Cells(3,3)) et qui me permet d'afficher uniquement les données entre des deux années sur les deux feuilles.
Le bouton gérant la macro est sur la Feuil6.
c1 et c2 sont des cellules permettant de repérer la ligne et colonne des années sur la feuille 6 (ce sont des balises pour repérer où je dois chercher mes années)
Dans mon premier onglet, chaque année a 3 colonnes de données ( d'où le 3 * (i-1))
Dans mon deuxième onglet, chaque année a 10 colonnes de données ( d'où le 10* (i-1))
Je te mets ci dessous un aperçu plus large de la macro:
Code :
|
Je ne sais pas si cela t'aide dans ta démarche pour m'aider mais j'espère que c'est assez clair, sinon n'hésites pas à me redemander.
Merci beaucoup,
Cfgluciole1
Marsh Posté le 23-07-2012 à 10:57:58
Ca donne quoi le
Code :
|
Sinon, tu peux déjà simplifier :
Code :
|
En
Code :
|
Ca sera plus lisible et un peu plus concis
Marsh Posté le 23-07-2012 à 13:47:07
Bonjour oovaveo,
Code :
|
renvoie la valeur 3 (première boucle, nbvide =2, n=0, i=1) puis 14 (deuxième boucle, nbvide = 2, n=1, i=2) puis 25 (troisième boucle, nbvide = 2, n=2, i=3)
Merci pour ton aide, j'ai simplifié mon code:
Code :
|
Excellente nouvelle par ailleurs: Le code marche maintenant parfaitement
Merci beaucoup pour tes conseils (je ne sais pas où se situait l'erreur cependant )
Bonne après midi,
Cfgluciole1
Marsh Posté le 20-07-2012 à 16:18:58
Bonjour, c'est encore moi (j'ai l'impression d'être le seul à poser des questions aujourd'hui
Voici mon nouveau problème:
Je sélectionne une feuille et je cherche à sélectionner une cellule dans cette feuille:
L'argument pour la colonne de la fonction Cells dépend de l'indice i (la sélection se fait au sein d'une boucle for), du nombre nbvide (défini avant) et du nombre n+1 (n défini avant aussi et valant 0 pour le moment)
Mon problème, c'est que j'obtiens une erreur au niveau de la ligne 5 qui ne s'exécute pas
Message édité par cfgluciole1 le 23-07-2012 à 13:49:43