XL 2010 For each controls impossible-résolu

Docdav

XLDnaute Junior
Bonjour,
j'ai un formulaire de saisie, avec plusieurs checkbox, nommée Box32,Box33, etc, le nombre étant la colonne dans lequel le résultat va se mettre. Rien de sorcier, une boucle d'écriture.

Mais...certaines checkbox doivent être modifiées en Frame avec 2-3 choix. J'ai la routine pour celles-ci.

Le problème est que la boucle des chekbox est rompue puisque certaines n'existent pas.
Soit faire plusieurs boucles sur les box existantes (pas propre)
Soit faire une boucle qui cherche les chekbox et fais le boulot.

Un exemple de ce que j'ai trouvé et qui ne marche pas : ça doit préremplir toutes les box normalement.

Dim obj As Control
For Each obj In Me.Controls
If TypeOf obj.Object Is msforms.CheckBox Then obj.Object.Value = True
Next obj

Avez-vous une idée.
Je mets mon fichier, pas du tout optimisé (va falloir que je fasse des modules), qui bug si il n'y a pas qq chose en ligne 6.

Il fonctionnait très bien avant de passer à ces choix multiples avec uniquement des box.
J'essaie d'avoir un fichier comptable mac (il faut juste que je déclare les listes dans ce fichier et ça fonctionne)

Merci de votre lecture et de votre aide.
David.
 

Pièces jointes

  • Formulaire-PC-modif.xlsm
    2.3 MB · Affichages: 115

Modeste

XLDnaute Barbatruc
Je te laisse lire pendant ta sieste :p
J'ai rapidement défusionné les cellules de la ligne juste au-dessus du tableau et inséré une ligne vide au-dessus de ces titres, puis fais un test de recherche de fiche et un ajout de fiche sans rien changer au code ... pour autant que je puisse en juger, ça semble fonctionner
 

Docdav

XLDnaute Junior
interrogé par tant de facilité, j'ai regardé.
Je pensais que c'était plus compliqué avec le code à changer pour coder dans un tableau.

