Probleme modification

Bonjour

je dois malheureusement vous déranger pour demander votre aide

j'indique que je ne connais pas beaucoup le code donc généralement j'emprunte du code vu sur le net.

mon problème se situe lorsque je veux modifier des données existante.

dans le fichier joint si le choisi "modifier" et que je veux mettre à jour le dossier ou modifier une données déjà enregistrer.

lorsque que je valide seule la textbobox2 se met à jour.

pouvez vous m'aider à comprendre.

merci

9suivi-sinistre.xlsm (108.38 Ko)

Bon j'ai planché dessus afin de trouver une solution.

j'ai adapté le code pour simplifier le bouton valid

j'ai un label "label_select"(qui sera caché) qui indique le N° de ligne sélectionné dans liste des dossiers (label_select.Caption = lstdossier.ListIndex + 2) (en haut a droite) ou par défaut le caption "LIGNE"

quand je clique sur valid avec bouton créer ça fonctionne mais quand je veux modif ça coince.

est-il possible d'avoir votre aide pour me corriger

merci

Code

Private Sub boutton_valid_Click()

If label_select.Caption = "LIGNE" Then 'ajout

ligne_insertion = Sheets("sinistre").Range("A456541").End(xlUp).Row + 1

Else 'si modif

ligne_insertion = label_select.Caption

End If

Sheets("sinistre").Cells(ligne_insertion, 1) = TextBox1.Value

Sheets("sinistre").Cells(ligne_insertion, 2) = TextBox2.Value

Sheets("sinistre").Cells(ligne_insertion, 3) = TextBox3.Value

Sheets("sinistre").Cells(ligne_insertion, 4) = combo_type.Value

Sheets("sinistre").Cells(ligne_insertion, 5) = Combo_modele.Value

Sheets("sinistre").Cells(ligne_insertion, 6) = combo_immat.Value

Sheets("sinistre").Cells(ligne_insertion, 7) = combo_bris.Value

Sheets("sinistre").Cells(ligne_insertion, 8) = combo_rfp.Value

Sheets("sinistre").Cells(ligne_insertion, 9) = TextBox4.Value

Sheets("sinistre").Cells(ligne_insertion, 10) = Combo_repa.Value

Sheets("sinistre").Cells(ligne_insertion, 11) = TextBox5.Value

Sheets("sinistre").Cells(ligne_insertion, 12) = TextBox6.Value

Sheets("sinistre").Cells(ligne_insertion, 13) = TextBox7.Value

Sheets("sinistre").Cells(ligne_insertion, 14) = TextBox8.Value

Sheets("sinistre").Cells(ligne_insertion, 15) = TextBox9.Value

Sheets("sinistre").Cells(ligne_insertion, 16) = TextBox10.Value

Sheets("sinistre").Cells(ligne_insertion, 17) = TextBox11.Value

Sheets("sinistre").Cells(ligne_insertion, 18) = TextBox12.Value

Sheets("sinistre").Cells(ligne_insertion, 19) = TextBox13.Value

Sheets("sinistre").Cells(ligne_insertion, 20) = TextBox14.Value

Sheets("sinistre").Cells(ligne_insertion, 21) = TextBox15.Value

Sheets("sinistre").Cells(ligne_insertion, 22) = TextBox16.Value

Sheets("sinistre").Cells(ligne_insertion, 23) = TextBox17.Value

Sheets("sinistre").Cells(ligne_insertion, 24) = TextBox18.Value

Sheets("sinistre").Cells(ligne_insertion, 25) = TextBox19.Value

Sheets("sinistre").Cells(ligne_insertion, 26) = TextBox20.Value

Sheets("sinistre").Cells(ligne_insertion, 27) = TextBox21.Value

Sheets("sinistre").Cells(ligne_insertion, 28) = TextBox22.Value

Sheets("sinistre").Cells(ligne_insertion, 29) = TextBox23.Value

Sheets("sinistre").Cells(ligne_insertion, 30) = TextBox24.Value

Sheets("sinistre").Cells(ligne_insertion, 31) = TextBox25.Value

Sheets("sinistre").Cells(ligne_insertion, 32) = TextBox26.Value

Sheets("sinistre").Cells(ligne_insertion, 33) = TextBox27.Value

Sheets("sinistre").Cells(ligne_insertion, 34) = TextBox28.Value

Sheets("sinistre").Cells(ligne_insertion, 35) = TextBox29.Value

If opboutton_creer.Value = True Then

MsgBox "Dossier " & UserForm1.TextBox1 & " créé", vbInformation, "Ajout nouveau dossier"

opboutton_consult.Value = True

Effacer_Formulaire

ElseIf opboutton_modif.Value = True Then

MsgBox "Modification sur le dossier " & UserForm1.TextBox1 & " effectuée", vbInformation, "Modification dossier"

End If

End Sub

