Userform résultats formules retournées automatiquement dans le formulaire

Oui, ca marche ! parfait pour les premiers champs du formulaires.

Maintenant comment on peut poursuivre sur les autres formules du tableau initial ?

Merci pour tes retours.

Il me manquait une dernière liste "cboCloture" que j'ai du rajouter et le code se présente maintenant comme suite

Private Sub UserForm_Initialize()
txtDate.Value = Format(Now, "DD/MM/YYYY")
txtAnnee.Value = Year(Date)
With Feuil3
    cboTypeMarche.List = .ListObjects("TTypeMarche").DataBodyRange.Value
    cboChargeMission.List = .ListObjects("TChargeMisssion").DataBodyRange.Value
    cboProcedure.List = .ListObjects("TProcedure").DataBodyRange.Value
    cboCodeNCMP.List = .ListObjects("TCodeNCMP").ListColumns(1).DataBodyRange.Value
    cboMode.List = .ListObjects("Tmode").DataBodyRange.Value
    cboNaturePrix.List = .ListObjects("Tprix").DataBodyRange.Value
    cboCloture.List = .ListObjects("TCloture").DataBodyRange.Value
End With
End Sub

Dans l'attente de la suite et "Timbé red pas moli " comme on dit ici en Guadeloupe

Bonjour

Oui pour la combo clôture je ne l'avais pas vue... L'USF est trop grande sur un portable 15"...

Dans l'attente de la suite et "Timbé red pas moli " comme on dit ici en Guadeloupe

1. Heu c'est moi qui attends vos infos là... sur le lien dans mon précédent post

2. Pourquoi avez-vous masqué la colonne A dans la feuille Tableausource ?

Bonjour,

je viens de cliquer sur le lien que vous m'aviez proposé.

Je ne sais pas pourquoi j'avais masqué la colonne A de la feuille TableauSource, sans doute une erreur, je pense que je vais laisser comme à ça pour ne pas pertuber les formules dans les cellules suivantes...qu'on pensez-vous ?

Pour ce qui est de la suite, j'attends votre aide sur le Userform pour y intégrer les autres formules présentent dans mon tableau initial.

L'utilisateur rentre un numéro dans la zone de texte "Lot", suite à cela les zones N°, N° Marché et N° Lot doivent se remplir automatiquement (grâce aux formules présentent) et cela doit apparaitre dans la dans le Userform.

L'utilisateur continue normalement la saisie des autres zones (pas de formules à ce niveau) et ajout cette saisie à TableauSource avec le bouton "Ajout".

Vous remercie pour votre réponse.

Je ne sais pas pourquoi j'avais masqué la colonne A de la feuille TableauSource, sans doute une erreur, je pense que je vais laisser comme à ça pour ne pas pertuber les formules dans les cellules suivantes...qu'on pensez-vous ?

Pas de souci car le fait que vous soyez en tableau structuré, si vous supprimez la colonne cela n'a pas d'impact.

L'utilisateur rentre un numéro dans la zone de texte "Lot", suite à cela les zones N°, N° Marché et N° Lot doivent se remplir automatiquement (grâce aux formules présentent) et cela doit apparaitre dans la dans le Userform.

Cela ne fonctionne pas comme cela. Sans quoi vous devriez fermer et ré-ouvrir votre userform à chaque fois. On va se passer de formules.

Mais il y a toujours une question essentielle à laquelle vous ne répondez pas dans le post (le lien que je vous ai donné avant) dans "autre point". J'ai besoin de savoir pour continuer

Justement je ne vois pas cette question, ou c'est encore mon côté novice sur la plateforme.

Pourriez-vous me renvoyer la question pour que nous puissions continuer.

Justement je ne vois pas cette question, ou c'est encore mon côté novice sur la plateforme.

cliquez sur le lien https://forum.excel-pratique.com/s/goto/1124436 et regardez --> AUTRE POINT

En fait, c’est un tableau pour remplir des lancements de marchés publics.

Certains marchés sont décomposés en plusieurs « Lots » et pour un marché, et pour la même date, on peut avoir Lot1- Lot2 – Lot3…

Dans mon tableau le « N° Marché » reste le même 2023-001, alors que dans le « N° de Lot » s’il y a plusieurs lots on aura : 2023-001-1 puis 2023-001-3 et cela en fonction du numéro de lot que l’utilisateur aura mis dans la cellule « N° Lot ». Voir copie ecran

Quand l’utilisateur n’a qu’un seul lot il inscrit simplement 1.

