Coller textbox transposé décalé

Bon pour l'instant j'ai mis à jour la private sub read record (ajout d'une colonne ntourpas dans le tableau, + reconversion Lamont Laval sinon calcul en boucle, et modification des N° colonnes aux différents endroits....

si j'ai bien compris et que je veux récupérer les valeurs en multipage 3 en mode modif il faut que je fasse une private sub "recupval" à partir du'n tableau (de O:ATR & irow) pour envoyer dans les controls ?

Private Sub ReadRecord()
With Wsh1
    Me.TB_NumReglage = .Range("A" & iROW).Value
    Me.TB_Auteur = .Range("B" & iROW)
    Me.TB_Date = .Range("C" & iROW).Text
    Me.TB_MarqueReglage = .Range("D" & iROW)
    Me.TB_DenomReglage = .Range("E" & iROW)
    Me.TB_Diamreglage = .Range("F" & iROW)
    Me.TB_ntourmin = .Range("G" & iROW)
    Me.TB_ntourmax = .Range("H" & iROW)
    [b]Me.TB_ntourpas = .Range("I" & iROW)[/b]
    Me.TB_Kvmin = .Range("J" & iROW)
    Me.TB_Kvmax = .Range("K" & iROW)
    [b]Me.TB_Lamont = .Range("L" & iROW) / Me.TB_Diamreglage
    Me.TB_laval = .Range("M" & iROW) / Me.TB_Diamreglage[/b]
    Me.TB_nbsecu = .Range("N" & iROW)
End With
[b]Call Recupval[/b]
End Sub

Ça ne m'est pas venu à l'idée, je ne me suis penché que sur ce qui était fait, pas sur le prévisible.

Pour le coup en te lisant et en faisant la modif je me suis rendu compte qu'il vaut mieux utiliser :

Me.TB_Lamont = .Range("L" & iROW) / .Range("F" & iROW) ''et idem pour :
Me.TB_laval = .Range("M" & iROW) /  .Range("F" & iROW)

Ce sont des détails qui ne m'avaient pas échapés mais j'ai oublié et je ne savais pas trop comment tu allais prendre ma proposition...

C'était pas la peine que je me casse le bonnet si tu n'adoptais pas...

Avec .Range("F" & iROW) ça fait des auto-conversion en moins puisque les Range travaillent en valeurs : C'est plus net.

Idem pour la Sub WriteRecord() (n'oublie pas de faire la modif consécutive à l'insertion)

    .Range("I" & iROW) = Me.TB_ntourpas
    .Range("I" & iROW).NumberFormat = IIf(Int(.Range("I" & iROW)) = .Range("I" & iROW), "0", "0.00")
    .Range("J" & iROW) = Val(Me.TB_Kvmin)
    .Range("J" & iROW).NumberFormat = IIf(Int(.Range("J" & iROW)) = .Range("J" & iROW), "0", "0.00")
    .Range("K" & iROW) = Val(Me.TB_Kvmax)
    .Range("K" & iROW).NumberFormat = IIf(Int(.Range("K" & iROW)) = .Range("K" & iROW), "0", "0.00")
    .Range("L" & iROW) = Me.TB_Lamont * .Range("F" & iROW)
    .Range("M" & iROW) = Me.TB_laval * .Range("F" & iROW)
    .Range("N" & iROW) = Me.TB_nbsecu

Pour la RecupVal , il faut que je revoie ça de même que pour la ReadRecord en effet il y a la

MultiPage1_Change et InitialText qui me préoccupent...

Il y a sans doute encore un problème encore mal évalué avec ce MultiPage1_Change. A quoi ça sert de récupérer les valeurs de Page3 si on fait un RAZ aussitôt après ?

Je réfléchi à haute voix là... Mais il faut que j'y réfléchisse tranquillement !

Il faudra sans doute intercepter l'évènement en glissant du EnableEvents = False ou de préférence un Flag.

Si tu patauges, laisse béton... tu vas te pourrir la vie avec EnableEvents : je te fignole ça dans la matinée et je te le mets au propre... Si je trouve une solution satisfaisante !

[Nota] Je ne savais pas trop sur quel pied danser avec (Nb Tour 0) Je ne vois pas l'intérêt de le conserver (à zéro) ? Autant partir comme j'ai fait (Directement sur la valeur min ? )

A+

[EDIT]

Dans Sub Transval() ne pas oublier de modifier :

Range("0" & iROW).Resize(1, 1200) = a 'transfert
Me.TB_Lamont = .Range("L" & iROW) / .Range("F" & iROW) ''et idem pour :
Me.TB_laval = .Range("M" & iROW) /  .Range("F" & iROW)

Ok je le changerais ce soir (compliqué de le faire sur mac au bureau)

Ce sont des détails qui ne m'avaient pas échapés mais j'ai oublié et je ne savais pas trop comment tu allais prendre ma proposition...

J'écoute les pros . une fois que jaurais bien compris, je pourrais refaire mes autres fichiers de bibles sous la même écriture...

WriteRecord() (n'oublie pas de faire la modif consécutive à l'insertion)

Je l'ais fais (j'arrive à comprendre un peu les similitudes, un peu... c'est comme ci je devais apprendre l'anglais en un jour )

