Procédure qui n'en fait qu'à sa tête

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • 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 !

Blafi

XLDnaute Occasionnel
Bonjour à tous,

Voilà mon pb si quelqu'un peut m'aider :
j'ai écrit une appli ( en grande partie édulcorée dans le fichier joint) qui me permet d'établir les listes des adhérents participant à des sorties du skiclub local.

Mon classeur contient une feuille "Menu", une feuille "Adhérents" (base de données), une feuille Liste (qui est destinée à recevoir la liste des gens pour une sortie de WE - supprimée dans le fichier joint), une feuille listeJ (qui est destinée à recevoir la liste des gens pour une sortie journée) et une feuille "codes" où j'ai toutes mes références.

Je remplis ces listes grace a des boites de dialogue (lancées à partir de la feuille "menu") qui me permettent de choisir les dates et lieux de sorties et les adhérents participants à la sortie (en les sélectionnant dans la Listbox1 fixée en selections multiples). Un bouton permet de lister dans la Listbox2 les gens sélectionnés afin de controler .

Quand on clique sur OK, l'appli va chercher pour chaque personne sélectionnée dans la listbox1 les renseignements nécessaires afin de les insérer dans la feuille liste voulue grace à une boucle sur les lignes sélectionnées dans la listbox1.

Tout va très bien pour les procédures concernant les sorties WE, les procédures permettant d'ajouter des gens à un sortie WE ou journée....

Par contre, ma procédure pour les sorties journées marche 1 fois sur 2 ou pas du tout, alors qu'elle est à peu de chose près identique aux autres : il semble qu'1 fois sur 2 la procédure n'effectue pas la boucle sur les gens sélectionnés dans la listbox1 (et ainsi qu'elle n'a pas vu quelles lignes étaient sélectionnées dans la listbox1)... et bloque au moment de rentrer la formule de la somme des paiements sans avoir au préalable effectué toutes les opérations demandées plus haut dans la procédure....

Je ne m'explique pas ceci et c'est ce qui m'inquiète : qu'est-ce qui ne marche pas ???

merci de vos réponses éventuelles qui pourraient m'aiguiller vers une solution..

PS : j'ai changé tous les noms et numéros dans le fichier joint naturellement. De plus, j'ai du suprimer la majorité de mon fichier, notamment tous les autres USF pour pouvoir tenir dans la taille demandée..
 

Pièces jointes

Re : Procédure qui n'en fait qu'à sa tête

Bonjour

Extrait de votre code (lignes 124 à 130) :
Code:
          End If
          
        End If
        
        .Range("J" & Ligne2J).FormulaR1C1 = "=RC[-1]+RC[-5]"
        
  Next j1

Je pense que le END IF devrait être situé après la ligne de la formule de frais, puisque c'est ce IF qui détermine la présence d'une donnée dans "Ligne2J".
Votre code actuel marche si vous avez dans la liste le premier nom et buge dans les cas contraires.

Cordialement
Olivier
 
Re : Procédure qui n'en fait qu'à sa tête

Re bonjour...

Merci Odesta pour cette réponse...

Mon end if est bien placé puisque quand ça veut marcher, ça marche..

Par contre merci du tuyau : je viens de vérifier et en effet, la procédure bugue si le premier nom dans la listbox1 n'est pas sélectionné... alors qu'elle marche très bien si ce même premier nom est sélectionné.

Comment expliquer cela ?? je ne vois pas de solution...

Qui peut m'en donner une ?

Merci et à ++
 
Re : Procédure qui n'en fait qu'à sa tête

Re...

Bon OK pour le end if... mais quelle serait la solution à mon pb ?

Je comprends d'autant moins que mes autres procédures construites sur le meme modèle fonctionnent parfaitement que le premier de la liste soit sélectionné ou pas...

Je pense que je vais refaire mon USF et réécrire la proc... mais si ça marche, je ne saurais toujours pas pourquoi ça ne marchait pas avant....

Encore une originalité de VBA ??

Personne pour m'apporter une explication ??

Merci d'avance et a +
 
Re : Procédure qui n'en fait qu'à sa tête

le 'IF' permet de vérifier que l'item 0 est représenté. S'il ne l'est pas, Ligne2J ne renvoie rien, il y a donc fatalement une erreur. Mais le code marche si l'item 0 (le premier de la liste) est présent, l'erreur ne se produit plus, et cela n'a pas d'incidence, puisque c'est écrasé pour les suivants.

Il faut donc forcement mettre cette ligne à l'intérieur du IF.

Olivier
 
Re : Procédure qui n'en fait qu'à sa tête

Re bonsoir...

J'y met le temps pour revenir les réponses, mais j'y viens...

Cette fois j'ai tout compris.. merci encore Odesta pour tes explications et ta solution qui m'apparaissent tout à fait convaincantes..

A bientôt sur ce forum, je te souhaite bon courage..
 
Re : Procédure qui n'en fait qu'à sa tête

Bonjour,

Pour compléter mon dernier poste et pour ton info Odessa...:

Après vérification de mes autres procédures, il s'avère que c'est certainement en recopiant des parties de codes que j'avais déplacé ce fameux End If qui était bien placé dans les autres proc ...

Je n'arrivais pas à voir d'où venait le bug.... heureusement que tu me l'a trouvé, ce qui m'a bien aidé....

Encore merci et à ++
 
- 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

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
503
Réponses
78
Affichages
2 K
Réponses
40
Affichages
1 K
Retour