VBA (plusieurs problèmes formulaire)

Bonsoir,

J'ai inséré et exécuté les 2 codes de création de noms. Cela devrait maintenant fonctionner

ci-jointe version avec noms ajoutés

Bonsoir thev,

Malheureusement non.

Si tu utilises la combobox pour les noms des agents, tu verras que pour les 4 premiers, tu n'as aucun renseignement

(je crois que cela commence à "ACHOURI SAMIRA")

En fait, le 3ème adhérent correspond à la ligne d'en tête (teste "ABSIL XAVIER")

J'ai passé ce cap tout à l'heure en mettant +6 au lieu de +2 dans tes formules d'origine.

Là, j'ai bien tous les renseignements pour tous les agents.

Je n'ai pas de message d'erreur, mais si je crée un nouvel adhérent, c'est OK, par contre rien n’apparaît pour l'enfant que j'ai crée ?!..

Dans ta nouvelle version, tu as donc 2 erreurs : pas les renseignements pour les premiers agents et pas la possibilité de crée un nouvel agent. Comme c'est ton oeuvre, difficile de parler d'erreur, mais simplement d'une omission quelque part.

Comment est-il possible que plus rien ne fonctionne ?

Moi, je comprends, mais toi tu t'y connais, et ta version ne fonctionne plus non plus.

Teste là, tu verras pour les renseignements adhérents comme expliqué plus haut et tu verras que tu seras bloqué avant la fin de la création d'un nouvel agent.

Quant au reste, je n'ai pas essayé, il m'a fallu des heures pour passer ces étapes, et pourtant les enfants ne se créent pas bien qu'il n'y ait pas de message d'erreur

Je n'ai donc pas eu le courage de tester les autres fonctionnalité, je suis assez déprimé comme ça

Je perds mon latin et je fais perdre le temps des autres


thev a écrit :

Bonsoir,

J'ai inséré et exécuté les 2 codes de création de noms. Cela devrait maintenant fonctionner

ci-jointe version avec noms ajoutés

Oui, j'ai respecté à la lettre tes instructions, je suis discipliné.

Mais tout comme toi, voir post ci dessus, cela ne fonctionne pas

OK. Je vais regarder.

Ne t ennuies plus avec cela thev,

Tu en as fais suffisamment il me semble.

Tu m as donné un formulaire tout à fait fonctionnel et bien mieux que ce que j aurais espère.

Maintenant à moi de gérer.

J ai simplement pensé que ce qui n avait pas de sens pour moi te "sauterai" *aux yeux immédiatement.

C est uniquement pour cette raison que j ai relancé le post.

Demain je reprendrai ton gabarit (test4) et même si je dois y passer du temps, je reprendrai tous les onglets de ma version originale, il n'y a pas de VBA uniquement des formules et des liaisons, et je pense pouvoir réussir comme cela.

On verra bien. De toute façon je posterai pour dire ce qu il en est, c'est bien là le minimum.

Donc profites de ton week-end tranquillement.

Bien cordialement

Cedric

Bonsoir,

J'ai presque terminé.

Il manquait 4 noms à générer pour la feuille "Enfants 2017".

Des ajustements ont été nécessaires suite au décalage de la première ligne significative des Agents par rapport à Test4.

Je te communique d'ici peu la version finalisée.

Merci thev

ci-jointe version finalisée.

Si d'autres Bugs apparaissent n'hésite pas à faire appel à moi comme le font les gens de mon association qui utilisent mes applications.

Bonjour thev,

C'est parfait, tout fonctionne !

J'ai relu les différents posts échangés, je te cite :

"formatage des codes postaux et matricules

Ce n'est pas la bonne méthode d'utiliser un format nombre pour des codes ou des matricules. Les colonnes correspondantes doivent être déclarées au format texte.

J'ai rajouté dans les TextBox du formulaire associées à ces 2 champs, l'instruction nécessaire pour les positionner respectivement sur 5 et 8 caractères."

Voici ce code :

