Pb sur macro pour modifier un enregistrement

helencompta

XLDnaute Nouveau
Bonjour à toutes et tous,

Je viens à nouveau demander de l'aide sur une macro qui me pose problème.
Je possède un fichier Excel contenant un onglet intitulé "Clients" sur lequel se trouve les données de mon fichier client (une ligne = 1 client, et j'ai pour chaque client 13 colonnes avec Nom, Prénom, Adresse... Téléphone, Code). Le code de mon client est un chiffre unique qui se trouve dans ma colonne 11.

J'ai un premier Userform (intitulé "CLIENTS") qui permet à l'utilisateur de consulter la fiche d'un client et qui renvoi les valeurs de mes colonnes dans des textbox. Ca fonctionne super bien.

J'ai un second useform (intitulé "MODIFIER_CLIENT") qui me permet de compléter ou modifier une fiche client (par exemple changement de téléphone) et là ça coince !

Dans l'ordre :
- quand je suis sur la fiche d'un client (userform CLIENTS) et quand je pousse un bouton, ça m'ouvre l'userform MODIFIER_CLIENT avec les données de ce client : OK
- je saisi des nouvelles valeurs ou efface des valeurs exstantes : OK
- je pousse le bouton "ENREGISTRER les MODIFS" et là : Pas OK

Voici mon code :

Code:
'Bouton ENREGISTRER
Private Sub CommandButton1_Click()
'Permet d'enregistrer les modifications saisies
 Dim i As Range
'recherche de la ligne ou figure le code du client (textbox1O) dans la feuille "Clients" dans la colonne 11 du classeur pour appliquer les modifications
With Sheets("Clients").Columns(11)
    i = .Cells.Find(TextBox10).Row
    
    i.Offset(1, -9).Value = TextBox1.Text 'Nom
    i.Offset(1, -8).Value = TextBox2.Text 'Prenom
    i.Offset(1, -7).Value = TextBox3.Text 'Adresse
    i.Offset(1, -6).Value = TextBox4.Text 'Complement
    i.Offset(1, -5).Value = TextBox5.Text 'Code Postal
    i.Offset(1, -4).Value = TextBox6.Text 'Ville
    i.Offset(1, -3).Value = TextBox7.Text 'Telephone Fixe
    i.Offset(1, -2).Value = TextBox8.Text 'Telephone Mobile
    i.Offset(1, -1).Value = TextBox9.Text 'Mail
    i.Offset(1, 1).Value = TextBox11.Text 'Couleur 1
    i.Offset(1, 2).Value = TextBox12.Text 'Couleur 2
    i.Offset(1, 3).Value = TextBox13.Text 'Couleur 3

    MsgBox "Les modifications sont enregistrées !"
End With
'Ferme la fenêtre Modifier_client
Unload MODIFIER_CLIENT
End Sub

Je vous remercie d'avance pour votre aide.
:)
 

youky(BJ)

XLDnaute Barbatruc
Re : Pb sur macro pour modifier un enregistrement

Bonjour Helencompta,
Un textbox renvoie du texte même si c'est des chiffres
par contre ceux de ta colonne 11 doivent être du numéric....
remplace i = .Cells.Find(TextBox10).Row
par i = .Cells.Find(Val(TextBox10)).Row
Non testé
Bruno
 

pierrejean

XLDnaute Barbatruc
Re : Pb sur macro pour modifier un enregistrement

Bonjour helencompta

A tester modifier:

Code:
 i = .Cells.Find(TextBox10).Row

en

Code:
 set i = .Cells.Find(TextBox10).Row

ou mieux

Code:
 set i = .Cells.Find(TextBox10,lookin:=xlvalues,lookat:=xlwhole).Row

Edit : Salut Youki
OK avec toi si le code client est un nombre
 
Dernière édition:

helencompta

XLDnaute Nouveau
Re : Pb sur macro pour modifier un enregistrement

Bonsoir Youki et Pierrejean,

Avec du retard, je vous remercie pour vos réponses. Je touche le bon bout !
Pour information, j'ai testé vos deux solutions, toutes deux efficaces, du coup, je vais tirer au sort :)

Encore merci,
 

Discussions similaires

Réponses
0
Affichages
143
Réponses
3
Affichages
289

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972