Sauvegarde depuis Userform

Bonsoir Forum,

ouh la ...... par oû commencer??

Je suis entrepreneur général et je termine souvent des maisons qui sont pré-usinée en usine.

Avant de me lancer dans d'énormes calculs et devis, j'aime bien donner un bugdet à mes clients, si le budget leur convient, je me lance dans des devis plus exacts et contractuels.

Je m'étais fais un petit Userform, avec une feuille de données un peu pêle-mêle, mais ca allait car ce n'était pas dans le but de sauvegarder les données, c'était juste "one shot", j'entrais les données dans les divers contrôles, puis ca me retournait un budget, je le donnais au client verbalement ... ca s'arrêtait la.

Mais j'aimerais maintenant pouvoir sauvegarder les valeurs des controles, pour eventuellement pouvoir créer des fiches et pouvoir RE-Générer le userform bien rempli.

Seul hic, mes controle ne sont pas necessairement en ordre puisque le userform a evolué selon mes besoins à travers le temps.

Donc pour la sauvegarde je ne peux pas (en tout cas je pense) pouvoir faire une boucle pour sauvegarder les données.

J'aurais voulu faire quelque chose du type:

nB = Sheets("Fiches").Range("A1").Value
 For y = 0 To 66
        Range("B" & 3 + nB).Select
        Range("B" & nB + 3).Offset(0, y).Value = Controls("Textbox" & y + 2).Value
    Next

Par contre mes contrôle sont ni en ordre, ni tous des textbox.

Svp m'épargner au niveau du fouilli, je bidouille seulement, et comme j'ai dis, mes besoins ont changés donc c'Est le bordel ....

Donc j'ai 3 questions:

1. Peut-on "numéroter" les controles afin de pouvoir faire une boucle ... ?

2. Avez-vous une meilleure idée ?

3. Une facon de pouvoir afficher les donées par la suite qui serait simple ?

Merci d'avance

Pour la distance il faut la référence Microsoft XML v6.0

7test-v1.xlsm (132.78 Ko)

Bonjour CrackWood01

Pour ce que tu souhaite, il suffit de boucler sut tous les contrôles de ton USF

Peut-être une solution de ce style

Private Sub Cbn_Sauvegarde_Click()
  Dim Ctl As Control
  Dim ShtD As Worksheet
  Dim nLig As Long, Col As Long
  ' Définir la feuille de destination
  Set ShtD = ThisWorkbook.Sheets("EnrUSF")
  ' Initialiser la colonne
  Col = 0
  ' Prochaine ligne vide de la feuille
  nLig = ShtD.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
  ' Pour chque contrôle de l'USF
  For Each Ctl In Me.Controls
    ' Ne pas traiter les label
    If Not TypeOf Ctl Is MSForms.Label And Not TypeOf Ctl Is MSForms.Frame Then
      ' Incrémenter la colonne
      Col = Col + 1
      ' Sur la 1ère ligne, le nom du contrôle
      ShtD.Cells(nLig, Col).Value = Ctl.Name
      ' Sur la 2ème ligne sa valeur
      ShtD.Cells(nLig + 1, Col).Value = Ctl.Value
    End If
  Next Ctl
End Sub

@ voir

Wow!

Merci beaucoup!

Sans vouloir abuser:

supposons que dans un combobox je genere la liste des clients de la colonne textbox9

comment faire pour pouvoir utiliser le meme type de code pour remplir mon userform?

je n'Avais jamais vu ce type de manoeuvre et j'ai cherché avant de questionner.

Re,

Je n'ai pas compris la formulation de début, mais sinon pour récupérer les données je regarde

Comment ça va au canada ?

Merci,

ici au Québec nous sommes les champions de l'isolement selon Google.

Je crois qu'en général la santé est bonne pour tout le monde, j'ai des amis qui sont passé au travers du Covid-19.

Le printemps arrive et on a beaucoup à faire donc on en profite pour faire les petites tâches dans le jardin, mais on veut reprendre la vie.

Notre gouvernement a prolongé notre lockdown jusqu'au 4 mai.

c'Est à dire que seulement les commerces et institutions essentielles fonctionnent.

tout le reste est fermé jusqu'à nouvel ordre.

financièrement notre gouvernement fédéral aloue une allocation de 2000$ CAD par personne / 4 semaines. imposable

c'est honnêtement très peu, mais c'est déjà ca .........

Au fond, je voudrais pouvoir générer une liste de fiches avec une combobox alimenter par la textbox9 (le nom du client)

et aussi à chaque fois que j'enregistre une nouvelle fiche le nom des controls s'Affichent encore .. peut-on s'Arranger pour supprimer le nom des controls ... je voudrais juste les avoir une fois en entête

Re,

[quote=crackwood01 post_id=856215 time=1586314924 user_id=39548]

ici au Québec nous sommes les champions de l'isolement selon Google.

Je crois qu'en général la santé est bonne pour tout le monde, j'ai des amis qui sont passé au travers du Covid-19.[/Quote]

Oui, c'est ce qu'on voit dans les stats

Le printemps arrive et on a beaucoup à faire donc on en profite pour faire les petites tâches dans le jardin, mais on veut reprendre la vie.

Notre gouvernement a prolongé notre lockdown jusqu'au 4 mai.

c'Est à dire que seulement les commerces et institutions essentielles fonctionnent.

tout le reste est fermé jusqu'à nouvel ordre.

financièrement notre gouvernement fédéral aloue une allocation de 2000$ CAD par personne / 4 semaines. imposable

c'est honnêtement très peu, mais c'est déjà ca .........

Cool je trouve ce n'est pas ce que l'on a en France

[quote=crackwood01 post_id=856215 time=1586314924 user_id=39548]

Au fond, je voudrais pouvoir générer une liste de fiches avec une combobox alimenter par la textbox9 (le nom du client)[/Quote]

J'ai ajouté un USF pour le choix du client

et aussi à chaque fois que j'enregistre une nouvelle fiche le nom des controls s'Affichent encore .. peut-on s'Arranger pour supprimer le nom des controls ... je voudrais juste les avoir une fois en entête

C'est pour être certain de prendre le bon contrôle lors de la restitution des données... a voir par la suite

Voici ton fichier

Wow merci c'est sensationnel!!

Honnêtement je bidouilles pas mal, mais la façon dont le code est bâti est pas mal au dessus de mes compétences, j'arrive à le comprendre très bien sauf que pour l'éditer/modifier ..

Lorsque je récupère une fiche, quand je veux la modifier, au lieu de modifier ca en créer une nouvelle .. donc un genre de doublon, comment remédier à cela?

Crackwood01

Il est 6h du matin en France, je suis levé depuis 3h, je vais aller refaire un petit dodo et je reviens

Ok merci!

J'inscris comme résolu pour la questionnde départ!

Salut CrackWood01,

Voilà la nouvelle version de ton fichier

En cas de récupération des données et de sauvegarde, je pars du principe qu'on veut modifier les données

Donc je cherche la ligne concernée et je remplace les valeurs par celle de l'USF

Si on ouvre le formulaire et qu'on veut ensuite sauvegarder, c'est un nouvel ajout

Quand tes contrôles seront tous nommés comme il faut et qu'il n'y aura plus de changement de ton USF,

nous verrons à supprimer la ligne supplémentaire des noms des contrôles

@+

Merci!!

Surtout merci de l'avoir indenté, ca m'aide!!

Bon ouh la ....

Désolé de revenir è la charge mais la je bloque.

J'ai modifié un peu la feuille Data question d'y faire un ménage et d'y voir plus clair.

Tous les Labels dans le calcul sont maintenant des textbox ainsi que la distance en KM

j'ai intégré la combobox au même formulaire.

Quand j'enregistre mon premier client et que je veux le modifier par la suite tout par en vrille.

Je ne comprends pas l'erreur je n'ai pas modifier le code en tant que tel, du moins je crois.

Pour ma part j'ai seulement remplacer les label pour des textbox afin de pouvoir les intégré dans la boucle qui sauvegarde les controls.

Could'nt set the value property type mismatch

Peux-tu y jeter un oeil?

merci

EDIT: c'était les #VALUE qui buggait .. de toutes facon ca veut dire que mes formules ne fonctionnent pas .... alors je m'en occupes

