Modifier des donnees

Bonjour,

Je suis entrain de constitué un mini programme pour la gestion de mes prospects.

Cependant, quand je rentre le code VBA pour la modification des données d'un prospect celui-ci change que la premier colonne de mon code, alors que j'ai bien renseigné à quelle colonne correspond à quelle Text ou ComboBox.

Private Sub CommandButton7_Click()
    Worksheets("PROSPECT").Select
    Dim modif1 As Integer
    Var = Sheets("PROSPECT").Range("A:A").End(xlDown).Row + 1
    R = MsgBox("Modfication effectuée", vbYesNo, "")
    If R <> 6 Then Exit Sub
    For modif1 = 1 To Var
    While ComboBox11.Text = Cells(modif1, 1).Value
    Rows(modif1).Select
    Cells(modif1, 2) = ComboBox1.Value
    Cells(modif1, 3) = ComboBox2.Value
    Cells(modif1, 4) = TextBox3.Value
    modif1 = modif1 + 1
    Wend
    Next modif1

End Sub

Bonjour,

C'est d'autant plus curieux que le code ne prévoit pas de modification de la colonne A (de la feuille)

une proposition de modification du code:

Private Sub CommandButton7_Click()
    Dim modif1 As Integer
    With Worksheets("PROSPECT")
    Var = .Range("A:A").End(xlDown).Row + 1
    R = MsgBox("Modfication effectuée", vbYesNo, "")
    If R <> 6 Then Exit Sub
    For modif1 = 1 To Var
       If ComboBox11.Text = .Cells(modif1, 1).Value Then
          .Cells(modif1, 2) = ComboBox1.Value
          .Cells(modif1, 3) = ComboBox2.Value
          .Cells(modif1, 4) = TextBox3.Value
       End If
    Next modif1
End Sub

S'il n'y a aucune modification en colonne 2, 3 ou 4, c'est que ComboBox11.Text n'est jamais égale à .Cells(modif1, 1).Value

A+

Merci pour ton retour,

c'est toujours pareil.

La ComboBox1 ce modifie bien mais les suivantes pas du tout !

quand je rentre le code VBA pour la modification des données d'un prospect celui-ci change que la premier colonne de mon code,

le code n'est pas prévu pour se modifier lui même (y compris la première colonne).

La ComboBox1 ce modifie bien mais les suivantes pas du tout !

le code n'est pas prévu pour modifier une combobox ni même plusieurs!

Je pense qu'il faut définir exactement le besoin,parce que là c'est incompréhensible.

Au besoin, ajouter le classeur.

Mes besoins sont les suivantes :

Quand je sélectionne ma référence dans le "ComboBox11", des résultats s'affiche dans la ComboBox1;ComboBox2 et TextBox3, qui provienne d'une base donnée.

Ensuite je voudrais pouvoir modifier les résultats des ComboBox1;ComboBox2 et TextBox3 et qu'il se modifie dans la base donnée.

S'il n'y a aucune modification en colonne 2, 3 ou 4, c'est que ComboBox11.Text n'est jamais égale à .Cells(modif1, 1).Value

il y a que la colonne 2 qui se modifie.

Avec le code du premier post, si la colonne 2 est modifiées, les colonnes 3 et 4 doivent l'être aussi puisque les écritures se font dans la même boucle !

Soit les valeurs copiées en colonnes 3 et 4 sont les mêmes que celles existant soit ...?

Joignez votre classeur pour y mener des tests .

A+

c'est sur l'userform 2

8valerie.rar (326.96 Ko)

Effectivement, c'est curieux.

a l'exécution de cette ligne:

Cells(modif1, 2) = ComboBox1.Value

la Private Sub ListBox1_Click() se déclenche et donc les modifications de ComboBox2 et TextBox3 sont "écrasées" par les valeurs de la listbox1

l'enregistrement se fait donc bien, mais pas avec les bonnes valeurs.

Je regarde en fin d'après midi

Effectivement, c'est curieux.

a l'exécution de cette ligne:

Cells(modif1, 2) = ComboBox1.Value

la Private Sub ListBox1_Click() se déclenche et donc les modifications de ComboBox2 et TextBox3 sont "écrasées" par les valeurs de la listbox1

l'enregistrement se fait donc bien, mais pas avec les bonnes valeurs.

Je regarde en fin d'après midi

Merci j'attend votre retour.

J'aimerai aussi créer un "moteur de recherche" de ma listbox.

Pouvez-vous m'aider sur ce point ?

Il faut sortir une loupe pour visualiser le Userform !!!

Pas trouvé pourquoi Private Sub ListBox1_Click() se déclenche.

Une parade:

tout en haut du module de l'userform déclarer:

Dim Flag As Boolean

en début de Private Sub ListBox1_Click() rajouter:

    If Flag Then Exit Sub

et modifier Private Sub CommandButton7_Click() comme suit:

Private Sub CommandButton7_Click()
Dim i As Integer
With Worksheets("PROSPECT")
 Var = .Range("A:A").End(xlDown).Row + 1
 R = MsgBox("Modfication effectuée", vbYesNo, "")
 If R <> 6 Then Exit Sub
    For i = 1 To Var
        If ComboBox11.Text = .Cells(i, 1).Value Then
            Flag = True
            .Cells(i, 2) = ComboBox1.Value
            .Cells(i, 3) = ComboBox2.Value
            .Cells(i, 4) = TextBox3.Value
            Exit For
        End If
 Next i
End With
Flag = False
End Sub

les colonnes 3 et 4 se mettent bien à jour avec les valeurs modifiées.

Pour le moteur de recherche de la listbox, mieux vaut créer une nouvelle discussion.

Bonne suite

Il faut sortir une loupe pour visualiser le Userform !!!

Pas trouvé pourquoi Private Sub ListBox1_Click() se déclenche.

Une parade:

tout en haut du module de l'userform déclarer:

Dim Flag As Boolean

en début de Private Sub ListBox1_Click() rajouter:

    If Flag Then Exit Sub

et modifier Private Sub CommandButton7_Click() comme suit:

Private Sub CommandButton7_Click()
Dim i As Integer
With Worksheets("PROSPECT")
 Var = .Range("A:A").End(xlDown).Row + 1
 R = MsgBox("Modfication effectuée", vbYesNo, "")
 If R <> 6 Then Exit Sub
    For i = 1 To Var
        If ComboBox11.Text = .Cells(i, 1).Value Then
            Flag = True
            .Cells(i, 2) = ComboBox1.Value
            .Cells(i, 3) = ComboBox2.Value
            .Cells(i, 4) = TextBox3.Value
            Exit For
        End If
 Next i
End With
Flag = False
End Sub

les colonnes 3 et 4 se mettent bien à jour avec les valeurs modifiées.

Pour le moteur de recherche de la listbox, mieux vaut créer une nouvelle discussion.

Bonne suite

Parfait !!!

merci !!

Rechercher des sujets similaires à "modifier donnees"