Bouton Modifier Code

Bonjour,

Je veux être capable de modifier un code lorsque je l'ai déjà saisie.

Exemple:

Code: 1234

Description: Lampe

Prix: 124$

J'ai fait une erreur

Code: 1234

Description: Lampe, finition blanche

Prix: 124$

Veuillez prendre note que j'ai beaucoup de ComboBox et de TextBox dans mon formulaire.

Je veux entrer le code : 1234 et ravoir la fiche avec la description et le prix pour le modifier.

Je ne sais pas si c'est clair.

Voici mon document.

Merci beaucoup de votre aide.

Bonjour,

Je vois ce que tu veux faire, mais... Malheureusement tu as beaucoup de formulaires qui se ressemblent, mais qui diffèrent un peu et du coup ne sont pas complètement fusionnables...

Je me demande si tu ne pourrais pas avoir quelque chose comme ça: une partie données communes, une partie données spéciales, que tu charges en fonction des besoins.

Pour le reste de ton souci, tu peux retrouver une références avec la fonction Range.Find() qui permet de renvoyer la cellule où tu trouves un code, attention à paramétrer lookAt:=xlwhole (pour chercher sur le contenu total des cellules et non seulement une partie de la cellule) avec ça tu pourras savoir sur quelle ligne tu dois modifier la description et le prix, et tu sauras aussi à partir de quelle ligne tu dois importer ces infos.

Après si tu souhaites juste modifier la description et le prix, tu peux simplement faire un petit formulaire avec ces infos

Qu'en penses-tu?

Bonjour,

tu veux dire dans mes formulaires ? tu as 10 formulaires différents donc cela veut dire 10 modes interrogation a créer ( un dans chaque formulaire )

Il aurait été préférable d'utiliser le même userform pour toutes les saisies.

La sélection du bouton dans ton onglet classeur aurait alors pu être utilisée pour activé la fonction vba Visible=true ou False des textbox ou combobox en fonction du choix désiré.

Dans le cas présent : on peut ajouter un combobox pour le numéro de référence et un bouton modifier ?

mais faudra coder de la même façon pour tous les userforms

J'aime vraiment mieux garder mes 10 formulaires différents c'est la façon la plus facile que nous avons trouvé pour la saisie de données. Donc ça ne me dérange nullement de copier-coller l'informations dans les 10 formulaires.

Je veux être capable de modifier toutes les informations qui sont dans le formulaire pas seulement la description ou le prix.

Il ne faut pas que j'appel toutes mes ComboBox et cellule pour être capable de les modifier?

Désolé je suis débutante dans le VBA.

Et après je veux que l'info se mettre à jour dans la feuille Saisie

J'ai fait ce code:

Je veux aller chercher le code précis que je veux modifié

Et l'information dans les textbox et combobox n'apparait pas.

On dirait que je ne fais pas référence à ma feuille.

Et le code de modification on dirait qu'il supprime le nom de mes colonnes....

Voir UserForm (modifier_luminaire)

'Recherche de code de produit

Private Sub CommandButton1_Click()

Dim no_colonne As Integer

no_colonne = ComboBox18.ListIndex + 2

With Sheets("Saisie")

TextBox13.Value = Cells(no_colonne, 13).Value

ComboBox17.Value = Cells(no_colonne, 22).Value

TextBox5.Value = Cells(no_colonne, 33).Value

ComboBox10.Value = Cells(no_colonne, 31).Value

TextBox20.Value = Cells(no_colonne, 44).Value

TextBox18.Value = Cells(no_colonne, 45).Value

End With

End Sub

'Modifier le code de produit

Private Sub Commandbutton2_click()

Dim no_colonne As Integer

Sheets("Saisie").Select

no_colonne = ComboBox18.ListIndex + 2

If ComboBox18.Value = "" Then

MsgBox ("Veuillez sélectionner le code de produit à modifier.")

Else

Cells(no_colonne, 13) = TextBox13.Value

Cells(no_colonne, 22) = ComboBox17.Value

Cells(no_colonne, 33) = TextBox5.Value

Cells(no_colonne, 31) = ComboBox10.Value

Cells(no_colonne, 44) = TextBox20.Value

Cells(no_colonne, 45) = TextBox18.Value

End If

End Sub

Merci énormément de votre aide.

Bonjour,

Je n'ai pas testé ta macro mais je vois quelque chose de bizarre dans ton code...

Cells(no_colonne, 13)

Tu as écris de nombreuses fois comme ça, et le souci c'est que Cells prend en paramètre: le numéro de ligne, puis le numéro de colonne, et pas l'inverse du coup je me demande si ce n'est pas un souci de nom de variable ou un souci d'écriture, tu devrais commencer par regarder de ce côté là, parce que de ce que tu nous dis, ça semble surtout effacer les en-têtes, donc no_colonne doit être égal à 1

Bonjour,

le userform Modif fonctionne avec un " With sheet "Saisie" .activate

Bonjour, Ausecour le nom donné n'est pas révélateur effectivement ; mais Sa variable "no_colonne"

va bien rechercher le numéro de ligne ( index combobox +2) ....

Bonjour Xmenpl

Ah d'accord, c'est juste le nom qui est mal choisi merci pour ta contribution

Ça fonctionne.

Merci beaucoup de votre aide.

Par contre je ne veux pas que quand je clique sur effectuer la modification que la feuille change pour Saisie je veux toujours que ça reste sur la feuille Formulaire nouveau code.

C'est le

Sheets("Saisie").Select

qui fait défaut...

Merci encore de votre aide.

Ça fonctionne.

Merci beaucoup de votre aide.

Par contre je ne veux pas que quand je clique sur effectuer la modification que la feuille change pour Saisie je veux toujours que ça reste sur la feuille Formulaire nouveau code.

C'est le

Sheets("Saisie").Select

qui fait défaut...

Merci encore de votre aide.

Re,

Facile ; si tu est obligé de faire un with sheet("saisie"). activate.

alors à la fin du code tu refais

with sheet("Formulaire nouveaucode").activate

end with

tu ne devrais pas avoir le temps de voir passer la feuille saisie à l'écran.

Re,

Facile ; si tu est obligé de faire un with sheet("saisie"). activate.

alors à la fin du code tu refais

with sheet("Formulaire nouveaucode").activate

end with

tu ne devrais pas avoir le temps de voir passer la feuille saisie à l'écran.

[/quote]

Je ne sais pas si je suis obliger de mettre un with je ne comprend pas ce que veux dire le with!

'Modifier le code de produit

Private Sub Commandbutton2_click()

Dim no_ligne As Integer

no_ligne = ComboBox18.ListIndex + 2

With Sheets("Saisie").Select

If ComboBox18.Value = "" Then

MsgBox ("Veuillez sélectionner le code de produit à modifier.")

Else

Cells(no_ligne, 13) = TextBox13.Value

Cells(no_ligne, 22) = ComboBox17.Value

Cells(no_ligne, 33) = TextBox5.Value

Cells(no_ligne, 31) = ComboBox10.Value

Cells(no_ligne, 44) = TextBox20.Value

Cells(no_ligne, 45) = TextBox18.Value

End If

End With

With Sheet("Formulaire nouveau code").Activate

End With

End Sub

Ca me donne un erreur Sub end function

Re,

Pourquoi rajouter le with?

Pour ne pas voir la feuille passer tu peux simplement utiliser :

Application.ScreenUpdating = false

en début de code, et

Application.ScreenUpdating = true

en fin de code.

Effectivement l'idée de Ausecour parait meilleurs.

Sinon puisque tu avais utlisé

with sheet("saisie").select

un simple

Sheets("Formulaire nouveau code").Select

( sans with) à la fin suffit.

ca marche sans le With à la fin.

Merci de ton aide!!!

ca marche sans le With à la fin.

Merci de ton aide!!!

et pour l'explication du

Application.ScreenUpdating = false en début puis True à la fin çà sert à ne pas actualisé l'affichage des

onglets. dans ton code tu effectues un changement d'onglet pour aller sur saisie mais

avec

Application.ScreenUpdating = false 'le changement est effectué sans que tu le vois.

ca marche sans le With à la fin.

Merci de ton aide!!!

et pour l'explication du

Application.ScreenUpdating = false en début puis True à la fin çà sert à ne pas actualisé l'affichage des

onglets. dans ton code tu effectues un changement d'onglet pour aller sur saisie mais

avec

Application.ScreenUpdating = false 'le changement est effectué sans que tu le vois.

C'est une commande très utile pour accélérer l'éxécution du code, car au lieu de se soucier de mettre à jour l'affichage à l'écran, ton processeur pourra pleinement se consacrer à ta macro

Rechercher des sujets similaires à "bouton modifier code"