RE!

Bonjour Forum,

Bonjour BrunoM45,

Je crois bien avoir terminé de codé les derniers boutons de mon formulaire.

Y'aurait-il moyen de

1. Pouvoir supprimer des fiches

2. Pouvoir trier la combobox12 par année (avec l'aide de la combobox juste à coté) (la date se seuvegarde avec la textbox49)

Merci!!

Salut CrackWood01

Dis voir,

actuellement il n'y a aucun rapport entre ta feuille [Fiche] et les USF que tu enregistres... tu a fait quelque chose à ce sujet

Vraiment désolé,

je suis vraiment dans la lune, je ne t'ai même pas joint le fichier.

11budget-muc-v3.xlsm (189.60 Ko)

Salut CrackWood01

Dis voir,

actuellement il n'y a aucun rapport entre ta feuille [Fiche] et les USF que tu enregistres... tu a fait quelque chose à ce sujet

Je l'ai juste supprimer étant donné qu'elle ne servait à rien ... je n'ai pas besoin d'Avoir une jolie interface pour les base de données, ce serait une utilisation 100% userform avec exportation de pdf ou xls en fichier distinct .....

Salut BrunoM,

Je suis aller faire un tour sur ton site web.

As-tu une version démo de ton planificateur de chantier?

Salut BrunoM,

Je suis aller faire un tour sur ton site web.

As-tu une version démo de ton planificateur de chantier?

Salut Carckwood01

Non ce n'est pas prévu, c'est juste une présentation de ce que je sais faire et celle là date

Mais pourquoi pas, il faut que je regarde ça

Pour revenir à ton fichier, pour ta première question : Pouvoir supprimer des fiches

Dans quelle condition voudrais-tu le faire ?

Ensuite, avec la combobox année, un client ne peut-il pas faire plusieurs projets la même année, comment sélectionné le bon ?

Sinon voici ton fichier modifié pour le tri par nom des clients

@+

Premièrement j'aimerais grandement te remercier pour le temps que tu investi dans mon projet, c'est super apprécié.

pour répondre à ta question, en 5 ans de finition de maisons usinées, jamais je n'ai eu à differents projets avec le meme client, encore moins la même année. Si advenait le cas j'inscritait _2 sur son nom.

De plus, chez moi, le classement par année ne fonctionne pas ....

si j'enregistre un client en 2020, et que je selectionne 2021, le client apparait toujours .....

de plus il m'est impossible d'enregistrer un nouveau client ca m'envoie un message d'erreur 1004 sur cette ligne

Me.Cbx_NomClt.AddItem .Cells(Lig + 1, ColF)

pour supprimer la fiche,

tout simplement selectionner le client dans la combobox, puis pouvoir supprimer sa ligne

Re,

Premièrement j'aimerais grandement te remercier pour le temps que tu investi dans mon projet, c'est super apprécié.

Merci, mais de rien... quand un sujet me passionne, c'est à fond

pour répondre à ta question, en 5 ans de finition de maisons usinées, jamais je n'ai eu à differents projets avec le meme client, encore moins la même année. Si advenait le cas j'inscritait _2 sur son nom.

Ok, je comprend smieux

De plus, chez moi, le classement par année ne fonctionne pas ....

si j'enregistre un client en 2020, et que je selectionne 2021, le client apparait toujours .....

Attention, tu ne parle pas de classement !

Il s'agit du retour d'information en fonction de l'année sélectionnée et je me posais la question justement, tu viens d'y répondre

de plus il m'est impossible d'enregistrer un nouveau client ca m'envoie un message d'erreur 1004 sur cette ligne

Me.Cbx_NomClt.AddItem .Cells(Lig + 1, ColF)

Si tu as vu, j'ai changé le code, je n'ajoute plus l'entête des noms de contrôle. Je laisse ça en 1ère ligne

Je vais regarder

pour supprimer la fiche,

tout simplement selectionner le client dans la combobox, puis pouvoir supprimer sa ligne

Ok, vu

Voici la dernière version du fichier

@+

Rechercher des sujets similaires à "sauvegarde userform"