Que choisir pour extraire de Excel et afficher dans Excel?
Résolupijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
- Que choisir pour extraire de Excel et afficher dans Excel?
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
54 réponses
Le problème porte sur l’extraction aléatoire de 15 questions parmi 12 feuilles thématiques dans Excel, puis leur affichage sur une interface unique, avec les réponses Vrai/Faux et un indice de certitude. La solution proposée privilégie un formulaire UserForm en VBA pour afficher les questions une par une, avec une liste déroulante permettant de choisir la feuille source (1 à 12). Des exemples et des codes commentés ont été fournis pour illustrer l’option, et des mécanismes d’archivage temporaire ou de suivi des résultats sur une feuille dédiée ont été évoqués. Pour avancer, il est recommandé de concevoir le formulaire, de coder la sélection aléatoire et l’affichage séquentiel, puis d’ajouter progressivement l’archivage et le suivi des réponses si nécessaire.
Dans le désordre :
- ajoute autant de feuilles que d'article et RENOMME LES en conséquence,
- copie/colle toutes tes questions réponses en ajoutant les 1 et 0 nécessaires pour les éliminations,
- respecte bien les colonnes de chaque feuille, y compris Candidats
- dans le code remplace les adresses mails (précisé plus haut)
Puis teste, teste et reteste à volonté.
J'ai intégré à ce classeur une feuille "résultats". Pour l'instant elle ne sert à rien. On pourrait, à terme, avec le fichier fini, enregistrer dans cette feuille les meilleurs scores pour chacun, pour chaque article, avec la date par exemple.
Mais ça on verra après les tests.
Pour l'instant, dis moi ce qui bug.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPour ce qui concerne l'envoi de mail, je me renseigne.
Ma feuille "résultats" n'était pas remplie par mon code, c'est une des améliorations possibles que je te suggérais.
Si tu veux, on peux y stocker les "meilleurs" résultats, par article par personne...
Par contre, il y a une feuille "Questions deja posees" que :
- je vide,
- je complète avec le questionnaire en cours
- elle est utile pour vérifier qu'une question n'a pas déjà été posée,
- en fin de questionnaire, je la vide pour le questionnaire suivant...
Mais que je suis c*n!...................
Tu ne peux pas envoyer de mail avec ce code puisque la configuration est celle de mon serveur........
Quel âne je suis!
Désolé.
Les lignes :
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxxx.xxxxxxxx-mail.net"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
sont à compléter avec tes propres valeurs...
2 => ne change pas
xxxx.xxxxxxxx-mail.net => correspond à l'adresse de ton serveur de mail
25 => correspond au port.
Une discussion à ce sujet
Tu as aussi, je crois, la possibilité de passer par le serveur mail de gmail, avec le port 465. Mes essais à ce propos n'ont pas été concluant..... donc je ne saurais t'aiguiller davantage.
Voir également à cocher la référence Microsoft CDO for Windows 2000 Library. Pour cela :
Sous VBE : Outils/références et la cocher.
J'avais prévu une feuille résultats avec :
- en colonne A les noms des utilisateurs,
- en ligne 1 les noms des articles
Dans ce cas, on enregistre, à l'intersection (Nom, Article) la date + le résultat.
En cas de plusieurs tentatives sur le même questionnaire par le même utilisateur, seul est gardé le meilleur résultat.
Ca te va? ou pas..........
Au fait, il ne s'agit pas de POP3 (courrier entrant), mais de SMTP (courrier sortant).
Si tu arrives à le configurer c'est tout de même plus sympa......................
- en ligne 1 les noms des articles
Dans ce cas, on enregistre, à l'intersection (Nom, Article) la date + le résultat.
En cas de plusieurs tentatives sur le même questionnaire par le même utilisateur, seul est gardé le meilleur résultat.
Ca te va? ou pas.......... Oui, cela me convient. Dans le cas où le candidat échoue à cause d'une éliminatoire, la case pourrait-elle enregistrer "réponse éliminatoire"?. Un tel aboutissement solutionne ce dernier point qui est l'enregistrement. L'envoi par email donnerait un plus mais qui n'est pas déterminant une fois que le score est sauvegardé.
Ou alors prévoir un enregistrement du style :
01/01/2013¤35¤0 ==> Le 01/01/2013 - 35 pts / 75 - 0 = éliminatoire
02/12/2012¤45¤1 ==> Le 02/12/2012 - 45 pts - 1 = non éliminé
C'est + simple à mettre en place.....
Dans le Module1, tu as une procédure d'envoi du mail :
Sub EnvoiMail(strPour As String, strDe As String, Optional strCC As String)
Qui dit à un moment :
objMessage.TextBody = "Bonjour," & vbCrLf & vbCrLf & _ "Le " & Date & ", " & Utilisateur & " a repondu au questionnaire d'evaluation relatif a l'article : " & vbCrLf & _ Questionnaire.ComboBox1 & vbCrLf & vbCrLf & _ "Le resultat obtenu par " & Utilisateur & " est de : " & Questionnaire.TextBox4 _ & vbCrLf & msgSupp & vbCrLf & _ vbCrLf & "Cordialement." & vbCrLf & vbCrLf
Ca c'est le code du texte envoyé.
Si, donc, tu veux le score /75 dans ce mail, suffit d'ajouter : & "/75" après le score... Donc après Questionnaire.TextBox4, comme ceci :
objMessage.TextBody = "Bonjour," & vbCrLf & vbCrLf & _ "Le " & Date & ", " & Utilisateur & " a repondu au questionnaire d'evaluation relatif a l'article : " & vbCrLf & _ Questionnaire.ComboBox1 & vbCrLf & vbCrLf & _ "Le resultat obtenu par " & Utilisateur & " est de : " & Questionnaire.TextBox4 & "/75" _ & vbCrLf & msgSupp & vbCrLf & _ vbCrLf & "Cordialement." & vbCrLf & vbCrLf
J'ai essayé de mettre en pratique ta suggestion d'hier mais ...pas évident.
les textes conformes à l'attente de certains algorithmes de Google, le choix du titre des pages du site selon une stratégie d'options prenant pour socle de raisonnement les statistiques des recherches publiées par Google lui-même
Je suis preneur!...
Mais ce n'est pas le sujet ici. A l'occasion j'ouvrirais un sujet ailleurs et t'interpellerai pour que tu y interviennes.
Merci d'avance.