Sauvegarde depuis Userform
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
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
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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 ?
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
[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
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
@+
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Merci!!
Surtout merci de l'avoir indenté, ca m'aide!!
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Vraiment désolé,
je suis vraiment dans la lune, je ne t'ai même pas joint le fichier.
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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 .....
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
@+
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
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
@+