Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Test de présence

9 réponses
Avatar
JulieH
Bonjour,

Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.

Private Sub B_ok_Click()
Application.ScreenUpdating = False

Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value

If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus

End Sub

Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.

J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.

Si quelqu'un peut me donner un petit coup de main, merci d'avance.

Julie.

9 réponses

Avatar
JB
Bonjour,

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub

http://cjoint.com/?gmnCdBXWKZ

JB

On 12 juin, 13:12, JulieH wrote:
Bonjour,

Le code suivant fourni par JB me permet de faire exactement ce qu e je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.

Private Sub B_ok_Click()
Application.ScreenUpdating = False

Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value

If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus

End Sub

Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.

J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.

Si quelqu'un peut me donner un petit coup de main, merci d'avance.

Julie.


Avatar
JulieH
Bonjour et merci à nouveau,

C'est parfait comme d'habitude.

Question annexe : peut-on détecter sur validation de la TextBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.

Julie


Bonjour,

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub

http://cjoint.com/?gmnCdBXWKZ

JB

On 12 juin, 13:12, JulieH wrote:
Bonjour,

Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.

Private Sub B_ok_Click()
Application.ScreenUpdating = False

Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value

If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus

End Sub

Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.

J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.

Si quelqu'un peut me donner un petit coup de main, merci d'avance.

Julie.






Avatar
JB
On affiche les infos du tableau dans le formulaire??

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub

JB



On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,

C'est parfait comme d'habitude.

Question annexe : peut-on détecter sur validation de la TextBox 1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il f aut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.

Julie




Bonjour,

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub

http://cjoint.com/?gmnCdBXWKZ

JB

On 12 juin, 13:12, JulieH wrote:
Bonjour,

Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la Text Box1
et recopier les données des différentes TextBox dans les cellules de droite.

Private Sub B_ok_Click()
Application.ScreenUpdating = False

Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWho le)
y = Me.TextBox1.Value

If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewL ine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus

End Sub

Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie d ans
les TextBox.

J'ai essayé un certain nombre de choses dont "Is x is nothin g", je n'y
arrive pas.

Si quelqu'un peut me donner un petit coup de main, merci d'avance.

Julie.- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Avatar
JulieH
Ce que tu proposes est vraiment très intéressant mais j'hésite un peu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?

Si je reviens à la première question (gestion du numéro qui n'existe
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le focus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.

Julie

On affiche les infos du tableau dans le formulaire??

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub

JB



On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,

C'est parfait comme d'habitude.

Question annexe : peut-on détecter sur validation de la TextBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.

Julie




Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -










Avatar
JB
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
If Application.CountA(Cells(x.Row, 2).Resize(1, 5)) > 0 Then
MsgBox "Données déjà saisies!"
Me.TextBox1 = ""
Cancel = True
End If
End If
End If
End Sub

http://cjoint.com/?gmpUXfJG7D

JB
On 12 juin, 15:31, JulieH wrote:
Ce que tu proposes est vraiment très intéressant mais j'hésite un p eu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?

Si je reviens à la première question (gestion du numéro qui n'existe
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le fo cus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.

Julie




On affiche les infos du tableau dans le formulaire??

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub

JB

On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,

C'est parfait comme d'habitude.

Question annexe : peut-on détecter sur validation de la Text Box1 si on
a déjà saisi des données pour cet animal. Le problème est qu'i l faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.

Julie




Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la Te xtBox1
et recopier les données des différentes TextBox dans les cellule s de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlW hole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNe wLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la validati on de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is noth ing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -





- Afficher le texte des messages précédents -






Avatar
JulieH
Impeccable pour les "données déjà saisies".

En revanche, j'ai toujours le problème du focus : Dans mon fichier, le
numéro saisi s'efface bien, mais la TextBox1 n'a pas la main, le
Userform non plus semble-t-il.

Pourtant cela fonctionne dans ton fichier joint. Y-a-t-il une propriété
particulière que je ne sais pas utiliser ?

Julie

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
If Application.CountA(Cells(x.Row, 2).Resize(1, 5)) > 0 Then
MsgBox "Données déjà saisies!"
Me.TextBox1 = ""
Cancel = True
End If
End If
End If
End Sub

http://cjoint.com/?gmpUXfJG7D

JB
On 12 juin, 15:31, JulieH wrote:
Ce que tu proposes est vraiment très intéressant mais j'hésite un peu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?

Si je reviens à la première question (gestion du numéro qui n'existe
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le focus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.

Julie




On affiche les infos du tableau dans le formulaire??
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub
JB
On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,
C'est parfait comme d'habitude.
Question annexe : peut-on détecter sur validation de la TextBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.
Julie
Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -












Avatar
JulieH
Suite,

En fait rien n'a la main car je ne peux même pas saisir dans la cellule
dans laquelle je me trouve.
En revanche, il suffit d'Echapp pour être dans la TextBox1.

Julie

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
If Application.CountA(Cells(x.Row, 2).Resize(1, 5)) > 0 Then
MsgBox "Données déjà saisies!"
Me.TextBox1 = ""
Cancel = True
End If
End If
End If
End Sub

http://cjoint.com/?gmpUXfJG7D

JB
On 12 juin, 15:31, JulieH wrote:
Ce que tu proposes est vraiment très intéressant mais j'hésite un peu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?

Si je reviens à la première question (gestion du numéro qui n'existe
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le focus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.

Julie




On affiche les infos du tableau dans le formulaire??
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub
JB
On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,
C'est parfait comme d'habitude.
Question annexe : peut-on détecter sur validation de la TextBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.
Julie
Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -












Avatar
JB
Dans l'exemple joint, le formulaire est Modal.
Le curseur est bien positionné sur textbox1

http://cjoint.com/?gmth7xOwF0.

JB
On 12 juin, 17:18, JulieH wrote:
Impeccable pour les "données déjà saisies".

En revanche, j'ai toujours le problème du focus : Dans mon fichier, le
numéro saisi s'efface bien, mais la TextBox1 n'a pas la main, le
Userform non plus semble-t-il.

Pourtant cela fonctionne dans ton fichier joint. Y-a-t-il une propriét é
particulière que je ne sais pas utiliser ?

Julie




Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
If Application.CountA(Cells(x.Row, 2).Resize(1, 5)) > 0 Then
MsgBox "Données déjà saisies!"
Me.TextBox1 = ""
Cancel = True
End If
End If
End If
End Sub

http://cjoint.com/?gmpUXfJG7D

JB
On 12 juin, 15:31, JulieH wrote:
Ce que tu proposes est vraiment très intéressant mais j'hésite u n peu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?

Si je reviens à la première question (gestion du numéro qui n'ex iste
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le focus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.

Julie




On affiche les infos du tableau dans le formulaire??
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub
JB
On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,
C'est parfait comme d'habitude.
Question annexe : peut-on détecter sur validation de la Te xtBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu 'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.
Julie
Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactemen t ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellu les de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=x lWhole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vb NewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la valida tion de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro , il
faut attendre la validation finale, c'est à dire après la sais ie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is no thing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -





- Afficher le texte des messages précédents -








Avatar
JulieH
En fait le mien est sur ShowModal = False.

Je l'ai mis sur True comme dans ton exemple. Cela ne me convient pas car
quand j'appelle le UserForm, je change aussi de Feuille :
Set x = [Feuil1].[A:A].Find(what....
Avec le Modal sur True, il apparaît mais il ne change pas de Feuille.

En revanche, j'ai fait des essais "manuels" et cela semble bien regler
le problème.

Julie


Dans l'exemple joint, le formulaire est Modal.
Le curseur est bien positionné sur textbox1

http://cjoint.com/?gmth7xOwF0.

JB
On 12 juin, 17:18, JulieH wrote:
Impeccable pour les "données déjà saisies".

En revanche, j'ai toujours le problème du focus : Dans mon fichier, le
numéro saisi s'efface bien, mais la TextBox1 n'a pas la main, le
Userform non plus semble-t-il.

Pourtant cela fonctionne dans ton fichier joint. Y-a-t-il une propriété
particulière que je ne sais pas utiliser ?

Julie




Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
If Application.CountA(Cells(x.Row, 2).Resize(1, 5)) > 0 Then
MsgBox "Données déjà saisies!"
Me.TextBox1 = ""
Cancel = True
End If
End If
End If
End Sub
http://cjoint.com/?gmpUXfJG7D
JB
On 12 juin, 15:31, JulieH wrote:
Ce que tu proposes est vraiment très intéressant mais j'hésite un peu à
le mettre en place. J'avais plutôt imaginé une MsgBox qui m'indique
qu'il y a déjà des valeurs saisies. Est-ce possible facilement ?
Si je reviens à la première question (gestion du numéro qui n'existe
pas), j'ai essayé de mettre en application. Tout se passe bien mais je
n'arrive pas à effacer les données de la TextBox1 et lui rendre le focus.
Me.TextBox1 = ""
Me.TextBox1.SetFocus
Ne fonctionnent pas dans ma Macro.
Julie
On affiche les infos du tableau dans le formulaire??
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
Else
For i = 2 To 6
Me("textbox" & i) = Cells(x.Row, i)
Next i
End If
End Sub
JB
On 12 juin, 14:15, JulieH wrote:
Bonjour et merci à nouveau,
C'est parfait comme d'habitude.
Question annexe : peut-on détecter sur validation de la TextBox1 si on
a déjà saisi des données pour cet animal. Le problème est qu'il faut
vérifier de la colonne B à F (dans ton exemple) car il n'y a pas
toujours d'informations en B.
Julie
Bonjour,
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Set x = [A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
If x Is Nothing Then
MsgBox "inconnu"
Cancel = True
End If
End Sub
http://cjoint.com/?gmnCdBXWKZ
JB
On 12 juin, 13:12, JulieH wrote:
Bonjour,
Le code suivant fourni par JB me permet de faire exactement ce que je
souhaite, à savoir : rechercher dans une "base" la valeur de la TextBox1
et recopier les données des différentes TextBox dans les cellules de droite.
Private Sub B_ok_Click()
Application.ScreenUpdating = False
Set x = [Feuil1].[A:A].Find(what:=Me.TextBox1, lookat:=xlWhole)
y = Me.TextBox1.Value
If Not x Is Nothing Then
For i = 2 To 5
If IsNumeric(Me("textbox" & i)) Then
Cells(x.Row, i + 2) = CDbl(Me("textbox" & i))
Else
Cells(x.Row, i + 2) = Me("textbox" & i)
End If
Me("textbox" & i) = ""
Next i
Me.TextBox1 = ""
Else
MsgBox "L'animal dont le numéro de tatouage est " & y & vbNewLine
& " n'existe pas dans l'élevage."
End If
Me.TextBox1.SetFocus
End Sub
Je voudrais savoir le plus tôt possible (dès la validation de la
TextBox1) si l'animal est présent dans la base. Or dans la Macro, il
faut attendre la validation finale, c'est à dire après la saisie dans
les TextBox.
J'ai essayé un certain nombre de choses dont "Is x is nothing", je n'y
arrive pas.
Si quelqu'un peut me donner un petit coup de main, merci d'avance.
Julie.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -