Code pour selectionner/formater les valeurs identiques dans un etat ? METHODE CIRCLE AIDEZ MOI SVP
1 réponse
valere1966
Bonjour
Et =E0 nouveau merci =E0 Michel D...
Dans mes precedents messages, je voulais mettre en evidence (en rouge)
les valeurs communes dans mon etat, =E0 savoir un etat qui liste les
tirages du loto, et dans lequel je souhaitais afficher les numeros qui
ressortent d'un tirage sur l'autre, en rouge.
La mission est accomplie grace =E0 l'aide precieuse de 3Stone et Michel
D.
Grace =E0 leur code, j'ai meme chang=E9 backcolor en fontcolor pour
obtenir un etat dans lequel les numeros concernes apparaissent en
rouge (et les autres restent en noir).
Maintenant, je souhaiterais faire la meme chose avec la methode
Circle, c'est =E0 dire entourer les donnees concernees d'un ovale (au
lieu des les afficher en rouge).
J'utilise la methode circle dans d'autres etats, mais je n'arrive pas
=E0 l'appliquer dans le cas present.
En effet, j'ai incorpore le code de 3Stone et Michel D afin de pouvoir
utiliser la chaine qui selectionne les numeros qui ressortent.Ceux ci
apparaissent bien en rouge (j'ai change backcolor en fontcolor pour
plus d'esthetisme) mais la methode Circle ne s'applique pas et je
n'arrive pas =E0 trouver l'erreur :
Private Sub D=E9tail_Print(Cancel As Integer, PrintCount As Integer)
' Dessiner une ellipse autour des contr=F4les qui rencontrent le crit=E8re
sp=E9cifi=E9.
Dim rouge as string
Dim noir as string
Dim ctl As Control
Dim entCercle As Integer
Dim sngAspect As Single, sngYOffset As Single
Dim entHauteur As Integer, entLargeur As Integer
Dim sngXCoord As Single, sngYCoord As Single
Dim entI As Integer
' Pour produire l'ellipse d=E9sir=E9e, affecter sngAspect et sngOffset
' en fonction de la taille et de la position des zones de texte
' dans le sous-=E9tat.
sngAspect =3D 0.25
sngYOffset =3D 3
' D=E9terminer la hauteur et la largeur de l'ellipse.
entHauteur =3D Me![N1].Height * 1.2
entLargeur =3D Me![N1].Width * 1.5
sngYCoord =3D (Me![N1].Top + Me![txtCombinaisons].Height) \ 2 +
sngYOffset
' Recherche les contr=F4les qui peuvent =EAtre cercl=E9s.
C EST ICI QUE CA COINCE
COMMENT FAIRE EN SORTE QUE SEULS LES NUMEROS CONCERNES SOIENT ENTOURES
D UN OVALE ?
For entI =3D 1 To 5
Set ctl =3D Me("N" & entI)
If Not IsNull(ctl) Then
entCercle =3D (ctl =3D sloto >=3D 0)
' D=E9terminer les coordonn=E9es de ctl et dessiner les
ellipses.
If entCercle Then
sngXCoord =3D ctl.Left + (ctl.Width \ 2)
Me.Circle (sngXCoord, sngYCoord), entLargeur \
2, , , , sngAspect
End If
End If
Next entI
'Affiche une ligne sur deux en couleur (gris clair)
'afin d'am=E9liorer la lisibilit=E9...
If Me.D=E9tail.BackColor =3D vbWhite Then
Me.D=E9tail.BackColor =3D RGB(230, 230, 230)
Else
Me.D=E9tail.BackColor =3D vbWhite
End If
Alors comment faire ?
Faut il carrement ecrire une procedure qui utilise la methode circle,
et si oui, comment, en utilisant quel critere pour que les donnees
concernees soient entourees dans les cinq colonnes ?
Dans mes autres etats le critere est simple comme par exemple me!
Numero > 10
mais ici le critere c'est "les numeros qui ressortent d'un tirage sur
l'autre" ...
De plus d'ordinaire, pas besoin de changer la couleur des numeros pour
pouvoir appliquer la methode circle ...
J'AIMERAIS SAVOIR COMMENT UTILISER LA METHODE CIRCLE SIMPLEMENT DANS
LE CAS PRESENT SANS SE SOUCIER DE LA COULEUR
MAIS AUSSI FAIRE FONCTIONNER LE CODE CI DESSUS POUR POUVOIR AFFICHER
LES DONNEES EN ROUGE ET LES ENTOURER C'EST A DIRE REALISER LES DEUX
ACTIONS EN UNE.
OU FAUT IL UTILISER LA METHODE DE 3STONE ET MICHEL D, C'EST A DIRE
METTRE LES NUMEROS DANS UN AUTRE FORMAT (EN ROUGE) POUR POUVOIR
APPLIQUER LA METHODE CIRCLE ?
Ou faut il utiliser la methode de 3Stone et Michel D, c'est =E0 dire
mettre les numeros dans un autre format (en rouge) pour pouvoir
appliquer la methode Circle ?
Je m'en remets =E0 nouveau =E0 vous et vous demande votre aide en esperant
ne pas en abuser.
Et donc cela ne devrait pas être trop difficile d'adapter cette façon de procéder pour ta nouvelle demande.
Option Compare Database Option Explicit
Dim sLoto As String Const Rouge As Long = 255 Const Blanc As Long = 16777215
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer) Dim Couleur As Long ' définir couleur de fond Couleur = Blanc If InStr(1, sLoto, " " & N1 & " ") > 0 Then DessineCercle N1, 133 Couleur = Rouge End If Me!N1.BackColor = Couleur Couleur = Blanc If InStr(1, sLoto, " " & N2 & " ") > 0 Then DessineCercle N2, 133 Couleur = Rouge End If Me!N2.BackColor = Couleur
Private Sub Report_Open(Cancel As Integer) sLoto = "" End Sub
Sub DessineCercle(oBjet As Control, Rayon As Single) Dim iX As Single, iY As Single iX = oBjet.Left + oBjet.Width - (Rayon / 2) - 15 iY = oBjet.Top + (oBjet.Height / 2) - 9 Me.Circle (iX, iY), Rayon End Sub
a écrit dans le message de news: Bonjour
Et à nouveau merci à Michel D... Dans mes precedents messages, je voulais mettre en evidence (en rouge) les valeurs communes dans mon etat, à savoir un etat qui liste les tirages du loto, et dans lequel je souhaitais afficher les numeros qui ressortent d'un tirage sur l'autre, en rouge. La mission est accomplie grace à l'aide precieuse de 3Stone et Michel D. Grace à leur code, j'ai meme changé backcolor en fontcolor pour obtenir un etat dans lequel les numeros concernes apparaissent en rouge (et les autres restent en noir).
Maintenant, je souhaiterais faire la meme chose avec la methode Circle, c'est à dire entourer les donnees concernees d'un ovale (au lieu des les afficher en rouge). J'utilise la methode circle dans d'autres etats, mais je n'arrive pas à l'appliquer dans le cas present. En effet, j'ai incorpore le code de 3Stone et Michel D afin de pouvoir utiliser la chaine qui selectionne les numeros qui ressortent.Ceux ci apparaissent bien en rouge (j'ai change backcolor en fontcolor pour plus d'esthetisme) mais la methode Circle ne s'applique pas et je n'arrive pas à trouver l'erreur :
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
' Dessiner une ellipse autour des contrôles qui rencontrent le critère spécifié. Dim rouge as string Dim noir as string Dim ctl As Control
Dim entCercle As Integer Dim sngAspect As Single, sngYOffset As Single Dim entHauteur As Integer, entLargeur As Integer Dim sngXCoord As Single, sngYCoord As Single Dim entI As Integer
' Pour produire l'ellipse désirée, affecter sngAspect et sngOffset ' en fonction de la taille et de la position des zones de texte ' dans le sous-état. sngAspect = 0.25 sngYOffset = 3
' Déterminer la hauteur et la largeur de l'ellipse. entHauteur = Me![N1].Height * 1.2 entLargeur = Me![N1].Width * 1.5 sngYCoord = (Me![N1].Top + Me![txtCombinaisons].Height) 2 + sngYOffset
' Recherche les contrôles qui peuvent être cerclés. C EST ICI QUE CA COINCE COMMENT FAIRE EN SORTE QUE SEULS LES NUMEROS CONCERNES SOIENT ENTOURES D UN OVALE ?
For entI = 1 To 5 Set ctl = Me("N" & entI)
If Not IsNull(ctl) Then entCercle = (ctl = sloto >= 0)
' Déterminer les coordonnées de ctl et dessiner les ellipses. If entCercle Then sngXCoord = ctl.Left + (ctl.Width 2) Me.Circle (sngXCoord, sngYCoord), entLargeur 2, , , , sngAspect End If End If Next entI
'Affiche une ligne sur deux en couleur (gris clair) 'afin d'améliorer la lisibilité...
If Me.Détail.BackColor = vbWhite Then Me.Détail.BackColor = RGB(230, 230, 230) Else Me.Détail.BackColor = vbWhite End If
Alors comment faire ? Faut il carrement ecrire une procedure qui utilise la methode circle, et si oui, comment, en utilisant quel critere pour que les donnees concernees soient entourees dans les cinq colonnes ? Dans mes autres etats le critere est simple comme par exemple me! Numero > 10 mais ici le critere c'est "les numeros qui ressortent d'un tirage sur l'autre" ... De plus d'ordinaire, pas besoin de changer la couleur des numeros pour pouvoir appliquer la methode circle ...
J'AIMERAIS SAVOIR COMMENT UTILISER LA METHODE CIRCLE SIMPLEMENT DANS LE CAS PRESENT SANS SE SOUCIER DE LA COULEUR MAIS AUSSI FAIRE FONCTIONNER LE CODE CI DESSUS POUR POUVOIR AFFICHER LES DONNEES EN ROUGE ET LES ENTOURER C'EST A DIRE REALISER LES DEUX ACTIONS EN UNE.
OU FAUT IL UTILISER LA METHODE DE 3STONE ET MICHEL D, C'EST A DIRE METTRE LES NUMEROS DANS UN AUTRE FORMAT (EN ROUGE) POUR POUVOIR APPLIQUER LA METHODE CIRCLE ?
Ou faut il utiliser la methode de 3Stone et Michel D, c'est à dire mettre les numeros dans un autre format (en rouge) pour pouvoir appliquer la methode Circle ?
Je m'en remets à nouveau à vous et vous demande votre aide en esperant ne pas en abuser.
Cordialement
Bonjour,
Je t'ai répondu sur ton post du 28/10/2008 à 00:43
Je redonne ma réponse.
Pour ta demande initiale tu aurais pu utiliser cette façon de faire :
Et donc cela ne devrait pas être trop difficile d'adapter cette façon de
procéder pour ta nouvelle demande.
Option Compare Database
Option Explicit
Dim sLoto As String
Const Rouge As Long = 255
Const Blanc As Long = 16777215
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
Dim Couleur As Long
' définir couleur de fond
Couleur = Blanc
If InStr(1, sLoto, " " & N1 & " ") > 0 Then
DessineCercle N1, 133
Couleur = Rouge
End If
Me!N1.BackColor = Couleur
Couleur = Blanc
If InStr(1, sLoto, " " & N2 & " ") > 0 Then
DessineCercle N2, 133
Couleur = Rouge
End If
Me!N2.BackColor = Couleur
Private Sub Report_Open(Cancel As Integer)
sLoto = ""
End Sub
Sub DessineCercle(oBjet As Control, Rayon As Single)
Dim iX As Single, iY As Single
iX = oBjet.Left + oBjet.Width - (Rayon / 2) - 15
iY = oBjet.Top + (oBjet.Height / 2) - 9
Me.Circle (iX, iY), Rayon
End Sub
<valere1966@yahoo.fr> a écrit dans le message de news:7e9817ec-5bbd-4fb8-8fa2-c15c5fcf4d86@k30g2000hse.googlegroups.com...
Bonjour
Et à nouveau merci à Michel D...
Dans mes precedents messages, je voulais mettre en evidence (en rouge)
les valeurs communes dans mon etat, à savoir un etat qui liste les
tirages du loto, et dans lequel je souhaitais afficher les numeros qui
ressortent d'un tirage sur l'autre, en rouge.
La mission est accomplie grace à l'aide precieuse de 3Stone et Michel
D.
Grace à leur code, j'ai meme changé backcolor en fontcolor pour
obtenir un etat dans lequel les numeros concernes apparaissent en
rouge (et les autres restent en noir).
Maintenant, je souhaiterais faire la meme chose avec la methode
Circle, c'est à dire entourer les donnees concernees d'un ovale (au
lieu des les afficher en rouge).
J'utilise la methode circle dans d'autres etats, mais je n'arrive pas
à l'appliquer dans le cas present.
En effet, j'ai incorpore le code de 3Stone et Michel D afin de pouvoir
utiliser la chaine qui selectionne les numeros qui ressortent.Ceux ci
apparaissent bien en rouge (j'ai change backcolor en fontcolor pour
plus d'esthetisme) mais la methode Circle ne s'applique pas et je
n'arrive pas à trouver l'erreur :
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
' Dessiner une ellipse autour des contrôles qui rencontrent le critère
spécifié.
Dim rouge as string
Dim noir as string
Dim ctl As Control
Dim entCercle As Integer
Dim sngAspect As Single, sngYOffset As Single
Dim entHauteur As Integer, entLargeur As Integer
Dim sngXCoord As Single, sngYCoord As Single
Dim entI As Integer
' Pour produire l'ellipse désirée, affecter sngAspect et sngOffset
' en fonction de la taille et de la position des zones de texte
' dans le sous-état.
sngAspect = 0.25
sngYOffset = 3
' Déterminer la hauteur et la largeur de l'ellipse.
entHauteur = Me![N1].Height * 1.2
entLargeur = Me![N1].Width * 1.5
sngYCoord = (Me![N1].Top + Me![txtCombinaisons].Height) 2 +
sngYOffset
' Recherche les contrôles qui peuvent être cerclés.
C EST ICI QUE CA COINCE
COMMENT FAIRE EN SORTE QUE SEULS LES NUMEROS CONCERNES SOIENT ENTOURES
D UN OVALE ?
For entI = 1 To 5
Set ctl = Me("N" & entI)
If Not IsNull(ctl) Then
entCercle = (ctl = sloto >= 0)
' Déterminer les coordonnées de ctl et dessiner les
ellipses.
If entCercle Then
sngXCoord = ctl.Left + (ctl.Width 2)
Me.Circle (sngXCoord, sngYCoord), entLargeur
2, , , , sngAspect
End If
End If
Next entI
'Affiche une ligne sur deux en couleur (gris clair)
'afin d'améliorer la lisibilité...
If Me.Détail.BackColor = vbWhite Then
Me.Détail.BackColor = RGB(230, 230, 230)
Else
Me.Détail.BackColor = vbWhite
End If
Alors comment faire ?
Faut il carrement ecrire une procedure qui utilise la methode circle,
et si oui, comment, en utilisant quel critere pour que les donnees
concernees soient entourees dans les cinq colonnes ?
Dans mes autres etats le critere est simple comme par exemple me!
Numero > 10
mais ici le critere c'est "les numeros qui ressortent d'un tirage sur
l'autre" ...
De plus d'ordinaire, pas besoin de changer la couleur des numeros pour
pouvoir appliquer la methode circle ...
J'AIMERAIS SAVOIR COMMENT UTILISER LA METHODE CIRCLE SIMPLEMENT DANS
LE CAS PRESENT SANS SE SOUCIER DE LA COULEUR
MAIS AUSSI FAIRE FONCTIONNER LE CODE CI DESSUS POUR POUVOIR AFFICHER
LES DONNEES EN ROUGE ET LES ENTOURER C'EST A DIRE REALISER LES DEUX
ACTIONS EN UNE.
OU FAUT IL UTILISER LA METHODE DE 3STONE ET MICHEL D, C'EST A DIRE
METTRE LES NUMEROS DANS UN AUTRE FORMAT (EN ROUGE) POUR POUVOIR
APPLIQUER LA METHODE CIRCLE ?
Ou faut il utiliser la methode de 3Stone et Michel D, c'est à dire
mettre les numeros dans un autre format (en rouge) pour pouvoir
appliquer la methode Circle ?
Je m'en remets à nouveau à vous et vous demande votre aide en esperant
ne pas en abuser.
Et donc cela ne devrait pas être trop difficile d'adapter cette façon de procéder pour ta nouvelle demande.
Option Compare Database Option Explicit
Dim sLoto As String Const Rouge As Long = 255 Const Blanc As Long = 16777215
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer) Dim Couleur As Long ' définir couleur de fond Couleur = Blanc If InStr(1, sLoto, " " & N1 & " ") > 0 Then DessineCercle N1, 133 Couleur = Rouge End If Me!N1.BackColor = Couleur Couleur = Blanc If InStr(1, sLoto, " " & N2 & " ") > 0 Then DessineCercle N2, 133 Couleur = Rouge End If Me!N2.BackColor = Couleur
Private Sub Report_Open(Cancel As Integer) sLoto = "" End Sub
Sub DessineCercle(oBjet As Control, Rayon As Single) Dim iX As Single, iY As Single iX = oBjet.Left + oBjet.Width - (Rayon / 2) - 15 iY = oBjet.Top + (oBjet.Height / 2) - 9 Me.Circle (iX, iY), Rayon End Sub
a écrit dans le message de news: Bonjour
Et à nouveau merci à Michel D... Dans mes precedents messages, je voulais mettre en evidence (en rouge) les valeurs communes dans mon etat, à savoir un etat qui liste les tirages du loto, et dans lequel je souhaitais afficher les numeros qui ressortent d'un tirage sur l'autre, en rouge. La mission est accomplie grace à l'aide precieuse de 3Stone et Michel D. Grace à leur code, j'ai meme changé backcolor en fontcolor pour obtenir un etat dans lequel les numeros concernes apparaissent en rouge (et les autres restent en noir).
Maintenant, je souhaiterais faire la meme chose avec la methode Circle, c'est à dire entourer les donnees concernees d'un ovale (au lieu des les afficher en rouge). J'utilise la methode circle dans d'autres etats, mais je n'arrive pas à l'appliquer dans le cas present. En effet, j'ai incorpore le code de 3Stone et Michel D afin de pouvoir utiliser la chaine qui selectionne les numeros qui ressortent.Ceux ci apparaissent bien en rouge (j'ai change backcolor en fontcolor pour plus d'esthetisme) mais la methode Circle ne s'applique pas et je n'arrive pas à trouver l'erreur :
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
' Dessiner une ellipse autour des contrôles qui rencontrent le critère spécifié. Dim rouge as string Dim noir as string Dim ctl As Control
Dim entCercle As Integer Dim sngAspect As Single, sngYOffset As Single Dim entHauteur As Integer, entLargeur As Integer Dim sngXCoord As Single, sngYCoord As Single Dim entI As Integer
' Pour produire l'ellipse désirée, affecter sngAspect et sngOffset ' en fonction de la taille et de la position des zones de texte ' dans le sous-état. sngAspect = 0.25 sngYOffset = 3
' Déterminer la hauteur et la largeur de l'ellipse. entHauteur = Me![N1].Height * 1.2 entLargeur = Me![N1].Width * 1.5 sngYCoord = (Me![N1].Top + Me![txtCombinaisons].Height) 2 + sngYOffset
' Recherche les contrôles qui peuvent être cerclés. C EST ICI QUE CA COINCE COMMENT FAIRE EN SORTE QUE SEULS LES NUMEROS CONCERNES SOIENT ENTOURES D UN OVALE ?
For entI = 1 To 5 Set ctl = Me("N" & entI)
If Not IsNull(ctl) Then entCercle = (ctl = sloto >= 0)
' Déterminer les coordonnées de ctl et dessiner les ellipses. If entCercle Then sngXCoord = ctl.Left + (ctl.Width 2) Me.Circle (sngXCoord, sngYCoord), entLargeur 2, , , , sngAspect End If End If Next entI
'Affiche une ligne sur deux en couleur (gris clair) 'afin d'améliorer la lisibilité...
If Me.Détail.BackColor = vbWhite Then Me.Détail.BackColor = RGB(230, 230, 230) Else Me.Détail.BackColor = vbWhite End If
Alors comment faire ? Faut il carrement ecrire une procedure qui utilise la methode circle, et si oui, comment, en utilisant quel critere pour que les donnees concernees soient entourees dans les cinq colonnes ? Dans mes autres etats le critere est simple comme par exemple me! Numero > 10 mais ici le critere c'est "les numeros qui ressortent d'un tirage sur l'autre" ... De plus d'ordinaire, pas besoin de changer la couleur des numeros pour pouvoir appliquer la methode circle ...
J'AIMERAIS SAVOIR COMMENT UTILISER LA METHODE CIRCLE SIMPLEMENT DANS LE CAS PRESENT SANS SE SOUCIER DE LA COULEUR MAIS AUSSI FAIRE FONCTIONNER LE CODE CI DESSUS POUR POUVOIR AFFICHER LES DONNEES EN ROUGE ET LES ENTOURER C'EST A DIRE REALISER LES DEUX ACTIONS EN UNE.
OU FAUT IL UTILISER LA METHODE DE 3STONE ET MICHEL D, C'EST A DIRE METTRE LES NUMEROS DANS UN AUTRE FORMAT (EN ROUGE) POUR POUVOIR APPLIQUER LA METHODE CIRCLE ?
Ou faut il utiliser la methode de 3Stone et Michel D, c'est à dire mettre les numeros dans un autre format (en rouge) pour pouvoir appliquer la methode Circle ?
Je m'en remets à nouveau à vous et vous demande votre aide en esperant ne pas en abuser.