Probleme doublon

gislain99 - 16 juin 2013 à 22:57
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 18 juin 2013 à 18:25
Bonjour,
j'ai une multipage qui me sert a renseigner une feuille excel par l'intermediaire de textbox.J'interdi les doublons dans la colonne A ci dessous mon code
'Doublon n° container
Private Sub TextBox4_Change()
    If Len(Me.TextBox4) = 4 Then
        X = Me.TextBox4
    End If
End Sub

'Doublon n° container
Private Sub TextBox5_change()
    If Len(Me.TextBox5) = 6 Then
        X = X & Me.TextBox5
    End If
End Sub

'Doublon n° container
Private Sub TextBox6_change()
    If Len(Me.TextBox6) = 1 Then
        X = X & "_" & Me.TextBox6
        Doublon
    End If
End Sub

'Doublon n° container
Private Sub Doublon()
Dim cel As Range, X As String
X = TextBox4 & TextBox5 & "-" & TextBox6
Set cel = Range("Immatriculation").Find(X, LookIn:=xlValues)    ' , xlValues, xlWhole, , , False)
If Not cel Is Nothing Then
 MsgBox "L'mmatriculation " & X & " est deja enregistré ", vbExclamation
Me.TextBox4 = ""
Me.TextBox5 = ""
Me.TextBox6 = ""
 End If
End Sub


J'ai un bouton qui me sert a modifier les saisies deja réalisé je clique sur celui ci ce qui m'ouvre un userform qui me demande de saisir l'immatriculation a modifier (cette information ce trouve en colonne A).Quand je valide mon userform pour renvoiller toute les info que j'ai dans les textbox correspondante il me dit que mon immatriculation existe deja.
Il faudrait pouvoir supprimer l'info de la feuille excel avant quelleréaparesse dans mes textbox mais je ne voi pas comment faire ci dessous mon code

'Modification container
Private Sub CommandButton1_Click()
Dim cel As Range, lig&, i&
If TextBox1 + TextBox2 + Label2 + TextBox3 <> "" Then
Set cel = Feuil11.Range("A2:A" & Feuil11.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1 + TextBox2 + Label2 + TextBox3, , , xlWhole)
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Cette Immatriculation n'existe pas !", , "Pas de corresp": Exit Sub
UserForm3.TextBox4 = Left(Feuil11.Cells(lig, 1), 4)
UserForm3.TextBox5 = Mid(Feuil11.Cells(lig, 1), 5, [6])
UserForm3.TextBox6 = Right(Feuil11.Cells(lig, 1), 1)
UserForm3.ComboBox1 = Feuil11.Cells(lig, 3)
UserForm3.ComboBox2 = Feuil11.Cells(lig, 4)
UserForm3.TextBox18 = Feuil11.Cells(lig, 5)
UserForm3.TextBox146 = Feuil11.Cells(lig, 6)
UserForm3.ComboBox3 = Feuil11.Cells(lig, 7)
UserForm3.TextBox10 = Feuil11.Cells(lig, 8)
UserForm3.ComboBox5 = Feuil11.Cells(lig, 9)
'UserForm3.ComboBox6 = Feuil11.Cells(lig, 10)
UserForm3.ComboBox7 = Feuil11.Cells(lig, 11)
'UserForm3.ComboBox8 = Feuil11.Cells(lig, 12)
UserForm3.TextBox20 = Feuil11.Cells(lig, 13)
UserForm3.TextBox61 = Feuil11.Cells(lig, 14)
Sheets("Bases_Containers").Rows(lig).Delete
Sheets("Impression_Liste_Containers").Rows(lig).Delete
UserForm3.ListBox1.RowSource = UserForm3.ListBox1.RowSource
UserForm5.Hide
End If
End Sub

7 réponses

Utilisateur anonyme
17 juin 2013 à 01:32
Bonjour,

Tu enregistres une macro qui efface la ligne ou la feuille en cause. Cela va peut-être prendre quelques modifications mais l'essentiel y sera.
0
Utilisateur anonyme
17 juin 2013 à 01:37
Bonjour,

UserForm3.TextBox146 = Feuil11.Cells(lig, 6)


Quand je vois TextBox146; je me demande quel monstre tu as bien pu créer et aussi si Excel est/était le meilleur outil à utiliser.
0
Bonjour,
-cmarcotte je ne sait pas si tu a lu bien lu mon message la proposition que tu me fait est celle que je decrit en disant que je n'arrive pas a faire ci tu regarde bien mon code tu vera que j'ai une ligne qui suprime la valleur qui me derange mais elle ne s'applique pas au bon moment
Sheets("Impression_Liste_Containers").Rows(lig).Delete


Le monstre que j'ais créer est adapter a mon utilisation apres je debute donc faut bien commencer par quelque chose.
0
Utilisateur anonyme
18 juin 2013 à 03:13
Bonjour,

-cmarcotte je ne sait pas si tu a lu bien lu mon message la proposition que tu me fait est celle que je decrit en disant que je n'arrive pas a faire ci tu regarde bien mon code tu vera que j'ai une ligne qui suprime la valleur qui me derangement



Si tu penses que l'on va tous nous garrocher pour lire attentivement un code d'un mille non indenté; tu t'es mis le doigt dans l'œil jusqu'au coude.

mais elle ne s'applique pas au bon moment


Et puis, as-tu juste passé ta procédure au pas à pas, juste pour voir ce qu'elle fait réellement ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juin 2013 à 06:40
Bonjour, La très évidemment mauvaise idée est de lancer doublon dans l'évènement Change, qui :
- non seulement va intervenir à chaque caractère saisi dans TextBox6,
mais, en outre,
- interviendra également lorsque la textbox6 verra son texte modifié depuis la feuille de calcul
Observation : ma réponse est une réponse de simple logique élémentaire

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonjour,
Vous me conseiller de lancer mon doublon a quel endrois ci c'est passible d'avoir une description sucsinte.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juin 2013 à 18:25
Pas seulement doublon, mais tout ce que tu as mis dans :
Private Sub TextBox6_change()
    If Len(Me.TextBox6) = 1 Then
        X = X & "_" & Me.TextBox6
        Doublon
    End If
End Sub

ou alors : laisse le reste dans Change mais lance doublon depuis ailleurs (un bouton, par exemple, ou encore à la sortie de ta textbox)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous