VBA If ne s'éxecute pas sur la bonne feuille
Résolu/Fermé
yohannj
Messages postés
71
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
29 août 2011
-
15 août 2011 à 22:25
yohannj Messages postés 71 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 29 août 2011 - 16 août 2011 à 20:38
yohannj Messages postés 71 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 29 août 2011 - 16 août 2011 à 20:38
A voir également:
- VBA If ne s'éxecute pas sur la bonne feuille
- Comment supprimer une feuille sur word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Feuille blanche pour écrire sur l'ordinateur gratuit - Forum loisirs/vie pratique
8 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
15 août 2011 à 23:18
15 août 2011 à 23:18
Bonjour,
Et as-tu bien saisi le rôle et le but d'une fonction ?
J'ai l'impresssion quelles sont utilisées à tort et à travers...
Une fonction, on lui passe 1 ou plusieurs paramètres et elle retourne une valeur.
A aucun moment tu ne leur passes de paramètres, à aucun moment tu leur fais retourner une valeur...
De plus elles doivent être obligatoirement déclarées dans un module.
J'ai l'impression que tu n'as besoin que de sub...
Eric
Et as-tu bien saisi le rôle et le but d'une fonction ?
J'ai l'impresssion quelles sont utilisées à tort et à travers...
Une fonction, on lui passe 1 ou plusieurs paramètres et elle retourne une valeur.
A aucun moment tu ne leur passes de paramètres, à aucun moment tu leur fais retourner une valeur...
De plus elles doivent être obligatoirement déclarées dans un module.
J'ai l'impression que tu n'as besoin que de sub...
Eric
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
16 août 2011 à 11:00
16 août 2011 à 11:00
Bonjour,
Vous remplacez la ligne :
If Range("H" & i) = "N" Then
Par celle-ci:
If Sheets("links").Range("H" & i) = "N" Then
Vous remplacez la ligne :
If Range("H" & i) = "N" Then
Par celle-ci:
If Sheets("links").Range("H" & i) = "N" Then
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
Modifié par Le Pingou le 15/08/2011 à 23:10
Modifié par Le Pingou le 15/08/2011 à 23:10
Bonjour,
Depuis où vous déclenchez vous la procédure ?
Au passage, à quoi vous sert : Public Function RAZ()
Salutations.
Le Pingou
Depuis où vous déclenchez vous la procédure ?
Au passage, à quoi vous sert : Public Function RAZ()
Salutations.
Le Pingou
yohannj
Messages postés
71
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
29 août 2011
6
15 août 2011 à 23:18
15 août 2011 à 23:18
Je lance la procédure depuis VBA avec le bouton "Exécuter la macro". (Et accessoirement le "Pas à pas détailler" pour déterminer où était le soucis)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
15 août 2011 à 23:34
15 août 2011 à 23:34
Bonjour,
Merci.
Donc, selon votre réponse la procédure prendra comme référence la feuille active du classeur et dans ce cas on ne sait pas ce que la procédure doit exactement réaliser.... !
Concernant les fonctions, je rejoins les propos d'eriiic (salutations).
Désolé, pas possible de faire plus.
Merci.
Donc, selon votre réponse la procédure prendra comme référence la feuille active du classeur et dans ce cas on ne sait pas ce que la procédure doit exactement réaliser.... !
Concernant les fonctions, je rejoins les propos d'eriiic (salutations).
Désolé, pas possible de faire plus.
yohannj
Messages postés
71
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
29 août 2011
6
16 août 2011 à 00:14
16 août 2011 à 00:14
"Au passage, à quoi vous sert : Public Function RAZ()"
Elle me permet de limiter le nombre de variable. J'utilise les même 2 fois pour des actions différentes. ça m'a permis d'éviter un code erreur qui me disait que j'utilisais trop de variables.
"Et as-tu bien saisi le rôle et le but d'une fonction ?"
Je n'y ai pas réfléchie du tout ici. En le lisant je me dit que c'est évident vu que le seule endroit où j'utilise des fonctions habituellement est lié au maths en utilisant le logiciel Maple.
Au début j'avais tout mis dans le sub mais j'avais un code erreur me disant qu'il y avait trop de choses dedans. J'ai regardé sur internet et j'ai vu qu'on pouvait contourner le problème en faisant des fonctions. J'ai appliquer sans réellement réfléchir et sans chercher une manière de faire un sous programme.
Je n'ai pas non plus saisi le rôle et le but du sub. J'ai de très faible connaissance en basic et quick basic et j'ai essayé de me débrouiller avec ce que je connaissais.... mais ça n'as vraiment pas l'air de suffire.
"la procédure prendra comme référence la feuille active du classeur"
En me plaçant sur la feuille "links" ou en utilisant " Sheets("links").Activate " (ou WorkSheets("links").Activate ou avec Select au lieu de Activate), ça continue de vérifier la condition sur la feuille "N"
Désolé, c'est ma première utilisation de VBA et vu que je ne pense pas l'utiliser régulièrement avant 1 an et je n'ai pas chercher à me renseigner sur son fonctionnement avant de me lancer.
Elle me permet de limiter le nombre de variable. J'utilise les même 2 fois pour des actions différentes. ça m'a permis d'éviter un code erreur qui me disait que j'utilisais trop de variables.
"Et as-tu bien saisi le rôle et le but d'une fonction ?"
Je n'y ai pas réfléchie du tout ici. En le lisant je me dit que c'est évident vu que le seule endroit où j'utilise des fonctions habituellement est lié au maths en utilisant le logiciel Maple.
Au début j'avais tout mis dans le sub mais j'avais un code erreur me disant qu'il y avait trop de choses dedans. J'ai regardé sur internet et j'ai vu qu'on pouvait contourner le problème en faisant des fonctions. J'ai appliquer sans réellement réfléchir et sans chercher une manière de faire un sous programme.
Je n'ai pas non plus saisi le rôle et le but du sub. J'ai de très faible connaissance en basic et quick basic et j'ai essayé de me débrouiller avec ce que je connaissais.... mais ça n'as vraiment pas l'air de suffire.
"la procédure prendra comme référence la feuille active du classeur"
En me plaçant sur la feuille "links" ou en utilisant " Sheets("links").Activate " (ou WorkSheets("links").Activate ou avec Select au lieu de Activate), ça continue de vérifier la condition sur la feuille "N"
Désolé, c'est ma première utilisation de VBA et vu que je ne pense pas l'utiliser régulièrement avant 1 an et je n'ai pas chercher à me renseigner sur son fonctionnement avant de me lancer.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
16 août 2011 à 10:45
16 août 2011 à 10:45
Bonjour,
Merci pour les informations.
Toutefois elle n'explique pas depuis où vous lancer votre procédure et ce que vous voulez réaliser ... !
Je vais regarder votre fichier et essayer de vous trouver une solution pour [vérifie la condition sur la page "links"].
Merci pour les informations.
Toutefois elle n'explique pas depuis où vous lancer votre procédure et ce que vous voulez réaliser ... !
Je vais regarder votre fichier et essayer de vous trouver une solution pour [vérifie la condition sur la page "links"].
yohannj
Messages postés
71
Date d'inscription
samedi 31 mars 2007
Statut
Membre
Dernière intervention
29 août 2011
6
Modifié par yohannj le 16/08/2011 à 20:38
Modifié par yohannj le 16/08/2011 à 20:38
Merci beaucoup!
J'ai aussi vu 3 autres erreurs que j'avais fais et j'ai raccourcie le code (surtout en enlevant toutes les variables) qui ne tient plus que sur 60 lignes et il n'y a plus de fonctions.
C'est bien plus sain et ça limite bien le temps de calcul qui reste important.
Encore une fois, merci à vous deux!
J'ai aussi vu 3 autres erreurs que j'avais fais et j'ai raccourcie le code (surtout en enlevant toutes les variables) qui ne tient plus que sur 60 lignes et il n'y a plus de fonctions.
C'est bien plus sain et ça limite bien le temps de calcul qui reste important.
Encore une fois, merci à vous deux!