OVH Cloud OVH Cloud

Comparer 2 Zones de texte

22 réponses
Avatar
Philippe
Bonjour,

Est-il possible de comparer 2 zones de texte.
Voilà, j'entre une date dans une zone de texte et une autre date dans une
autre zone de texte.
J'aimerais donc pouvoir faire une comparaison pour voir si les délais ont
été respectés.

Illustration :
Date prévue : 12/06/05
Date réelle : 15/06/05
Et donc écrire dans une case le fait qu'il y a un retard à l'aide d'une
comparaison.

Merci,

Philippe

10 réponses

1 2 3
Avatar
Philippe
Bonjour,

Comment être plus expicite ?
Ai-je une erreur flagrante dans mon code qui pourrait être la cause du
non-fonctionnement ?
Lorsque je tape dans mes TextBox, les 2 dates 12/06/05 et 13/05/05, et que
j'ai mis en code dans une troisème TextBox le code ci-dessous et bien rien ne
se passe.

C'est déprimant. Je pourrais faire plus simple faire avec des cases Excel
mais l'esthétique ne serait plus le même.

Merci de m'orienter ou de faire rapidement un exemple qui marche sur la base
de mes explications,

Philippe


Ce n'est pas demain la veille que tu vas solutionner ton problème avec un tel commentaire !

| Et ça ne fonctionne pas!

Il est permis d'être plus explicite ....!


Salutations!




"Philippe" a écrit dans le message de news:


Private Sub OpenE_Change()
Dim A As Integer

With Worksheet("Avancement")
If IsDate(.OpenP) And IsDate(.OpenR) Then
A = CDate(.OpenP) - CDate(.OpenR)
Select Case A
Case Is < 0
OpenE.Value = "Retard"
Case Is = 0
OpenE.Value = "Jour J"
Case Is > 0
OpenE.Value = "En cours"
End Select
Else
MsgBox "Erreur de frappe !"
End If
End With
End Sub

Et ça ne fonctionne pas!

Aidez moi!!

Philippe


Bonjour Philippe,

Tu peux utiliser ceci en adapter les noms des textbox et de la feuille de calcul. Choisis l'événement que tu désires et appelle
cette macro que tu copieras dans un module standard :

'---------------------------------
Sub ComparerDate()

' TextBox1 = Date prévue : 12/06/05
'TextBox2 = Date réelle : 15/06/05

Dim A As Integer

With Worksheets("Feuil2")
If IsDate(.TextBox1) And IsDate(.TextBox2) Then
A = CDate(.TextBox1) - CDate(.TextBox2)
Select Case A
Case Is < 0
'Date prévue - Date réelle < 0
'qu'est-ce qui se passe ?

Case Is = 0
'Date prévue = Date réelle
'qu'est-ce qui se passe ?
Case Is > 0
'Date prévue - Date réelle > 0
'qu'est-ce qui se passe ?
End Select
Else
MsgBox "Au moins une des entrées est erronnée."
End If
End With

End Sub
'---------------------------------


Salutations!



"Philippe" a écrit dans le message de news:

Bonjour,

Certes, ce sont des zones de texte provenant de la boîte à Outils
"Commandes". Je les ai placées sur une feuille de calcul.
En espérant que cela soit plus clair.

Merci,

Philippe


Bonjour Philippe,

Si tu débutais par définir ce que tu entends par zone de texte : des textbox dans la feuille de calcul, sur un formulaire, des
zones
de texte issue de la barre de dessin ...


Salutations!


"Philippe" a écrit dans le message de news:

Bonjour,

Est-il possible de comparer 2 zones de texte.
Voilà, j'entre une date dans une zone de texte et une autre date dans une
autre zone de texte.
J'aimerais donc pouvoir faire une comparaison pour voir si les délais ont
été respectés.

Illustration :
Date prévue : 12/06/05
Date réelle : 15/06/05
Et donc écrire dans une case le fait qu'il y a un retard à l'aide d'une
comparaison.

Merci,

Philippe















Avatar
Daniel
Bonjour.
Avec l'évènement "WorkSheet_Change, le code se déclenche à chaque caractère
saisi et sort un message "Erreur de frappe". Utilise un bouton de commande
pour exécuter ton code lorsque tes deux dates sont entrées.
Cordialement.
Daniel
"Philippe" a écrit dans le message de
news:

Private Sub OpenE_Change()
Dim A As Integer

With Worksheet("Avancement")
If IsDate(.OpenP) And IsDate(.OpenR) Then
A = CDate(.OpenP) - CDate(.OpenR)
Select Case A
Case Is < 0
OpenE.Value = "Retard"
Case Is = 0
OpenE.Value = "Jour J"
Case Is > 0
OpenE.Value = "En cours"
End Select
Else
MsgBox "Erreur de frappe !"
End If
End With
End Sub

Et ça ne fonctionne pas!

Aidez moi!!

Philippe


Bonjour Philippe,

Tu peux utiliser ceci en adapter les noms des textbox et de la feuille de
calcul. Choisis l'événement que tu désires et appelle
cette macro que tu copieras dans un module standard :

'---------------------------------
Sub ComparerDate()

' TextBox1 = Date prévue : 12/06/05
'TextBox2 = Date réelle : 15/06/05

Dim A As Integer

With Worksheets("Feuil2")
If IsDate(.TextBox1) And IsDate(.TextBox2) Then
A = CDate(.TextBox1) - CDate(.TextBox2)
Select Case A
Case Is < 0
'Date prévue - Date réelle < 0
'qu'est-ce qui se passe ?

Case Is = 0
'Date prévue = Date réelle
'qu'est-ce qui se passe ?
Case Is > 0
'Date prévue - Date réelle > 0
'qu'est-ce qui se passe ?
End Select
Else
MsgBox "Au moins une des entrées est erronnée."
End If
End With

End Sub
'---------------------------------


Salutations!



"Philippe" a écrit dans le message
de news:

Bonjour,

Certes, ce sont des zones de texte provenant de la boîte à Outils
"Commandes". Je les ai placées sur une feuille de calcul.
En espérant que cela soit plus clair.

Merci,

Philippe


Bonjour Philippe,

Si tu débutais par définir ce que tu entends par zone de texte : des
textbox dans la feuille de calcul, sur un formulaire, des
zones
de texte issue de la barre de dessin ...


Salutations!


"Philippe" a écrit dans le message
de news:

Bonjour,

Est-il possible de comparer 2 zones de texte.
Voilà, j'entre une date dans une zone de texte et une autre date dans
une
autre zone de texte.
J'aimerais donc pouvoir faire une comparaison pour voir si les délais
ont
été respectés.

Illustration :
Date prévue : 12/06/05
Date réelle : 15/06/05
Et donc écrire dans une case le fait qu'il y a un retard à l'aide d'une
comparaison.

Merci,

Philippe












Avatar
Philippe
Bonjour Daniel,

J'aimerais éviter les manipulations et donc le fait d'avoir un bouton
n'automatise pas tellement mon outil.
Il n'est pas possible d'écrire dans 2 TexBox et avoir une conclusion dans un
troisième TexBox ?

Merci,

Philippe


Bonjour.
Avec l'évènement "WorkSheet_Change, le code se déclenche à chaque caractère
saisi et sort un message "Erreur de frappe". Utilise un bouton de commande
pour exécuter ton code lorsque tes deux dates sont entrées.
Cordialement.
Daniel
"Philippe" a écrit dans le message de
news:

Private Sub OpenE_Change()
Dim A As Integer