Private Sub MATRI_F1_AfterUpdate()

    If Len(MATRI_F1) <= 8 Then MATRI_F1.Value = Mid("00000000", 1, 8 - Len(MATRI_F1)) & MATRI_F1.Value _
    Else MATRI_F1.Value = Mid(MATRI_F1.Value, 1, 8)

End Sub
Private Sub CP_F1_AfterUpdate()

    If Len(CP_F1) <= 5 Then CP_F1.Value = Mid("00000", 1, 5 - Len(CP_F1)) & CP_F1.Value _
    Else CP_F1.Value = Mid(CP_F1.Value, 1, 5)

End Sub

Dans la feuille enfant, le matricule n'est pas formaté à 8, il l'était dans le classeur "test4"

(avec format cellule non pas en texte, mais "standard")

C'est juste pour le signaler parce que la raison m'échappe, car j'ai mis les matricules feuille actifs en texte, et ils apparaissent donc tout de même sur 8 chiffres dans la feuille enfants.

De fait, pour l'affichage et dans mes feuilles et dans le formulaire (les matricule pas à 8 et CP pas à 5), j'ai simplement formaté mes cellules de ma feuille actifs en texte. Ainsi, l'affichage est correct dans le formulaire, si je désire par exemple modifier un agent.

J’aurais certes préféré que cela se fasse via ton code que j'aurai pu "repiquer" en cherchant ou le placer et en le modifiant (=<10) pour faire de même pour les téléphones, fax et portables. Mais bon, idem, tout passé en texte. Je dois simplement faire attention pour tous ces champs lors de la saisie (si je ne respecte pas les formats CP5, MATRI8 et TEL/FIXE/PORT10 j'aurais une erreur)

Si, à l'occasion (ne pas chercher exprès) tu sais pourquoi cela fonctionnait feuille enfant avec test4 et plus avec ce classeur, je suis preneur.

Je vais maintenant m’atteler à remettre ce classeur fonctionnel tel qu'il est censé l'être :

Rajout d'onglets, liaison avec d'autres classeurs, formules portant également sur d'autres classeurs, mais pas de VBA déjà existant, et je ne touche ni aux colonne ni aux intitulés de ces colonnes ni à l'ordre dans lesquels elles se trouvent.

Il ne devrait donc pas y avoir de conflit ?

A cet égard, si tu as des conseils particuliers, des mises en garde ou autres ?

Par exemple, en rajoutant des onglets à gauche et à droite de ceux déjà existants, dois je faire en sorte que ma feuille actifs reste toujours en feuille 1 et la feuille pour les enfants en feuille 2 ?

Bon après-midi thev, et pour énième fois maintenant, encore merci pour ta patience et ton acharnement à résoudre le problème.

Les gens de ton association ont bien de la chance et j'espère qu’Ils ne t'ennuient pas à minuit

P.S : je (re)mets le sujet en résolu

ced02 a écrit :

Dans la feuille enfant, le matricule n'est pas formaté à 8, il l'était dans le classeur "test4" (avec format cellule non pas en texte, mais "standard")C'est juste pour le signaler parce que la raison m'échappe, car j'ai mis les matricules feuille actifs en texte, et ils apparaissent donc tout de même sur 8 chiffres dans la feuille enfants.

La raison est simple. Le matricule de la feuille Enfants est celui de la Feuille Actifs via le résultat d'une formule recherchev. Il faut d'ailleurs bien laisser cette colonne au format standard pour que la formule fonctionne.

Pour les téléphones, fax ou portables, il suffit de mettre des points entre les chiffres pour que cela soit interprété comme du texte.

ced02 a écrit :

Par exemple, en rajoutant des onglets à gauche et à droite de ceux déjà existants, dois je faire en sorte que ma feuille actifs reste toujours en feuille 1 et la feuille pour les enfants en feuille 2 ?

Cela ne devrait pas poser de problème car tout le code est basé sur les noms donnés aux colonnes de tes 2 feuilles Tu peux même renommer tes 2 feuilles car les noms se mettront à jour automatiquement. De plus tu peux insérer de nouvelles colonnes sans problème car les noms se mettront aussi à jour automatiquement..