Pour la RecupVal , il faut que je revoie ça de même que pour la ReadRecord en effet il y a la

MultiPage1_Change et InitialText qui me préoccupent...

Il y a sans doute encore un problème encore mal évalué avec ce MultiPage1_Change. A quoi ça sert de récupérer les valeurs de Page3 si on fait un RAZ aussitôt après ?

Je réfléchi à haute voix là... Mais il faut que j'y réfléchisse tranquillement !

Il faudra sans doute intercepter l'évènement en glissant du EnableEvents = False ou de préférence un Flag.

Si tu patauges, laisse béton... tu vas te pourrir la vie avec EnableEvents : je te fignole ça dans la matinée et je te le mets au propre... Si je trouve une solution satisfaisante !

La tout ça pour moi çe n'est plus de l'anglais, c'est du chinois . Je te fais confiance

en Read record MultiPage1_Change, je crois de ce que je comprend que seul le paramètre Ntourpas fait un calcul dans le page 3. C'est compliqué car je me suis imaginé le fait que le constructeur modifiait ses unités de mesure en terme de précision (cas peu probable), en revanche il m'arrive sur une vanne dont le constructeur ne donne pas beaucoup d'indications que je réalise des mesures expérimentales plus précise. Du coup je modifie l'intervalle et donc le nombre de mesure (d'ou les 200 textbox). Le calcul par la suite est beaucoup plus fin et réel. ça va tourner en rond sur le useform du coup c'est bien ça ?

Dans l'idée le bouton modifier permettait de visualiser rapidement les données dans la bible. Je pensais même faire une sorte d'impression de fiche de chaque ligne mais bon chaque chose en son temps. Je rajoute des choses au fur à mesure qui ne me venait même pas à l'esprit (bloquer les cellules, bloquer les noms d'onglets, l'activation automatique des macros...).

Ton fichier est bien je vais continuer sur cette lancée. Le seul point qui va me gêner c'est le clic automatique dans la ligne pour ajouter ou modifier. C'est rapide mais je n'ai pas trouvé ce système si intuitif. Est il possible de laisser le bouton ajouter et modifier ?

Bonjour,

Maintien des boutons : C'est comme tu veux... Ils n'ont pas tout à fait le même fonctionnement mais je les ai laissé exprès pour te laisser le choix...

J'appelle ça la méthode bourrin ! Mébon on fait comme on peut, comme on aime...

La meilleure méthode étant celle qu'on maîtrise le mieux.

Ceci dit il y a toujours avantage à essayer d'adopter des méthodes qui simplifient le travail.

C'est le clic sur la colonne 1 (et non pas ligne) qui active la modif ou l'ajout. C'est un manière de faire très efficace dans beaucoup de situations ou on gère des BD. De plus ça évite la multiplication des boutons.

La multiplication des boutons, des formats entraîne toujours de la complexification.

Et la complexification devient très rapidement une usine à gaz...

Je te précise que j'essaie d'intervenir le moins possible dans ton process... Je fais juste un peu de ménage. et d'optimisation.

Mais je n'intervient pas vraiment en terme de d'analyse/conception.

Je te livre les fruits de ma réflexion... J'ai fait tout ce que je pouvais. Mais je n'ai pas touché au Multipage_Change.

J'y ai juste mis un MsgBox d'alerte que tu peux supprimer...

J'y ai changé la variable "i" qui n'aurait pas collé avec le DefType en "S" mais de toute façon cette variable tu ne l'utilises pas !

Comme je ne maîtrise pas du tout ce que tu veux en tirer, je te laisse bricoler avec ce Multipage... Quitte à y revenir plus tard pour faire le ménage.

En revanche j'ai finalisé la RecupVal

Après il faut voir ce que tu brocantes... J'essaierai de te suivre...

Pendant ce temps je vais essayer de travailler sur une version 15 colonnes de la BD et affichage sur une "pseudo SPREADSHEET" (une feuille dédiée à cet effet) : Cela me semble plus conforme à ce dont tu me parles. On ne peut pas imprimer partiellement un USerForm (ni même totalement s'il y a un défilement !) et faire des calculs de ce type sur le Multipage_Change me semble un peu alors qu'on peut très bien utiliser le UserForm en "Non Modal", visualiser le résultat des modifs ou des hypothèses, faire quelques modifs et se balader dans une autre feuille avant de revenir sur le USF et valider OUPA ...

A+

Je suis en train de regarder.

C'est bizarre ça me refait le système de décharge jusqu à la colonne N mais je n'ais plus rien à partir de la colonne O que ce soit en mode ajout ou en mode modif. Je vais éplucher voir ce qui clochouille.

Je regarde.

Mouais, c'est vraiment bizarre, ça me l'avait fait déjà sur une version précédente mais sans savoir ce que j'ai fais ça ne le faisait plus. Il y a bien un truc

Je passe en même temps sur ce genre de code sur lequel j'ai du mal à comprendre "rien à voir avec le ptibug"

.Range("G" & iROW).NumberFormat = IIf(Int(.Range("G" & iROW)) = .Range("G" & iROW), "0", "0.00")

Lif c'est quoi ? une sorte de SI ? J'ai du mal à la comprendre la igne.

Je cherche à avoir deux chiffres après la virgule même si c'est avec deux zéro. cette ligne devrait le faire non ? elle tronque au final.

Quel avantage par rapport à :

 .Range("G" & iROW).NumberFormat = "0.00" 

C'est pas un Lif mais un iif. (une version concentré de if... then

Mais le problème ne vient pas de là.

il provient de mes déclarations DefByte et DefInt j'ai été un peu rapide sur ce coup...

J'ai pas eu le temps de tester mais je suis presque sur que si on vire mettre un coche sur ces 2 déclarations ça passera.

(à une vache près...)

Normalement je ne met que le DefBool mais là que tu avais une pléthore de variable (avant que je les supprime...) j'ai utilisé ce truc...

il faut que je retravaille ces déclarations j'ai mis ça au début pour aller un peu vite mais le problème est que c'est un peu restrictif. En particulier pour les Array.

Il faut que je planche un peu dessus demain.

A+

Un premier jus qui à l'air de tenir la route...

Je revérifierai demain parce que là j'ai vraiment fait encore sur les chapeaux de roue...

Dans le fichier précédent tous le VBA à été modifié. (y compris dans le module de la feuille)

Pour le format des nombres sans les tronquer il faut que je vérifie.

C'est un peu complexe... En fait c'est très particulier (et un peu c...) :

En fait c'est pas vraiment un format de Nombre, C'est classé au niveau VBA comme un style.

Essaie de jouer avec ! Idéalement il faut jouer sur les 2 tableaux. Excel et VBA mettre toutes les colonnes (à partir de la colonne O )au format 000 ("Comptabilité") (menu Format du Ruban 000-Comptabilité)

en VBA ça s'appelle Selection.Style ="Comma"

Ce style prévoit d'afficher un "-" à la place de zéro...

Après il faut voir si on désire changer aussi le format de colonne en mode % ou si là aussi tu conserves les décimales.

Si dans Excel tu préformates toutes les colonnes (à partir de la colonne O ) en 000 on peut supprimer dans VBA tous les :

.Range("J" & iROW).NumberFormat = IIf(Int...

Tu peux tester le résultat en commençant par les commenter...

Si les tirets (-) ne te plaisent pas ou que dans la colonne "Précision" tu veux un affichage en mode % ou integer il faut mettre du VBA ou jouer sur... (déconseillé dans ce cas précis) les formats conditionnels ! Bref, rien que cet aspect de la prog est une vrai sinécure... et une rente de situation pour les programmeurs débutants !

Pour les colonne de A à N je ne sais (pense) pas qu'il faille utiliser le style "000", enfin c'est à toi d'arbitrer... maintenant que tu sais tout !

Tu essaieras de m'envoyer une version définitive du formatage souhaité pour chaque colonne pour que je m'adapte aussi.

A+

Rechercher des sujets similaires à "coller textbox transpose decale"