With Worksheet("Avancement")
If IsDate(.OpenP) And IsDate(.OpenR) Then
A = CDate(.OpenP) - CDate(.OpenR)
Select Case A
Case Is < 0
OpenE.Value = "Retard"
Case Is = 0
OpenE.Value = "Jour J"
Case Is > 0
OpenE.Value = "En cours"
End Select
Else
MsgBox "Erreur de frappe !"
End If
End With
End Sub

Et ça ne fonctionne pas!

Aidez moi!!

Philippe


Bonjour Philippe,

Tu peux utiliser ceci en adapter les noms des textbox et de la feuille de
calcul. Choisis l'événement que tu désires et appelle
cette macro que tu copieras dans un module standard :

'---------------------------------
Sub ComparerDate()

' TextBox1 = Date prévue : 12/06/05
'TextBox2 = Date réelle : 15/06/05

Dim A As Integer

With Worksheets("Feuil2")
If IsDate(.TextBox1) And IsDate(.TextBox2) Then
A = CDate(.TextBox1) - CDate(.TextBox2)
Select Case A
Case Is < 0
'Date prévue - Date réelle < 0
'qu'est-ce qui se passe ?

Case Is = 0
'Date prévue = Date réelle
'qu'est-ce qui se passe ?
Case Is > 0
'Date prévue - Date réelle > 0
'qu'est-ce qui se passe ?
End Select
Else
MsgBox "Au moins une des entrées est erronnée."
End If
End With

End Sub
'---------------------------------


Salutations!



"Philippe" a écrit dans le message
de news:

Bonjour,

Certes, ce sont des zones de texte provenant de la boîte à Outils
"Commandes". Je les ai placées sur une feuille de calcul.
En espérant que cela soit plus clair.

Merci,

Philippe


Bonjour Philippe,

Si tu débutais par définir ce que tu entends par zone de texte : des
textbox dans la feuille de calcul, sur un formulaire, des
zones
de texte issue de la barre de dessin ...


Salutations!


"Philippe" a écrit dans le message
de news:

Bonjour,

Est-il possible de comparer 2 zones de texte.
Voilà, j'entre une date dans une zone de texte et une autre date dans
une
autre zone de texte.
J'aimerais donc pouvoir faire une comparaison pour voir si les délais
ont
été respectés.

Illustration :
Date prévue : 12/06/05
Date réelle : 15/06/05
Et donc écrire dans une case le fait qu'il y a un retard à l'aide d'une
comparaison.

Merci,

Philippe

















Avatar
Daniel
Alors, remplace :

MsgBox "Erreur de frappe !"

par :

If Len(OpenE.Value) > 10 Then
MsgBox "Erreur de frappe !"
End If

Il faut également gérer l'évènement "Lost Focus" au cas ou l'utilisateur
arrête la saisie avant d'avoir saisi une date.
Daniel

"Philippe" a écrit dans le message de
news:
Bonjour Daniel,

J'aimerais éviter les manipulations et donc le fait d'avoir un bouton
n'automatise pas tellement mon outil.
Il n'est pas possible d'écrire dans 2 TexBox et avoir une conclusion dans
un
troisième TexBox ?

Merci,

Philippe


Avatar
michdenis
Bonjour Philippe,

| Merci de m'orienter ou de faire rapidement un exemple qui marche sur la base
| de mes explications,

Ce n'est pas la macro qui en est la cause mais la façon de l'appeler. Quel est l'événement du textbox ou d'un bouton de commande le
mieux approprié pour lancer la macro, cela dépend de tes besoins et comment est conçu l'ensemble de ton formulaire.

À quel moment as-tu vraiment besoin que la comparaison se fasse ? Tu n'as pas un bouton de commande qui active une ou des actions
sur ton formulaire ? Pourquoi ne pas l'intégrer au processus ? IL m'est difficile de choisir pour toi le moment opportun !


Salutations!



"Philippe" a écrit dans le message de news:

Bonjour,

Comment être plus expicite ?
Ai-je une erreur flagrante dans mon code qui pourrait être la cause du
non-fonctionnement ?
Lorsque je tape dans mes TextBox, les 2 dates 12/06/05 et 13/05/05, et que
j'ai mis en code dans une troisème TextBox le code ci-dessous et bien rien ne
se passe.

C'est déprimant. Je pourrais faire plus simple faire avec des cases Excel
mais l'esthétique ne serait plus le même.

Merci de m'orienter ou de faire rapidement un exemple qui marche sur la base
de mes explications,

Philippe


Ce n'est pas demain la veille que tu vas solutionner ton problème avec un tel commentaire !

| Et ça ne fonctionne pas!

Il est permis d'être plus explicite ....!


Salutations!




"Philippe" a écrit dans le message de news:


Private Sub OpenE_Change()
Dim A As Integer

With Worksheet("Avancement")
If IsDate(.OpenP) And IsDate(.OpenR) Then
A = CDate(.OpenP) - CDate(.OpenR)
Select Case A
Case Is < 0
OpenE.Value = "Retard"
Case Is = 0
OpenE.Value = "Jour J"
Case Is > 0
OpenE.Value = "En cours"
End Select
Else
MsgBox "Erreur de frappe !"
End If
End With
End Sub

Et ça ne fonctionne pas!

Aidez moi!!

Philippe


Bonjour Philippe,

Tu peux utiliser ceci en adapter les noms des textbox et de la feuille de calcul. Choisis l'événement que tu désires et appelle
cette macro que tu copieras dans un module standard :

'---------------------------------
Sub ComparerDate()

' TextBox1 = Date prévue : 12/06/05
'TextBox2 = Date réelle : 15/06/05

Dim A As Integer

With Worksheets("Feuil2")
If IsDate(.TextBox1) And IsDate(.TextBox2) Then
A = CDate(.TextBox1) - CDate(.TextBox2)
Select Case A
Case Is < 0
'Date prévue - Date réelle < 0
'qu'est-ce qui se passe ?

Case Is = 0
'Date prévue = Date réelle
'qu'est-ce qui se passe ?
Case Is > 0
'Date prévue - Date réelle > 0
'qu'est-ce qui se passe ?
End Select
Else
MsgBox "Au moins une des entrées est erronnée."
End If
End With

End Sub
'---------------------------------


Salutations!



"Philippe" a écrit dans le message de news:

Bonjour,

Certes, ce sont des zones de texte provenant de la boîte à Outils
"Commandes". Je les ai placées sur une feuille de calcul.
En espérant que cela soit plus clair.

Merci,

Philippe


Bonjour Philippe,

Si tu débutais par définir ce que tu entends par zone de texte : des textbox dans la feuille de calcul, sur un formulaire, des
zones
de texte issue de la barre de dessin ...


Salutations!


"Philippe" a écrit dans le message de news:

Bonjour,

Est-il possible de comparer 2 zones de texte.
Voilà, j'entre une date dans une zone de texte et une autre date dans une
autre zone de texte.
J'aimerais donc pouvoir faire une comparaison pour voir si les délais ont
été respectés.

Illustration :
Date prévue : 12/06/05
Date réelle : 15/06/05
Et donc écrire dans une case le fait qu'il y a un retard à l'aide d'une
comparaison.

Merci,

Philippe















Avatar
Philippe
Ok, mais déjà je n'arrive pas à faire fonctionner mon code pour comparer deux
TextBox.
Peux-tu créer un exemple avec 3 TextBox, 2 où tu rentres des dates et la
troisième qui renseigne si il y a du retard ou pas.

Merci, cela m'aiderait vraiment,

Philippe


Alors, remplace :

MsgBox "Erreur de frappe !"

par :

If Len(OpenE.Value) > 10 Then
MsgBox "Erreur de frappe !"
End If

Il faut également gérer l'évènement "Lost Focus" au cas ou l'utilisateur
arrête la saisie avant d'avoir saisi une date.
Daniel

"Philippe" a écrit dans le message de
news:
Bonjour Daniel,

J'aimerais éviter les manipulations et donc le fait d'avoir un bouton
n'automatise pas tellement mon outil.
Il n'est pas possible d'écrire dans 2 TexBox et avoir une conclusion dans
un
troisième TexBox ?

Merci,

Philippe







Avatar
Daniel
Regarde le classeur :
http://cjoint.com/?jboZuDnR7V
Daniel
"Philippe" a écrit dans le message de
news:
Ok, mais déjà je n'arrive pas à faire fonctionner mon code pour comparer
deux
TextBox.
Peux-tu créer un exemple avec 3 TextBox, 2 où tu rentres des dates et la
troisième qui renseigne si il y a du retard ou pas.

Merci, cela m'aiderait vraiment,

Philippe


Alors, remplace :

MsgBox "Erreur de frappe !"

par :

If Len(OpenE.Value) > 10 Then
MsgBox "Erreur de frappe !"
End If

Il faut également gérer l'évènement "Lost Focus" au cas ou l'utilisateur
arrête la saisie avant d'avoir saisi une date.
Daniel

"Philippe" a écrit dans le message
de
news:
Bonjour Daniel,

J'aimerais éviter les manipulations et donc le fait d'avoir un bouton
n'automatise pas tellement mon outil.
Il n'est pas possible d'écrire dans 2 TexBox et avoir une conclusion
dans
un
troisième TexBox ?

Merci,

Philippe









Avatar
Philippe
C'est terrible ça!!

Mais y'a un hic. Quand je change la date de la TextBox2 rien ne se passe.
C'est bizarre, j'ai l'impression qu'il faut obligatoirement toucher les 2
TextBox pour qu'il y ait un changement. Est-ce normal ?

Philippe


Regarde le classeur :
http://cjoint.com/?jboZuDnR7V
Daniel
"Philippe" a écrit dans le message de
news:
Ok, mais déjà je n'arrive pas à faire fonctionner mon code pour comparer
deux
TextBox.
Peux-tu créer un exemple avec 3 TextBox, 2 où tu rentres des dates et la
troisième qui renseigne si il y a du retard ou pas.

Merci, cela m'aiderait vraiment,

Philippe


Alors, remplace :

MsgBox "Erreur de frappe !"

par :

If Len(OpenE.Value) > 10 Then
MsgBox "Erreur de frappe !"
End If

Il faut également gérer l'évènement "Lost Focus" au cas ou l'utilisateur
arrête la saisie avant d'avoir saisi une date.
Daniel

"Philippe" a écrit dans le message
de
news:
Bonjour Daniel,

J'aimerais éviter les manipulations et donc le fait d'avoir un bouton
n'automatise pas tellement mon outil.
Il n'est pas possible d'écrire dans 2 TexBox et avoir une conclusion
dans
un
troisième TexBox ?

Merci,

Philippe














Avatar
Daniel
Essaie le classeur suivant :
http://cjoint.com/?jbxDhLvVQw
Daniel
"Philippe" a écrit dans le message de
news:
C'est terrible ça!!

Mais y'a un hic. Quand je change la date de la TextBox2 rien ne se passe.
C'est bizarre, j'ai l'impression qu'il faut obligatoirement toucher les 2
TextBox pour qu'il y ait un changement. Est-ce normal ?

Philippe


Avatar
Philippe
C'est parfait, merci beaucoup!

Philippe


Essaie le classeur suivant :
http://cjoint.com/?jbxDhLvVQw
Daniel
"Philippe" a écrit dans le message de
news:
C'est terrible ça!!

Mais y'a un hic. Quand je change la date de la TextBox2 rien ne se passe.
C'est bizarre, j'ai l'impression qu'il faut obligatoirement toucher les 2
TextBox pour qu'il y ait un changement. Est-ce normal ?

Philippe







1 2 3