14suivi-sinistre.xlsm (110.68 Ko)

Bonjour Thineeos,

J'ai regardé rapidement le programme Suivi de Sinistre. D'abord certains contrôles ComboBox ou TextBox subissent des restrictions selon la valeur d'autres contrôles. Exemple ci-dessous pour le Bris de Glace

Private Sub combo_rfp_Change()

If combo_bris.Text = "Oui" And combo_rfp.Text = "Oui" Then

TextBox4.Value = "50"

ElseIf combo_bris.Text = "Oui" And combo_rfp.Text = "Non" Then

TextBox4.Text = "150"

ElseIf combo_bris.Text = "Non" And combo_rfp.Text = "Oui" And combo_type.Text = "voiture" Then

TextBox4.Text = "150"

ElseIf combo_bris.Text = "Non" And combo_rfp.Text = "Oui" And combo_type.Text = "camion" Then

TextBox4.Text = "300"

Else: TextBox4.Text = Worksheets("base").Range("G3").Value

End If

End Sub

C'est le cas en particulier pour tout ce qui a trait aux assurances. Ci-dessus selon la valeur du combo_bris (Bris de glace). Lorsque l'on change le combo-rfp (Rachat Franchise). Il est possible que certaines modifs ne peuvent être acceptées.

Ensuite il existe aussi pour ce combo ci en plus de l'événement Change celui du clic. D'autres contrôles sont similaires.

Private Sub combo_rfp_Click() ' test combo vehicule complete

If Combo_modele.ListIndex = -1 Or combo_immat.Value = "" Or combo_bris.ListIndex = -1 Then

MsgBox "Veuillez renseigner le véhicule ainsi que le bris de glace", vbInformation, "Information véhicule"

combo_rfp.Value = ""

combo_rfp.Value = ""

TextBox4.Value = ""

End If

End Sub

Il faut donc avant d'opérer des modifications bien suivre le cheminement du programme pour éviter l'usine à gaz. Je vais y regarder encore d'avantage. Cela va prendre plus de temps. A suivre donc...

Ok merci davoir pris le temps de regarder.

Je vais simplifier la chose je vais plutôt traiter les 2 combo sous Excel du coup il n'y aura qu'un affichage oui/non, je traite les conditions sous Excel, et textbox4 ne sera que valeur renvoyer d'Excel.

Cela permettra de simplifier le problème?

Bonsoir Tihneeos

J'ai effectué quelques tests pour la modification que je te livre en fin de message. Le souci vient de la validation, donc au moment de valider les modifs faites. En effet après avoir cliqué sur le bouton valider le code repasse par le contrôle dont la valeur a été changée et réinitialise ce-dernier à l"ancienne valeur. Je pense qu'un bouton séparé (ex: Valide les Modif.) doit éviter cet effet dans un premier temps.

Private Sub combo_rfp_Change()

'Modif exemple: La ligne 10 représente la ligne de modification

If combo_bris.Text = "Oui" And combo_rfp.Text = "Oui" Then

TextBox4.Value = "50"

ElseIf combo_bris.Text = "Oui" And combo_rfp.Text = "Non" Then

TextBox4.Text = "150"

ElseIf combo_bris.Text = "Non" And combo_rfp.Text = "Oui" And combo_type.Text = "voiture" Then

TextBox4.Text = "150"

ElseIf combo_bris.Text = "Non" And combo_rfp.Text = "Oui" And combo_type.Text = "camion" Then

TextBox4.Text = "300"

Else: TextBox4.Text = Worksheets("base").Range("G3").Value

End If

Cells(10, 8) = combo_rfp.Text: Cells(10, 9) = TextBox4.Text 'Récup changement

Stop

End Sub

Modification d'une ligne d'un dossier (exemple mis en ligne 10 mais sera beaucoup plus loin dans l'onglet Sinistre ou sur une autre feuille)

Ces cellules (modif provisoire sauvée: NON et 150) gardent le changement du combo_rfp et du TextBox4. Donc l'opération de changement se fait. Ensuite sur le code de validation j'ai placé quelques lignes.

ElseIf opboutton_modif.Value = True Then

If Not TextBox1.Value = "" Then

Sheets("sinistre").Select

modif = lstdossier.ListIndex + 2

Cells(modif, 2) = TextBox2.Value

Cells(modif, 3) = TextBox3.Value

Cells(modif, 4) = combo_type.Value

Cells(modif, 5) = Combo_modele.Value

Cells(modif, 6) = combo_immat.Value

Cells(modif, 7) = combo_bris.Value

'Test sur combo_rfp + TextBox4

combo_rfp.Text = Cells(10, 8)

TextBox4.Text = Cells(10, 9)

Cells(modif, 8) = Cells(10, 8) 'combo_rfp.Text

Cells(modif, 9) = Cells(10, 9): Stop 'TextBox4.Text

MsgBox "Modification sur le dossier " & UserForm1.TextBox1 & " effectuée", vbInformation, "Modification dossier"

Range("A10:AA10") = ""

Stop

Exit Sub

End If

End If

End Sub

Après modif du code. Refaire les tests en utilisant la touche F5 pour sortir des stops mis dans le code. Vérifier sur la 1 ière feuille l'existence du changement. Puis constater au moment de la validation le retour vers le code du contrôle combo_rfp.

Je regarde encore pour déterminer le pourquoi de ce double passage sur le contrôle.

Bon courage..

Ok je viens de te lire je reprends ça tout l'heure pour tout comprendre.

Le soucis vient sans doute des multiples boit de code trouver et modifier par mes soins débutant. Sinon je vire tout et on mets en place la possibilité de créer et modifier et après je complète sans tout casser.

Bref je vois aussi pour simplifier la partie 1 du user "locataire" je remets ici des que je modifie. Su ça peut simplifier le problème

Merci

Salut

bon j'ai retravailler le user

les modif

il n'y a plus d’événement sur change ou clic qui devrait gêner

de toute façon j'ai rajouter un bouton valid dans la partie locataire.

une fois valid impossible de modifier la locataire (définitivement)

la gestion du bris et rfp est gérer sur excel dans un tableau matriciel. (que je viens de découvrir c'est très utile)

donc si création tout les champs sont validé

si modif seulement à partir de textbo5. cf boutton _valid

pour la suite du formulaire je vais devoir ajouter un nouveau bouton pour valider le montant des réparations car cela permet de calculer le montant du par l'assurance ou pas. c’était sur un événement change alors je le rajoute.

en gros je renvoi la valeur saisie dans le montant TTC sur excel, je valid, excel fait sa tambouille et renvoit le montant HT de chaque devis et du montant total ainsi que le montant du assurance et caution à prendre etc...

bouton non fonctionnel j'ai pas eu le courage ce soir

mais la partie "modifier " + valid échoue toujours.

voilà si ça peut réduire les contraintes en espérant ne pas avoir rendu la tache plus hard...

bonne nuit

11suivi-sinistre.xlsm (121.05 Ko)

Bonjour Tihneeos,

Comme je le pressentais c'est bien sur le code de la validation que cela posait problème.

En fait comme le code passe par tous les contrôles et non seulement celui ou ceux modifiés. Cela crée les erreurs.

Donc la zone tampon (zone de modif) réalisé hier permet d'éviter cet inconvénient.

Maintenant cela fonctionne. Voir les modifs faites. Ne pas oublier de renseigner comme je l'ai fait lors du Change du contrôle Franchise d'insérer une ligne de code final qui reprend les changement opérés sur le contrôle. C'est à dire la colonne miroir de la zone tampon par rapport au dossier en cours.

J'ai laissé tous les stops pour que tu suive à nouveau le cheminement. Et modifier dans le code de validation: apport d'un select case plutôt que des Elseif / End if. Boucle de recherche des cellules modifiées. Ce qui supprime l'ensemble des appels aux différents contrôles.

Bons tests et bonne continuation.

salut

j'ai regarder ton code, sur le principe j'ai compris ce que je dois faire, au moins je connais CASE maintenant.

par contre je vois bien les modif des combo en ligne 10 ou 1000 après modif mais elle ne sont pas sauvegarder.

j'ai pas eu beaucoup de temps ces derniers jours donc je mets ça en stand by jusqu’à jeudi ou vendredi.

merci en tout cas maintenant j'ai plus qu'à trouver le pourquoi du non enregistrement.

a+

Bonjour Tihneeos,

En effet elles ne sont pas sauvegardées. Voir en fin de macro Valider ligne "A10:AA10"="".

Car une fois que la modif a été apporté au dossier (par ex dossier 1, ligne 1 de la base) on n'a pas besoin de la conserver. C'est une zone tampon, c'est à dire provisoire.

Elle se situerait plutôt ligne 1000 au minimum ou 2000 ou 5000. Tout dépendra de la capacité prévu pour ta base de données. C'est à dire le nombre de dossiers que tu comptes traiter au maximum.

Si cette zone tampon n'était pas vidée. Elle pourrait influencer d'autres dossiers. Donc il est préférable de passer par un RAZ de cette zone.

Salut

Alors j'ai pas eu beaucoup de temps pour regarder mais ce matin j'ai pris e taureau par les cornes.

Donc j'ai finalement épuré le code .

La partie locataire est figé après la 1ere validation.

Plus de change à gérer.

J'ai repris ta logique.

Jai pas encore finie. Mais en gros lorsque je clic sur valider jai un message qui demande si je veux modifier pendant ce temps il transpose les modif en ligne temporaire si je valide ça va remplacer les donnes. Sinon non, exit

Encore merci je fini ça la semaine prochaine.

Rechercher des sujets similaires à "probleme modification"