j'ai simplement sélectionné les lignes existantes, en m'arrêtant avant les entêtes (sans même défusionner), il y avait une ligne vide déjà (la 6, je ne sais pas pourquoi mais depuis le début je dois avoir une ligne vide sinon ça coince (en 2eme colonne il y a écrit un truc au pif, que j'ai caché avec la couleur pour bloquer la ligne).

Et en effet, ça fonctionne, la mise en forme est copiée dans la ligne ajoutée, le reste des fonctions est toujours en place.
Et ça copie même ma formule de calcul d'horaire (=si x>y.....) donc pas besoin de le rajouter en via.

Je n'ai pas compris le coup des cellules fusionnées, c'est pour transformer les entêtes en vraies entêtes de colonnes ?
car là en effet ça rajoute une ligne où il est écrit colonne 1.... et je peux faire du tri.

J'ai par contre toujours un problème avec la relecture, mes derniers fiches me ressortent des heures en numériques, pourtant même type de cellule, heure 00:00, mais dans la cellule ça me met des heures en 00:00:00 ???
 

Modeste

XLDnaute Barbatruc
J'ai par contre toujours un problème avec la relecture, mes derniers fiches me ressortent des heures en numériques, pourtant même type de cellule, heure 00:00, mais dans la cellule ça me met des heures en 00:00:00 ???
Qu'est-ce qui pose problème? La façon dont les heures s'affichent ou le contenu réel des cellules? J'ai fait 2-3 tests avec des ajouts: j'obtiens bien des données numériques correspondant à des heures!?
Contenu de la cellule: 15:22:00 (par exemple), affiché sous la forme 15:22 (pour le même exemple :rolleyes:) avec ton fichier V6 du message #48
 

Docdav

XLDnaute Junior
C'est uniquement en relecture de fiche que cela se passe, et seulement pour les dernières fiches codées (à partir de la ligne 60 si j'ai laissé les lignes dans le fichier exemple).
J'ai purgé toutes les lignes et suis reparti de zéro pou voir, pas mieux, en relecture (il faut sortir du formulaire puis revenir, chose à revoir), toujours lecture en nombre 2,3456. Ca vient de mon Excel ?
Autre chose, Excel me dit que dans la colonne B, au-dessus de la ligne 60 justement, le numéro est enregistré au format texte. Et après non, je n'ai plus d'alerte (le format de cellule est le même).
 

Modeste

XLDnaute Barbatruc
J'ai purgé toutes les lignes et suis reparti de zéro
Il faudrait que tu précises ce que tu appelles "purger": si tu as effacé les données, les formats sont conservés (et comme dans certaines colonnes tu as des formats différents Personnalisé/Standard, cela paut expliquer que le problème persiste.
Par ailleurs, si on sait maintenant que c'est au niveau de la Sub Relect() que le problème se pose, on a avancé, mais tu ne réponds pas à mes questions!?
Excel n'aime guère (et moins encore dans les tableaux) des choses qui lui paraissent incohérentes (des formats différents dans une même colonne, des formules différentes, etc. Tu as aussi, dans certaines colonnes des données non-conformes à des validations ... dont la source figure dans un autre classeur. Dans le gestionnaire de noms aussi, tu as des plages nommées faisant référence à des fichiers tiers ... Il faudra que tu fasse un peu de "ménage" un de ces jours)
 

Docdav

XLDnaute Junior
Le problème ne se produit que qd on relit une fiche, l'affichage dans le formulaire est en numérique , sinon dans le tableur tout est bon.

j'ai effacé données et formats, et n'ai laissé qu'une ligne.
Normalement en dehors des titres tout est de la même sorte sur une colonne.

normalement tout doit être en standard sauf les horaires et dates. Je vais vérifier.
Pour les listes de validation, il doit en rester en effet que je dois enlever, restant du fichier avant de faire le formulaire. J'aurais aimer les garder pour quand on ne peux utiliser le formulaire (pas de macro activante, on ne sait jamais).
Pour les autres sources, je pensais avoir tout virer, avec findlink.xla, je vais revoir ça. je vais regarder ce que c'est que le gestionnaire de noms.
 

Modeste

XLDnaute Barbatruc
Bonsoir,

Avant de rejoindre Morphée:

  • le gestionnaire de noms figure dans l'onglet Données
  • ce que tu appelles la "relecture", c'est l'affichage des données dans le formulaire, après sélection d'une fiche dans la liste déroulante nommée "ChoixFiche "?
    Cela concerne donc la Sub lecture() qui figure dans le module lecture_codage ?
    Si c'est bien de cela qu'il s'agit, essaie dans le Case "TBX", "CMB", d'écrire:
    ctrl.Value = F.Cells(ligneEnreg, Col).Text
 

Docdav

XLDnaute Junior
Bonjour, travaillant cette nuit, mais sur ordi et téléphone j'ai pu tester.
j'ai saisi une 40 aine de fiches sans souci.

J'ai essayé la modif (en effet il s'agit bien de la sur lecture() ), ça fonctionne presque, sur les heures type 08:35, ça entre 8:35, et comme il y a un formatage qui est réglé (en fin de userform), ça me rajoute ":" et j'ai 8::35 et une belle erreur, heure incorrecte... ça fonctionne par contre avec 20:10.

Je n'aurais sans doute pas le temps de regarder comment changer cela ce week-end (si tant est que je trouve...)

Pour le gestionnaire j'avais trouvé, un tour dans l'aide et l'aide universelle de google, j'ai fait le ménage, il s'agissait de reste du formulaire initial trouvé sur le net.

J'ai fait le ménage pour le reste aussi.

Bon week-end Modeste.
 

Modeste

XLDnaute Barbatruc
Bonjour,

J'ai essayé la modif (en effet il s'agit bien de la sur lecture() ), ça fonctionne presque, sur les heures type 08:35, ça entre 8:35, et comme il y a un formatage qui est réglé (en fin de userform), ça me rajoute ":" et j'ai 8::35 et une belle erreur, heure incorrecte... ça fonctionne par contre avec 20:10.
Je dois confesser un penchant pour les solutions simples, quand c'est possible :) ... qu'adviendrait-il si tu formatais tes cellules des colonnes 4 et 23 à 28 en hh:mm, au lieu de h:mm ?
 

Modeste

XLDnaute Barbatruc
Mon bienheureux Jean-Claude :)

À ton âge canonique :D tu devrais savoir qu'un petit tour à confesse ne fera jamais de nous des Saints :rolleyes:

Maintenant, à choisir, je préférerais rester béat devant des Saints, que saint devant Béa :oops: ... si tu as un concile à me donner, il sera bienvenu (vaut-il mieux que je me limite à Excel, la qualité des jeux de mots étant ce qu'elle est? ... ou alors dois-je arrêter Excel et les jeux de mots ... non, vous qui passez par ici, ne répondez pas à cette question!!)

 

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Mon bon Luc...
Quant à :
je préférerais rester béat devant des Saints, que saint devant Béa :oops:
Entièrement d'accord avec toi...
Quant au "concile", je te conseille de rien changer : tu manies la langue française et la langue "XL", quelle soit formulistique ou VBAistique, à la perfection.

Bises chez toi.
A+ à tous
 

Docdav

XLDnaute Junior
Bonjour,

Je dois confesser un penchant pour les solutions simples, quand c'est possible :) ... qu'adviendrait-il si tu formatais tes cellules des colonnes 4 et 23 à 28 en hh:mm, au lieu de h:mm ?

Bonsoir, madame étant parti au ciné, de garde-enfant j'en profite pour répondre.
J'ai essayé depuis le début le format hh:mm dans personnalisé, 13:30 dans heure, malheureusement même combat...

J'aime bien le formatage que j'ai ajouté en fin de userform qui permet de ne pas taper les : de l'heure, gain de temps, on a 150 dossiers à saisir par semaine, entre les interventions, et donc plus c'est simple rapide et automatisé mieux c'est.

Je vais renommer mon fichier modeste en l'honneur de tout ce temps passé !

Bon we.
David.
 

Modeste

XLDnaute Barbatruc
Bonjour David, JC :)
Entièrement d'accord avec toi...
:eek: Quoi, tu connais Béa !?

@Docdav: Dans le fichier joint, j'ai uniformisé tous les formats heures des 7 colonnes concernées (hh:mm). Pas d'Excel 2010 directement sous la main, mais sous 2016, ça me semble fonctionner: encodage d'une nouvelle fiche, fermeture du UserForm (la combo choixFiche ne se met pas à jour après création d'une fiche), réouverture du UserForm, sélection de n'importe quelle fiche ... pas de message d'erreur rencontré!?)
Peux-tu tester de ton côté?

Tant qu'à faire, au clic sur le bouton '?', j'ai ajouté un essai (avec ce que j'ai cru comprendre) d'affichage d'une liste des localités, puis inscription du code postal correspondant. J'ai dû modifier la présentation dans ta feuille CP. Tu diras si ça ressemble à ce que tu voulais?
Attention: il faut que tu sois certain qu'il n'y ait pas de doublons dans les noms de localité!
 

Pièces jointes

  • Formulaire-PC-V7-pour-codage (Docdav).xlsm
    167 KB · Affichages: 90

Docdav

XLDnaute Junior
Bonsoir Modeste.
Je suis perplexe...j'ai essayé une bonne dizaine de fois de mettre et remettre ce format, soit par le format heure, soit par le format personnalisé, sur mac comme sur pc, sur Excel 2010 comme 2016... toujours bien présenté comme, mais ça n'a jamais marché pour le formulaire. Je viens encore d'essayer, et même en fermant le fichier puis réouverture, niet...je ne comprends pas !

Pour le code postal, que dire de plus que fantastique... exactement ce que je cherchais !
si j'ai à peu près compris, définition d'une liste dans initialize (tablo) qui est la liste des communes (je me doutais qu'il fallait changer la présentation, là c'était une présentation pour recherche "à la main"), écoute de la frappe (Combobox change()), et si concordance réduction de la liste (redim preserve minitablo), et au clic envoie dans la case.

ça semble plus compliqué qu'un rechercheV (qui est déjà évolué pour beaucoup, tout juste maitrisé par moi)...
Je me suis aperçu en faisant ce formulaire que les possibilités du via étaient immenses, mais que certaines choses très simples dans le tableur devenaient plus compliquées, sans doute plus rapide sur des longs tableaux, et surtout, ça passe en formulaire, mais c'est vrai que j'ai un peu (vraiment peu) plus d'expérience sur Excel que vba alors là je suis subjugué par ce code...

J'ai noté aussi le changement d'entêtes de colonnes, merci beaucoup.
Il faudra que je voie pour le tri, car les fiches 16 (année) 123 (jour de l'années) XXX (numéro de fiches du jour) sont numérotées après 999 en AXX etc... et le tri va foirer.
Peut-être créer une fonction tri (plus tard...) déjà finir de digérer ça, puis l'utiliser, je pense que le formulaire est assez complet, et fait tout ce que j'attendais, même plus...(l'appétit vient en mangeant...) peut-être encore un ou deux automatisme à mettre, je vais attendre les retours des 4 autres utilisateurs.

Je tiens à te remercier encore une fois, tant d'écoute, de temps passé, de conseils, en essayant d'apprendre plutôt que de donner juste le fichier clé en main, avec tant de gentillesse, MERCI.

Si il y a un endroit où on peut donner un bon point, faire un remerciement, et aussi un endroit pour mettre à disposition le fichier pour d'autres...

Avec ça on va gagner du temps (j'ai déjà tester, je suis passé de 1H30 à 20-25 minutes pour 20 fiches !)
Le Samu de Lyon te remercie.
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972