Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Bonjour/soir,
Pourrais-tu essayer de reformuler le problème plus clairement ou de manière différente? Peut-être que plus de personnes comprendraient... Personellement, frmAffichage.(lblActDec(intAnAct).Caption) frmAffichage.(lblActDec(intAnAct).Caption) + Str (dblMontant) me déplait autant (si pas plus) qu'au compilateur... Pourquoi des parenthèses autour d'une propriété (lblActDec) d'un contrôle(frmAffichage)? Mis à part ça, le + Str me déplait dans la mesure ou Str() est une chaine et donc, la concaténation devrait se faire par &.
"nounours" a écrit dans le message de news:034801c3cd67$bebeb280$
Bonjour,
Quelcun peut-il répondre à mon prob posté le 19.12. sous le titre "VBA"? Ce serait sympa.
Merci d'avance
Bonjour/soir,
Pourrais-tu essayer de reformuler le problème plus clairement ou de manière
différente?
Peut-être que plus de personnes comprendraient...
Personellement,
frmAffichage.(lblActDec(intAnAct).Caption) frmAffichage.(lblActDec(intAnAct).Caption) + Str
(dblMontant)
me déplait autant (si pas plus) qu'au compilateur...
Pourquoi des parenthèses autour d'une propriété (lblActDec) d'un
contrôle(frmAffichage)?
Mis à part ça, le + Str me déplait dans la mesure ou Str() est une chaine et
donc, la concaténation devrait se faire par &.
Pourrais-tu essayer de reformuler le problème plus clairement ou de manière différente? Peut-être que plus de personnes comprendraient... Personellement, frmAffichage.(lblActDec(intAnAct).Caption) frmAffichage.(lblActDec(intAnAct).Caption) + Str (dblMontant) me déplait autant (si pas plus) qu'au compilateur... Pourquoi des parenthèses autour d'une propriété (lblActDec) d'un contrôle(frmAffichage)? Mis à part ça, le + Str me déplait dans la mesure ou Str() est une chaine et donc, la concaténation devrait se faire par &.
"nounours" a écrit dans le message de news:034801c3cd67$bebeb280$
Bonjour,
Quelcun peut-il répondre à mon prob posté le 19.12. sous le titre "VBA"? Ce serait sympa.
Merci d'avance
nounours
Bonsoir François et merci pour votre réponse.
Comme vous l'avez certainement lu, je suis au départ de ma formation autodidacte et logiquement, je fais des erreurs.
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété (lblActDec) d'un contrôle(frmAffichage)? Bêtement parce qu'il s'agit d'une autre feuille. Mais il est vrai que cela n'est pas nécessaire. C'était par pure sécurité. Un commentaire pour m'y retrouver plus tard aurait servi aussi.
2) Pourquoi un Str(dblMontant) Parce que le champs est un champs alphanum dans la banque de données séquentielle. J'ai trouvé cela dans mes bouquins, en particulier Visual Basic 6.0 de Diane Zak (éditions Reynald Goulet inc.)dont je me suis largement inspiré.
3) Reformulation du problème A partir d'une BDE séquentiele contenant entre autre une infornmation d'année, de mois et de montant, je désire afficher sur une feuille VBA le cumul des montants par mois au cours d'une année donnée.
Ma solution qui fonctionne très bien, mais ne me satisfait pas pour extraire ces données est la suivante : j'ai attribué une variable séparée à chaque mois (par ex. Dim strJanvier..., strFevrier... etc...
Je recherche une solution plus simple (heureusement que notre calendrier ne comporte que 12 mois !!!) par ex.: dblMontant=le montant correspondant au mois sélectionné, sans devoir définir une variable séparée par mois.
Désolé de vous importuner, mais en dBase III+, Turbo Pascal ou Cobol je ne vous aurais pas posé cette stupide question à laquelle je ne trouve aucune réponse dans ma documentation.
Merci de bien vouloir m'éclairer.
Bonsoir François et merci pour votre réponse.
Comme vous l'avez certainement lu, je suis au départ de
ma formation autodidacte et logiquement, je fais des
erreurs.
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété
(lblActDec) d'un contrôle(frmAffichage)?
Bêtement parce qu'il s'agit d'une autre feuille. Mais il
est vrai que cela n'est pas nécessaire. C'était par pure
sécurité. Un commentaire pour m'y retrouver plus tard
aurait servi aussi.
2) Pourquoi un Str(dblMontant)
Parce que le champs est un champs alphanum dans la banque
de données séquentielle. J'ai trouvé cela dans mes
bouquins, en particulier Visual Basic 6.0 de Diane Zak
(éditions Reynald Goulet inc.)dont je me suis largement
inspiré.
3) Reformulation du problème
A partir d'une BDE séquentiele contenant entre autre une
infornmation d'année, de mois et de montant, je désire
afficher sur une feuille VBA le cumul des montants par
mois au cours d'une année donnée.
Ma solution qui fonctionne très bien, mais ne me
satisfait pas pour extraire ces données est la suivante :
j'ai attribué une variable séparée à chaque mois (par ex.
Dim strJanvier..., strFevrier... etc...
Je recherche une solution plus simple (heureusement que
notre calendrier ne comporte que 12 mois !!!) par ex.:
dblMontant=le montant correspondant au mois sélectionné,
sans devoir définir une variable séparée par mois.
Désolé de vous importuner, mais en dBase III+, Turbo
Pascal ou Cobol je ne vous aurais pas posé cette stupide
question à laquelle je ne trouve aucune réponse dans ma
documentation.
Comme vous l'avez certainement lu, je suis au départ de ma formation autodidacte et logiquement, je fais des erreurs.
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété (lblActDec) d'un contrôle(frmAffichage)? Bêtement parce qu'il s'agit d'une autre feuille. Mais il est vrai que cela n'est pas nécessaire. C'était par pure sécurité. Un commentaire pour m'y retrouver plus tard aurait servi aussi.
2) Pourquoi un Str(dblMontant) Parce que le champs est un champs alphanum dans la banque de données séquentielle. J'ai trouvé cela dans mes bouquins, en particulier Visual Basic 6.0 de Diane Zak (éditions Reynald Goulet inc.)dont je me suis largement inspiré.
3) Reformulation du problème A partir d'une BDE séquentiele contenant entre autre une infornmation d'année, de mois et de montant, je désire afficher sur une feuille VBA le cumul des montants par mois au cours d'une année donnée.
Ma solution qui fonctionne très bien, mais ne me satisfait pas pour extraire ces données est la suivante : j'ai attribué une variable séparée à chaque mois (par ex. Dim strJanvier..., strFevrier... etc...
Je recherche une solution plus simple (heureusement que notre calendrier ne comporte que 12 mois !!!) par ex.: dblMontant=le montant correspondant au mois sélectionné, sans devoir définir une variable séparée par mois.
Désolé de vous importuner, mais en dBase III+, Turbo Pascal ou Cobol je ne vous aurais pas posé cette stupide question à laquelle je ne trouve aucune réponse dans ma documentation.
Merci de bien vouloir m'éclairer.
François Picalausa
Bonjour/soir, <réponse inline>
"nounours" a écrit dans le message de news:00df01c3cd7b$e187c9f0$
Comme vous l'avez certainement lu, je suis au départ de ma formation autodidacte
On en connait d'autres...
et logiquement, je fais des erreurs.
On en connait d'autres aussi :-)
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété
2) Pourquoi un Str(dblMontant)
Je tentais juste de dire pourquoi le compilateur "n'aimait" pas la syntaxe...
3) Reformulation du problème Je recherche une solution plus simple (heureusement que notre calendrier ne comporte que 12 mois !!!) par ex.: dblMontant=le montant correspondant au mois sélectionné, sans devoir définir une variable séparée par mois.
selon ce que j'ai compris du problème, une collection pourrait sans doutes faire l'affaire. Une collection gère des objets, ici ce seront des modules de classe. Voici un exemple de classe correspondant à un montant. Elle possède trois propriétés: dblMontant : le montant intAnnée : l'année correspondant au montant Mois : une chaine contenant le mois correspondant au montant. Le mois est validé pour être sûr qu'il contenienne une chaine correcte.
Option Explicit
Public dblMontant As Double Public intAnnée As Integer
Private m_strMois As String
Public Property Get Mois() As String Mois = m_strMois End Property
Public Property Let Mois(ByVal NouveauMois As String) NouveauMois = StrConv(NouveauMois, vbProperCase) If NouveauMois = "Janvier" Or _ NouveauMois = "Février" Or _ NouveauMois = "Mars" Or _ NouveauMois = "Avril" Or _ NouveauMois = "Mai" Or _ NouveauMois = "Juin" Or _ NouveauMois = "Juillet" Or _ NouveauMois = "Août" Or _ NouveauMois = "Septembre" Or _ NouveauMois = "Octobre" Or _ NouveauMois = "Novembre" Or _ NouveauMois = "Décembre" Then 'On s'assure que le mois définit est valide m_strMois = NouveauMois End If End Property
Private Sub Class_Initialize() m_strMois = "Janvier" 'on initialise le mois, l'année et le montant dblMontant = 0 intAnnée = 0 End Sub
Dans le code "principal", voici un exemple d'utilisation de l'objet:
Option Explicit
'On définit une collection Private colMontants As Collection
Private Sub Form_Initialize() 'Initialise la colelction Set colMontants = New Collection End Sub
Private Sub Form_Terminate() 'Détruit la collection Set colMontants = Nothing End Sub
'Ajoute un montant à la collection Sub AjouteMontant(dblMontant As Double, Mois As String, Année As Long) Dim objMontant As Montant Set objMontant = New Montant
objMontant.dblMontant = Montant objMontant.Mois = Mois objMontant.intAnnée = Année
If objMontant.Mois = Mois Then 'si la valeur était valide colMontants.Add objMontant, Mois & CStr(Année) End If End Sub
'Retrouve un objet monant en fonction du mois et de l'année Function RetrouveMontant(Mois As String, Année As Long) As Montant On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas l'objet Set RetrouveMontant = colMontants.Item(Mois & CStr(Année)) End Function
'Retrouve directement la valeur du montant en focntion du mois et de l'année Function dblRetrouveMontant(Mois As String, Année As Long) As Double On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas l'objet dblRetrouveMontant = colMontants.Item(Mois & CStr(Année)).dblMontant End Function
Désolé de vous importuner, mais en dBase III+, Turbo Pascal ou Cobol je ne vous aurais pas posé cette stupide question à laquelle je ne trouve aucune réponse dans ma documentation.
Si ça avait été le cas en dBase III+, Turbo Pascal ou Cobol, j'aurais posé la question ;-) Aucune question n'est stupide.. il faut bien débuter un jour... Et pour ceux que ça importune, qu'ils passent le post ;-)
"nounours" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:00df01c3cd7b$e187c9f0$a401280a@phx.gbl
Comme vous l'avez certainement lu, je suis au départ de
ma formation autodidacte
On en connait d'autres...
et logiquement, je fais des
erreurs.
On en connait d'autres aussi :-)
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété
2) Pourquoi un Str(dblMontant)
Je tentais juste de dire pourquoi le compilateur "n'aimait" pas la
syntaxe...
3) Reformulation du problème
Je recherche une solution plus simple (heureusement que
notre calendrier ne comporte que 12 mois !!!) par ex.:
dblMontant=le montant correspondant au mois sélectionné,
sans devoir définir une variable séparée par mois.
selon ce que j'ai compris du problème, une collection pourrait sans doutes
faire l'affaire.
Une collection gère des objets, ici ce seront des modules de classe.
Voici un exemple de classe correspondant à un montant.
Elle possède trois propriétés:
dblMontant : le montant
intAnnée : l'année correspondant au montant
Mois : une chaine contenant le mois correspondant au montant.
Le mois est validé pour être sûr qu'il contenienne une chaine correcte.
Option Explicit
Public dblMontant As Double
Public intAnnée As Integer
Private m_strMois As String
Public Property Get Mois() As String
Mois = m_strMois
End Property
Public Property Let Mois(ByVal NouveauMois As String)
NouveauMois = StrConv(NouveauMois, vbProperCase)
If NouveauMois = "Janvier" Or _
NouveauMois = "Février" Or _
NouveauMois = "Mars" Or _
NouveauMois = "Avril" Or _
NouveauMois = "Mai" Or _
NouveauMois = "Juin" Or _
NouveauMois = "Juillet" Or _
NouveauMois = "Août" Or _
NouveauMois = "Septembre" Or _
NouveauMois = "Octobre" Or _
NouveauMois = "Novembre" Or _
NouveauMois = "Décembre" Then 'On s'assure que le mois définit est
valide
m_strMois = NouveauMois
End If
End Property
Private Sub Class_Initialize()
m_strMois = "Janvier" 'on initialise le mois, l'année et le montant
dblMontant = 0
intAnnée = 0
End Sub
Dans le code "principal", voici un exemple d'utilisation de l'objet:
Option Explicit
'On définit une collection
Private colMontants As Collection
Private Sub Form_Initialize()
'Initialise la colelction
Set colMontants = New Collection
End Sub
Private Sub Form_Terminate()
'Détruit la collection
Set colMontants = Nothing
End Sub
'Ajoute un montant à la collection
Sub AjouteMontant(dblMontant As Double, Mois As String, Année As Long)
Dim objMontant As Montant
Set objMontant = New Montant
objMontant.dblMontant = Montant
objMontant.Mois = Mois
objMontant.intAnnée = Année
If objMontant.Mois = Mois Then 'si la valeur était valide
colMontants.Add objMontant, Mois & CStr(Année)
End If
End Sub
'Retrouve un objet monant en fonction du mois et de l'année
Function RetrouveMontant(Mois As String, Année As Long) As Montant
On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas
l'objet
Set RetrouveMontant = colMontants.Item(Mois & CStr(Année))
End Function
'Retrouve directement la valeur du montant en focntion du mois et de l'année
Function dblRetrouveMontant(Mois As String, Année As Long) As Double
On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas
l'objet
dblRetrouveMontant = colMontants.Item(Mois & CStr(Année)).dblMontant
End Function
Désolé de vous importuner, mais en dBase III+, Turbo
Pascal ou Cobol je ne vous aurais pas posé cette stupide
question à laquelle je ne trouve aucune réponse dans ma
documentation.
Si ça avait été le cas en dBase III+, Turbo Pascal ou Cobol, j'aurais posé
la question ;-)
Aucune question n'est stupide.. il faut bien débuter un jour...
Et pour ceux que ça importune, qu'ils passent le post ;-)
"nounours" a écrit dans le message de news:00df01c3cd7b$e187c9f0$
Comme vous l'avez certainement lu, je suis au départ de ma formation autodidacte
On en connait d'autres...
et logiquement, je fais des erreurs.
On en connait d'autres aussi :-)
Pour en revenir à vos diverses questions :
1) Pourqoui des parenthèses autour d'une propriété
2) Pourquoi un Str(dblMontant)
Je tentais juste de dire pourquoi le compilateur "n'aimait" pas la syntaxe...
3) Reformulation du problème Je recherche une solution plus simple (heureusement que notre calendrier ne comporte que 12 mois !!!) par ex.: dblMontant=le montant correspondant au mois sélectionné, sans devoir définir une variable séparée par mois.
selon ce que j'ai compris du problème, une collection pourrait sans doutes faire l'affaire. Une collection gère des objets, ici ce seront des modules de classe. Voici un exemple de classe correspondant à un montant. Elle possède trois propriétés: dblMontant : le montant intAnnée : l'année correspondant au montant Mois : une chaine contenant le mois correspondant au montant. Le mois est validé pour être sûr qu'il contenienne une chaine correcte.
Option Explicit
Public dblMontant As Double Public intAnnée As Integer
Private m_strMois As String
Public Property Get Mois() As String Mois = m_strMois End Property
Public Property Let Mois(ByVal NouveauMois As String) NouveauMois = StrConv(NouveauMois, vbProperCase) If NouveauMois = "Janvier" Or _ NouveauMois = "Février" Or _ NouveauMois = "Mars" Or _ NouveauMois = "Avril" Or _ NouveauMois = "Mai" Or _ NouveauMois = "Juin" Or _ NouveauMois = "Juillet" Or _ NouveauMois = "Août" Or _ NouveauMois = "Septembre" Or _ NouveauMois = "Octobre" Or _ NouveauMois = "Novembre" Or _ NouveauMois = "Décembre" Then 'On s'assure que le mois définit est valide m_strMois = NouveauMois End If End Property
Private Sub Class_Initialize() m_strMois = "Janvier" 'on initialise le mois, l'année et le montant dblMontant = 0 intAnnée = 0 End Sub
Dans le code "principal", voici un exemple d'utilisation de l'objet:
Option Explicit
'On définit une collection Private colMontants As Collection
Private Sub Form_Initialize() 'Initialise la colelction Set colMontants = New Collection End Sub
Private Sub Form_Terminate() 'Détruit la collection Set colMontants = Nothing End Sub
'Ajoute un montant à la collection Sub AjouteMontant(dblMontant As Double, Mois As String, Année As Long) Dim objMontant As Montant Set objMontant = New Montant
objMontant.dblMontant = Montant objMontant.Mois = Mois objMontant.intAnnée = Année
If objMontant.Mois = Mois Then 'si la valeur était valide colMontants.Add objMontant, Mois & CStr(Année) End If End Sub
'Retrouve un objet monant en fonction du mois et de l'année Function RetrouveMontant(Mois As String, Année As Long) As Montant On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas l'objet Set RetrouveMontant = colMontants.Item(Mois & CStr(Année)) End Function
'Retrouve directement la valeur du montant en focntion du mois et de l'année Function dblRetrouveMontant(Mois As String, Année As Long) As Double On Error Resume Next 'Evite l'erreur au cas où on ne retrouve pas l'objet dblRetrouveMontant = colMontants.Item(Mois & CStr(Année)).dblMontant End Function
Désolé de vous importuner, mais en dBase III+, Turbo Pascal ou Cobol je ne vous aurais pas posé cette stupide question à laquelle je ne trouve aucune réponse dans ma documentation.
Si ça avait été le cas en dBase III+, Turbo Pascal ou Cobol, j'aurais posé la question ;-) Aucune question n'est stupide.. il faut bien débuter un jour... Et pour ceux que ça importune, qu'ils passent le post ;-)