gislain99
-
16 juin 2013 à 22:57
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 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
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
-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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.