C'est tout l'avantage de travailler avec des noms de champ dans le code plutôt qu'avec des noms de feuilles et des cellules clairement identifiées comme range("A"&i) ou range("B"&i). De plus, c'est plus parlant car le nom identifie mieux la colonne dont il s'agit.

Super,

Je vais donc y aller ... de bon cœur

J'ai réglé le problème des CP et matricules (feuille actifs et enfants)

Merci

Bonjour Ced02 et Thev et le forum,

Absent ces derniers jours, j'ai revu ma version en modifiant mon formulaire (possibilité de saisir jusqu'à 8 enfants).

Je suis moi-même responsable d'une association et ai eu besoin de l'aide de ce forum pour une appli ce compta. J'ai eu un accueil chaleureux et réponse à ma demande, c'est la raison pour laquelle, avec mes petites connaissances, que j'essaie maintenant de venir en aide aux autres.

Concernant ta question sur la ListBox. Tant que le nombre d'enregistrements tient dans la liste, pas besoin "d'ascenseur vertical", mais s'il est supérieur à la capacité de la ListBox, "l'ascenseur vertical" se crée automatiquement.

J'ai également modifié la zone saisie du Mail pour que l'affichage se fasse en lien hypertexte, dès que le signe @ est trouvé.

Ci-joint la version2 à découvrir.

Cdt

Henri

32ced2-esssai2.xlsm (265.21 Ko)

Bonjour Henri,

Pas mal du tout !

J'avais envisagé de l'utiliser un peu différemment, mais je vais voir comment l'utiliser en réseau pour mes collègues.

Moi, je fais les adhésions, eux reçoivent les adhérents.

Il faudrait que je trouve une base de donnée "commune" qui se mettrait à jour dans les deux applications et éventuellement leur retirer l'option de suppression. Il me faut y réfléchir.

Je vais étudier d'un peu plus près ton code (heu, si je comprends )

Dans ta 1ère version, il y'avait bien un scroll pour les adhérents (j'avais mis une base complète dans la feuille des actifs justement pour le savoir)

Par contre, il me semblait que le matricule se mettait sous 8 chiffres, y compris les zéros devant, mais ce n'est pas une certitude absolue.

Je récupérerai cette 1ère version à l'association pour vérification.

Je reviendrai donc certainement vers toi.

Merci encore à toi !

Et bonne soirée

Cdlt, Cédric

P.S : j'avais un doute, mais oui, ton code module 1 (call / sub tri) ne mets pas par ordre alpha. Mais je ne saurai te dire pourquoi

Je viens de remettre les matricules sous 8 chiffres dans le formulaire. Ne restera qu'à changer dans la liste actifs (format texte ou autre)

Bonsoir Cédric

Voici la version 3.

Elle corrige le tri automatique dès Ajout ou Suppression d'un enregistrement.

Le Matricule est bien à 8 chiffres. Dans la base, toute la colonne C est définie en "Personnalisée". Dans le formulaire, en création les 8 zéros s'affichent et disparaissent au fur et à mesure de la saisie. Idem pour le code postal.

A vérifier.

Cdt

Henri

30ced2-esssai3.xlsm (262.08 Ko)

Bonjour Henri, Thev et le forum,

Me revoilà, la fin de semaine à été particulièrement difficile pour le travail et ne m'a malheureusement pas laissé le loisirs de revenir avant.

J'ai 3 choses qui m'interpellent, en fait 3 questions.

L'une pour toi, Henri, la seconde pour Thev et la 3ème est ouverte à vous deux (et à tous ceux qui le voudront)

Ta nouvelle mouture, Henri est excellente.

Cependant, pour des besoins pratiques, j'ai retiré les UCASE, sauf que la ville va se remettre en majuscule un peu plus loin dans ton code, mais c'est parfait puisque les villes sont en majuscules.

Malheureusement, le retrait de ucase ne fonctionne pas avec une textbox ! Une seule ! Impossible de comprendre pourquoi :

celle de l'adresse, qui sera reportée colonne I feuille des actifs.

D'autre part, ce qui n'est absolument pas génant, je l'indique car je ne comprends pas pourquoi non plus, la tabulation pour passer de champs en champs (d'une textebox à la suivante) plante après la date de fin de contrat. Il faut en effet se placer manuellement dans la textbox adresse (après, par contre, cela suit de nouveau)

Dernier petit détail: lorsque l'on se place sur CP, on obtient directement 5 zéros, mais qui s’effacent au fur et à mesure que l'on rentre le vrai CP (et dans la feuille actifs, c'est ok) Pour les portables, fixes et fax, si l'on se trompe, impossible d'effacer l'erreur, il faut sélectionner tout ce qui a déjà été tapé dans la textbox et réécrire.

Attention, une fois de plus, aucune gêne, et je suppose que c'est dû au formatage que j'ai moi-même demandé

(On ne peut pas tout avoir)

Non, la seule chose qui me dérange, c'est l'adresse en majuscule. Je viens de passer 2 heures sans parvenir à rien.

J'oubliais, comment utiliser ta routine de tri lorsque les intitulé sont en ligne 5 et le 1er adhérent en ligne 6. Que faut-il changer ?

Toi tu as mis :

 Sheets("ACTIFS TTES COLL 2017").[A1].Sort key1:=Sheets("ACTIFS TTES COLL 2017").[A2], Order1:=xlAscending, Header:=xlGuess

Comme tes intitulés sont en A1 (nom, sexe, matricule...) et que le premier adhérent est en A2, j'en ai bêtement déduit qu'il suffisait de remplacer [A1] par [A5], la première ligne d'intitulé et [A2] par [A6] la ligne de mon 1er adhérent. Mais j'ai appris à mes dépends que cela ne fonctionne pas ainsi, ma ligne d'intitulé (A5, s'est mise comme les autres en ordre alphabétique)

Pour Thev,

J'utilise au quotidien ton formulaire.

Rien à dire...

Par contre, à l'usage, je me suis aperçu qu'il me manquait quelque chose.

Je le rajoute manuellement dans ma feuille actifs, mais si quelques lignes pouvaient éventuellement automatiser la procédure.

J'ai rajouté une colonne feuille actifs (colonne après "SFT", donc colonne s et intitulée "Conjoint collectivité"

Ce que j'aimerai, si c'est possible, si tu le veux bien et si tu as un peu de temps, c'est une textbox supplémentaire juste en dessous des combobox "SFT" et "ENFANTS" avec le label : "Conjoint dans collectivité".

Le but étant, si rien n'est rentré, de laisser la colonne s vide dans la feuille des actifs, et dans le cas contraire, mettre le texte inséré dans cette nouvelle textbox dans la colonne s.

J'ai voulu jouer aux apprentis sorciers et rajouter un code d'Henri qui me plaisait bien (qui indique que le nom est obligatoire" si on l'oublie lors de la création d'un nouvel adhérent.

J'ai placé ce code à 2 endroits, ceux qui me semblaient les plus appropriés, voici où et je vais commenter les résultats :

capture

Le code est surligné. Si je le place à l'endroit de la flèche, si je ne mets pas de nom en création et que je remplis quelques champs, il m'indique après validation que c'est bien inséré et seulement après, j'ai le message que le nom est obligatoire. Par contre, sur la feuille actifs, rien n'a été crée.

Si je laisse le code là où il se trouve dans ma capture, si je ne mets pas de nom en création et que je remplis quelques champs, idem, il m'indique après validation que c'est bien inséré et seulement après également, j'ai le message que le nom est obligatoire. Par contre, sur la feuille actifs, les champs que j'ai mis sont inscrits (sauf le nom bien sur puisque je n'en ai pas mis)

A abandonner ou à creuser ?

Pour la question commune, je re poste demain,

Bonne soirée à vous tous et bon weekend (prolongé)

Bonjour Cédric et Thev,

Voici en Version 3bis les corrections apportées

1. pour ce qui est de l'ordre de tabulation il suffit dans VBA de choisir Affichage et Ordre de tabulation puis ensuite de monterr ou descendre les textBox ou ComboBox. J'ai fait le nécessaire.

2. concernant la saisie en majuscules. J'ai laissé les Textbox 2 et 12 (sexe et ville). Par contre la saisie des enfants se fait en Noms Propres(1ère lettre du nom et prénom en majuscule). Voici le code qui le permet:

For i = 17 To 40
        .Cells(Ligne, i) = Application.Proper(Me.Controls("textBox" & i))
        Next i

on pourrait faire la même manip pour les TextBox tels que Ets, annotations, Service, Adresse et complément adresse. A toi de voir.

3. Pour le tri avec le 1er enregistrement en ligne 6, ton raisonnement était bon, mais il faut également modifier les codes suivants:

Sub InitListBox()
Dim j As Long
Dim i As Integer
  Me.CommandButton1.Caption = "Ajouter"
  Me.CommandButton3.Visible = False       ' Bouton supprimer
  For i = 1 To 40
  Me.Controls("TextBox" & i) = ""
  Next i

  Me.ListBox1.Clear
  With Ws
    'For j = 2 To .Range("A" & Rows.Count).End(xlUp).Row  ' 1er enregistement en ligne 2
    [color=#FFFF00]For j = 6 To .Range("A" & Rows.Count).End(xlUp).Row   '1er enregistrement en ligne 6[/color]
      Me.ListBox1.AddItem .Range("A" & j)
    Next j
  End With

End Sub

De même pour Private Sub ListBox1_Click et CommandButton3_Click

Dès qu'on modifie la structure de base, cela a une conséquence sur l'indexation des enregistrements.

4. pour la saisie des N°s de tél, portable et fax, effectivement il faut tout ressaisir.

Je pense avoir répondu à tes attentes.

Bonne fin de journée

Henri

18ced2-esssai3bis.xlsm (263.66 Ko)

Bon, j'ai fais une réponse assez longue avant d'aller me coucher, avec JPG,, et après l’aperçu... Tout envolé.

Inutile de vous faire par de mon ressentiment, je ne peux le refaire ce soir, et demain je suis en assemblée générale toute la journée (et soirée)

Voilà ce que c'est de vouloir aller trop vite.

Si l'assemblée dure assez longtemps, je m'éclipserai dans mon bureau pour tout recommencer pendant que je me souviens de ce que j'avais précisement écris et mis en citation.

Pour le reste, JPG, je l'avais enregistré.

Désolé, et bonne soirée à vous tous. Je vais aller me coucher, car là, un peu (beaucoup) écœuré. je perd trop de temps....

Restait le 3ème point (essentiel) que je n'ai pas eu le temps de mentionner à cause du travail pour l'assemblée générale de demain et que je trouve néanmoins le temps de faire ce soir... mais inutilement.

Inutile de s'acharner.

Bonne nuit à toutes et à tous

Bonjour à vous deux,

J'ai été absent ce week-end et suis de sortie aujourd'hui. Ta demande supplémentaire ne devrait pas poser de problème. Il faudrait cependant nommer ta colonne "s" avec le suffixe F1 qui identifie toutes les colonnes liées à l'agent, par exemple :

"Conjoint_collectivité_F1".

La TextBox intitulée "Conjoint collectivité" devra avoir le même nom et donc s'appeler aussi "Conjoint_collectivité_F1".

Pour ce qui est du contrôle sur le nom de l'agent, le contrôle doit être effectué avant le remplissage de la ligne de l'agent, c'est à dire au niveau du formulaire à partir de la textbox "AGENTS_F1".

C'est dans la partie de code ci-dessous qu'il faut tester le contenu de TRIM(AGENTS_F1.Value)

Private Sub valider_Click()

    Select Case type_action_agent
        'ajout agent
        Case "C"
        If MsgBox("Etes-vous certain de vouloir insérer ce nouvel agent ?", vbYesNo, "Demande de confirmation") = vbYes Then
            Call ajout_agent
            If type_action_enfant = "C" Then Call ajout_enfant: Me.MultiPage1.Value = 0
        End If

Je te ferai une proposition demain.

Bonjour,

ci-jointe nouvelle proposition

1- supprimer l'ancien UserForm1 et récupérer le nouvel UserForm1

2- nommer la colonne S en CONJOINT_COLLECTIVITÉ_F1 (voir code associé à Feuil1)

AFEH a écrit :

"Voici en Version 3bis les corrections apportées

1. pour ce qui est de l'ordre de tabulation il suffit dans VBA de choisir Affichage et Ordre de tabulation puis ensuite de monterr ou descendre les textBox ou ComboBox. J'ai fait le nécessaire.

Oui effectivement, je devrai le savoir, j'ai été confronté à ce problème avec mon formulaire et j'avais trouvé la solution

2. concernant la saisie en majuscules. J'ai laissé les Textbox 2 et 12 (sexe et ville). Par contre la saisie des enfants se fait en Noms Propres(1ère lettre du nom et prénom en majuscule). Voici le code qui le permet:

For i = 17 To 40
        .Cells(Ligne, i) = Application.Proper(Me.Controls("textBox" & i))
        Next i

on pourrait faire la même manip pour les TextBox tels que Ets, annotations, Service, Adresse et complément adresse. A toi de voir.

Merci pour le code, mais hormis l'adresse qui se mettait en uniquement en majuscule, c'était parfait. Tout le reste doit rester tel quel, au choix, majuscule / minuscule. Par contre les enfants doivent rester en majuscule, ce n'est pas mon choix, mais comme on me fournit un petit listing pour les enfants, je m'empresse de l'utiliser. Mais ce listing est tel que dans ma feuille enfant, en l’occurrence, nom prénom parent, sexe, collectivité et enfants en majuscule. Il n'y à que le service avec des majuscules ET minuscules.

Je reprendrai le code du précédent formulaire et m'en arrangerai, il n'y a pas de raison.

Par contre, vraiment désolé pour le temps que tu as passé pour coder les enfants avec les premières lettres majuscules puis minuscule

3. Pour le tri avec le 1er enregistrement en ligne 6, ton raisonnement était bon, mais il faut également modifier les codes suivants:

Sub InitListBox()
Dim j As Long
Dim i As Integer
  Me.CommandButton1.Caption = "Ajouter"
  Me.CommandButton3.Visible = False       ' Bouton supprimer
  For i = 1 To 40
  Me.Controls("TextBox" & i) = ""
  Next i

  Me.ListBox1.Clear
  With Ws
    'For j = 2 To .Range("A" & Rows.Count).End(xlUp).Row  ' 1er enregistement en ligne 2
    [color=#FFFF00]For j = 6 To .Range("A" & Rows.Count).End(xlUp).Row   '1er enregistrement en ligne 6[/color]
      Me.ListBox1.AddItem .Range("A" & j)
    Next j
  End With

End Sub

De même pour Private Sub ListBox1_Click et CommandButton3_Click

Dès qu'on modifie la structure de base, cela a une conséquence sur l'indexation des enregistrements.

Merci, j'ai résolu le problème en passant tout simplement par l'enregistreur de macro pour obtenir le code.

Sympa tout de même d'écrire qu'à la base mon raisonnement n'était pas tout à fait injustifié

4. pour la saisie des N°s de tél, portable et fax, effectivement il faut tout ressaisir.

Je pense avoir répondu à tes attentes.

Bonne fin de journée

Henri

Comme précédemment indiqué, c'est insignifiant et absolument pas gênant.

J'évoquais une question commune à toi Henri, ainsi qu'à Thev, puisque tous les deux concepteurs des formulaires.

Je commence par mettre un petit schéma avant d'expliquer

schema2

Voilà, au quotidien, sur mon PC (PC Cédric), j'utilise le logiciel de Thev pour créer mes adhésions.

Je compte demander à un collègue de m'aider à insérer les enfants (j'ai des feuillets papiers d'adhésions, plusieurs centaines), et il pourrait utiliser le formulaire d'Henri sur le PC Binôme. J'entends par là le formulaire complet, avec création bien sûr.

En fin d'après-midi, par exemple, je pourrai récupérer sa feuille enfants et effectuer un copier/coller sur ma feuille enfant (ce sont les mêmes sur vos deux formulaires)

Par contre, ce qui complique mon projet, c'est que je voudrai utiliser le logiciel d'Henri sur le Portable permanencier

(ce sont mes collègues situés dans un bureau annexe qui reçoivent le public. De fait, ils n'ont, dans le doute, aucun moyen de vérification afin de savoir si les agents qui se présentent sont réellement adhérentes ou non. Cependant, leurs connaissances sont limitées à une utilisation très basique du PC : allumer, lancer un programme, éventuellement surfer un peu, mais c'est tout)

Je compte donc mettre le formulaire d'Henri, mais ... en consultation simple (je l'ai déjà fait pour essai dans la version 2), sans possibilité de modification, de rajout ou de suppression. Juste pour choir un agent sur la droite et vérifier les données dans le formulaire.

Le postulat est simple, puisque les 2 feuilles principales des 2 formulaires sont exactement les mêmes.

Je pensais donc créer une "feuille données PC Cédric avec connexion" afin que mes données (PC Cédric formulaire Thev) aillent se mettent sur cette feuille qui irait ensuite remplir les deux feuilles Portable permanencier (Formulaire Henri).

Mais cette solution me semble un peu "tordue". Il faudrait en effet que lorsque je quitte mon formulaire PC Cédric, une routine aille copier les données automatiquement sur cette feuille de connexions, l'enregistrer et la fermer. Idem, à l'ouverture du formulaire d'Henri sur PC Portable, il faudrait une routine qui aille récupérer automatiquement les données de cette feuille connexion (donc l'ouvrir, récupérer et fermer cette page)

cette feuille aurait été placée sur un serveur commun mais cachée (pour ne pas que les permanenciers ne l’effacent par mégarde)

Trop compliqué à mettre en oeuvre et je doute fort que ce soit matériellement possible. J'ai donc pensé à une solution plus simple :

Sur le formulaire d'Henri PC Portable permanenciers, vider toutes les données existantes et faire un copier / liaison à partir de mes données à moi. Ainsi, théoriquement ? à l'ouverture de leur formulaire, les données se mettraient automatiquement à jour (même si mon formulaire est fermé puisque enregistré également sur notre serveur.

J'ai fait un essai, mais pas dans ces conditions, juste sur mon bureau, mais j'ai déjà des problèmes. Sur le formulaire d'Henri, toutes les cases vides du formulaire de Thev donnent des zéros dans les 2 feuilles (ça je peux le cacher) mais aussi dans les champs du formulaire !? Et là, c'est particulièrement gênant.

Comment faire pour ne pas avoir ces zéros dans le formulaire d'Henri (et éventuellement dans ses 2 feuilles, sinon, je cache) lorsque je copie les 2 feuilles du formulaire de Thev par copier / liaisons ?

Mon projet est-il réalisable ?

Je suis ouvert à toutes propositions, voire d'autres projets.

Bon, encore un roman, alors je vous laisse et vous transmets mes sentiments les plus cordiaux.

thev a écrit :

Bonjour,

ci-jointe nouvelle proposition

1- supprimer l'ancien UserForm1 et récupérer le nouvel UserForm1

2- nommer la colonne S en CONJOINT_COLLECTIVITÉ_F1 (voir code associé à Feuil1)

Bonsoir Thev,

Je vais étudier tout cela de près (en comparant le code avec la version antérieure) et en procédant comme indiqué en renommant la colonne S (19ème) et la textbook (et changer l UserForm1)

J'avais commencé en utilisant le multipage non utilisé (onglet "divers" avec une combobox conjoint oui / non et 2 textbox pour le nom prénom du conjoint et une pour sa collectivité)

uf

De même, j'avais rajouté la ligne :

ActiveWorkbook.Names.Add Name:="CONJOINT_F1", RefersToR1C1:="='" & Me.Name & "'!C19"

dans Feuil1 et dans le UserForm1, la ligne :

 Me.CONJOINT_F1.List = Application.Transpose(Application.Transpose(Array("oui", "non")))

juste après la ligne SEXE_F1 et juste avant la ligne SEXE_F2

J'ai arrêté là, ça ne fonctionnait plus

N en faites pas trop je commence à connaître quelques termes et pire, quelques ligne de code.

Bonsoir Thev et encore merci

Rechercher des sujets similaires à "vba problemes formulaire"