Remarque dans le tableau initial et dans la feuille « TableauSource » les liste déroulantes ne fonctionnent plus (certainement du fait qu’on avais supprimé les Listes ainsi que l’onglet « Codification liste protegee ».

Par ailleurs mon tableau structuré est réduit qu’à 4 ligne, les formules ne fonctionnent pas sur les lignes suivantes.

ecran4

Dans mon tableau le « N° Marché » reste le même 2023-001, alors que dans le « N° de Lot » s’il y a plusieurs lots on aura : 2023-001-1 puis 2023-001-3 et cela en fonction du numéro de lot que l’utilisateur aura mis dans la cellule « N° Lot ». Voir copie ecran

1. Il n'y a pas une erreur dans la ligne 4 là ?. Je ne vois pas de 3 en G4.

2. Sinon avec la formule en colonne D j'avais compris que le numéro en colonne D sera incrémenté si on restait sur la même année. exemple dans votre vue, on aurait eu D2 = 1, D3 = 2 et D4 = 3. Ce n'est pas le cas apparemment ?

3. Si dans la colonne C, la cellule C5 est une date de 2022, que se passe-t-il au niveau D5 ?

4.

Quand l’utilisateur n’a qu’un seul lot il inscrit simplement 1.

S'il met 2 lot en F2 ou F3 ?. Cela donne quoi en D, E et G ?
Voyez la vue si je mets 2 en F2 en considérant des dates en 2023 et 1 en 2022. Correct ?

presse papier02

5. Remarque dans le tableau initial et dans la feuille « TableauSource » les liste déroulantes ne fonctionnent plus (certainement du fait qu’on avais supprimé les Listes ainsi que l’onglet « Codification liste protegee ».

Vous pouvez supprimez toutes les listes déroulantes. elles ne servent plus puisque vous passez par USF (attention elles vont jusque la ligne 800 voire plus dans votre feuille.

Désolé de mes questions mais je dois comprendre si on veut coder correctement

EDIT : Maintenant si vous préférez garder les formules, ce n'est pas un souci, j'adapterai

Non, le G4 n’est pas une erreur, l’utilisateur repart sur un nouveau marché avec un seul Lot d’où le 1 qu’il a inscrit sur la colonne F. Si il inscrit 2,3,4,5…sur la colonne F, il y aura autant de lot pour ce marche.

« Sinon avec la formule en colonne D j'avais compris que le numéro en colonne D sera incrémenté si on restait sur la même année. exemple dans votre vue, on aurait eu D2 = 1, D3 = 2 et D4 = 3. Ce n'est pas le cas apparemment ? »

La Colonne D n’est pas incrémentée, elle reprend simplement ce que l’utilisateur inscrit en Colonne F.

Par ailleurs comme tu supprime ces listes déroulantes ?

Oui, j’aurai préféré garder, si cela est possible les formules sur le tableau.

En bout de course, une fois que l’utilisateur ouvre le formulaire, il faut :

  • Que la Date du jour soit affichée dans le formulaire (c’est le cas ce jour)
  • Que l’Année soit affichée aussi (c’est le cas)
  • Dès que l’utilisateur inscrit le Lot (ex :1), le N° Lot sois s’affiché aussi (ex :2023-001-1)
  • Après il pourra saisir le reste des champs et listes déroulantes
  • Que les boutons Ajout/effacer/Voir Base (tableau initial)/Fermer…puissent fonctionner

Semaine prochaine je ne serai pas disponible, je compte vraiment vous retrouver la semaine d’après pour continuer et finaliser ce petit projet. En tous les cas milles mercis pour votre réactivité, patience et transfert de compétence que vous m’apporter là.

Ok pour garder les formules.

A. Par ailleurs comme tu supprime ces listes déroulantes ?

1. Vous sélectionnez les lignes dans votre tableau, puis vous allez dans DONNEES - LISTE DE VALIDATION -> cliquer EFFACER TOUT --> OK
2. Sélectionnez la ligne juste en dessous de la dernière ligne du tableau, puis sur votre clavier appuyer sur CTRL + SHIFT + flèche vers la bas. Ensuite comme au point 1, allez dans DONNEES - LISTE DE VALIDATION -> cliquez sur EFFACER TOUT --> OK

B. Dès que l’utilisateur inscrit le Lot (ex :1), le N° Lot sois s’affiché aussi (ex :2023-001-1)

Ajoutez ce code dans votre USERFORM et dites moi si ok

Private Sub txtLot_Change()
If txtLot <> vbNullString Then
    txtNumeroMarche = txtAnnee.Value & "-" & Format(txtLot.Value, "000")
    txtNumeroLot = txtNumeroMarche.Value & "_" & txtLot.Value
End If
End Sub

C. Autre point Important, n'oubliez pas de supprimer la colonne A


Remarque : en E2 vous avez cette formule --> =_xlfn.CONCAT(C2;"-";TEXTE(D2;"000")). Le xlfn vient d'une fonction que je n''ai pas donc j'ai un bug.
Par contre nul besoin de cette fonction, il vous suffit de remplacer la formule par ceci --> =CONCATENER(C2;"-";TEXTE(D2;"000")) ou encore plus simple --> =C2&"-"&TEXTE(D2;"000")

Bonjour Dan,

merci pour les retours.

Plusieurs choses ne fonctionnent pas :

- Pour effacer les listes du tableau, après sélection et sous l'onglet DONNEES je ne vois pas LISTE DE VALIDATION

- Mon tableau avec les formules insérer s'arrête à la ligne 4, plus de formules en dessous

- Quand je supprime la colonne A, tout est décalé et donc les formules aussi

- Suite à l'insertion du dernier code, quand je renseigne "LOT" effectivement les champs "Numéro Marché" et "Numero LoT" s'affichent dans le USF, mais pas le champ "Numero"

Pour le moment je n'ai pas encore mis la formule de conct dans le colonne E, j'attends vos retours.

Bien merci

Re,

je ne sais pas si je peux vous renvoyer le tableau sur lequel je travaille ?

Bonjour

- Pour effacer les listes du tableau, après sélection et sous l'onglet DONNEES je ne vois pas LISTE DE VALIDATION

Hum, votre excel n'est pas différent des autres...c'est en dessous de "convertir". Suffit de passer votre souris sur les icones

presse papier02

- Quand je supprime la colonne A, tout est décalé et donc les formules aussi

Vous avez un tableau structuré donc tout cela s'adapte sauf votre formule Conca que vous devez refaire comme je vous ai écrit

- Mon tableau avec les formules insérer s'arrête à la ligne 4, plus de formules en dessous

En principe non. Avec un tableau structuré les formules se placent automatiquement.

Dites moi

- Suite à l'insertion du dernier code, quand je renseigne "LOT" effectivement les champs "Numéro Marché" et "Numero LoT" s'affichent dans le USF, mais pas le champ "Numero"

Je vais regarder ce point


EDIT

je ne sais pas si je peux vous renvoyer le tableau sur lequel je travaille ?

Oui, je comparerai avec celui sur lequel je travaille.

Dans E2 je n'ai pas xlfn...

j'ai plutôt cela : =CONCAT(C2;"-";TEXTE(D2;"000")), la même que votre proposition.

Par ailleurs je pense que mon tableau n'est pas structuré.

Ok pour le tableau structuré de mon côté.

La colonne A supprimer

Cependant je viens de me rendre compte qu'il y a un souci sur une de mes formules et concernant le N° Lot

tab1

Explications : sur les trois premières enregistrements, c'est le même N° Marché et avec 3 lots, tout fonctionne.

Pour la ligne 5 c'est un seul marché (sans lots) et donc je n'inscris rien dans "Lot". Pareil pour la ligne 6 et 7.

Cependant si pour la ligne 7 je repars sur des lots, donc s'inscrits 1 dans le champ "Lot", le N° Marché " redevient comme sur le premier enregistrement et le "N°Lot" redeviens "2023-001_1" au lieu de "2023-004_1"

Voir image ci-dessous

tab2

Quelle est la bonne formule qui corrigerait ce problème ?

Merci pour vos retours.

Bonjour

1.

Par ailleurs je pense que mon tableau n'est pas structuré.

Si mais les lignes ne s'ajoute pas automatiquement parce qu'assez bizarrement il y a comme un tableau croisé en dessous de vos lignes. Pour le supprimer, sélectionnez la ligne 5 à la ligne 200, puis clique droite et choisir "Supprimer"
Après ajoutez une date en A5, vous allez voir que le tableau va s'adapter automatiquement

2.

j'ai plutôt cela : =CONCAT(C2;"-";TEXTE(D2;"000")), la même que votre proposition.

Je pense que vous utilisez des formules venant du pack ou autre chose. C'est pour cette raison que j'ai l'info xlfn car excel ne reconnait pas cette fonction. de base c'est "Concatener". Donc faites plus simple comme je vous ai expliqué ici en point remarque --> https://forum.excel-pratique.com/s/goto/1124722

3. Supprimez la colonne A

En ayant réalisé ces 3 points voici ce que j'obtiens dans votre fichier

presse papier02

4. Votre formule en C2 (remplacez $E$2 par 1) --> =SI(E2<>"";1;SI(B2="";"";SI(B2<>B1;1;C1+1)))

5. Supprimez vos listes de validation comme expliqué avant (elles sont toujours dans votre dernier fichier)

Dites moi si ok avant que je ne continue

Bonjour Dan,

Merci pour tes corrections.

Cependant j'ai toujours un souci de formule

tab3

Sur le tableau ci-dessus :

Jusqu'à la ligne 4 c'est ok, ce sont différents marchés qui se suivent le N° et N° de Marché se correspondent.

Sur la ligne 5, je veux insérer un nouveau marché avec 2 lots. C'est là ou le problème survient. Au départ quand j'insère uniquement la date tout se passe bien avec un "2023-004" qui s'inscrit dans le champ N° Marché. Mais dès que je met "1" dans le champ "Lot" le "N° Marché" repasse à "2023-001" (cela existe déjà sur la ligne 2 du tableau) et le "N° Lot" est faussé aussi "2023-001_1" au lieu de "2023-004_1" puis "2023-004_2....

C'est là que ma formule est faussée. Je ne saurais comment me dépatouiller avant de poursuivre.

J''espère que tu as compris Dan.

Je me permet de te joindre le fichier sur lequel

je travaille actuellement.

Ne me remettez pas chaque fois votre fichier sans quoi je dois tout recommencer.
Puis inutile d'alourdir le forum inutilement.

Si je regarde votre vue, quelle valeur devez-vous avoir en D5 et D6 ?

Rechercher des sujets similaires à "userform resultats formules retournees automatiquement formulaire"