ESt-il possible ?

Résolu
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007
- 7 janv. 2007 à 15:58
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
- 11 janv. 2007 à 16:11
ESt-il possible d'incrémenter le nom d'un objet comme indiqué dans l'exemple suivant ???
 for i =0 to 31
   Set Calender.CellPicture = Picture& " i " &.Picture
next i
si c'est possible prière de m'indiquer la syntaxe correcte pour ça 
                                                                                    Merci

44 réponses

mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 20:39
Voici la fonction :

Public Function premierjour(ByVal annee As Integer, ByVal mois
As Byte) As String
    Dim sDate As String
    
sDate = Format("01/" & CStr(mois) & "/" & CStr(annee), "dd/mm/yyyy")
premierjour = Weekday(CDate(sDate), vbMonday)

Select Case premierjour
    Case 1: premierjour = "Lundi"
    Case 2: premierjour = "Mardi"
    Case 3: premierjour = "Mercredi"
    Case 4: premierjour = "Jeudi"
    Case 5: premierjour = "Vendredi"
    Case 6: premierjour = "Samedi"
    Case 7: premierjour = "Dimanche"
End Select
End Function

Sub Exemple_Utilisation()
    MsgBox premierjour(2007, 1)
End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
9 janv. 2007 à 07:33
"Pour incrémenter en une boucle for on utilise next je voudrais savoir si c'est possible de décrementer une boucle et la syntaxe."
Tiens ! C'est vrai ! VB a prévu Next pour incrémenter et oussamamavich cherche maintenant s'il existe un previous !


Non,, il n'y a pas de previous ... Mais oui, il y a l'emploi de Step (voir l'aide en ligne)
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
11 janv. 2007 à 16:11
Nouveau (différent) problème ===>>> autre discussion

Evite toutefois de lui donner un titre tel que celui donné à la présente ! Le titre donné doit être explicite et résumer le problème à traiter.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
3
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 16:02
tes contrôles sont-ils indexés ou non ?

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
7 janv. 2007 à 16:11
lol, on a même plus le temps de lire les posts ici.

Si tu est en VB6, faut passer par des groupes de controles

Tes controles doivent avoir tous le même nom, et une valeur de la propriete index différente.

Ensuite tu les utilise comme ça : Picture(0).piture, Picture(1).Picture, comme si tu avais un tableau

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 16:13
Voici une solution simple, mais c'est toujours le même endroit qui réceptionnera les différentes images (à travailler, donc) :

        Dim oCtl As Control

For Each oCtl In Me.Controls
    If TypeOf oCtl Is PictureBox Then
        Set Calender.CellPicture = oCtl.Picture
    End If
Next oCtl

~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 16:19
merci pour ta solution , si c'est pas trop demandé un bout de code de ce tableau de picturebox
Merci
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 16:21
comme ceci :

        Dim i As Integer

For i = 1 To 31
    Set Calender.CellPicture = Picture(i).Picture
Next i

~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 16:29
ça me sort une erreur de compilation : calificateur incorrect
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 16:35
C'est soit pour parce que tes contrôles ne sont pas indexés, soit parce que il manque quelque chose, du genre Picture1(i).Picture

A toi de nous dire..

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 16:41
Est-ce qu'une déclaration de tableau de picturebox s'impose ?
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 16:45
Oui, sinon, impossible de déterminer le contrôle.

Ex :
Picture1(i).Picture fonctionnera alors que Picture & i ne fonctionnera pas.

Pour indexés des contrôles, il suffit d'en placer un sur la Form, tu le copies et ensuite tu fais coller.
VB te propose s'il faut faire un Groupe de contrôles, tu dis oui, et faut faire la manip pour autant de contrôles.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 17:05
voilà j'ai dèjà trouver une solution mais je veux l'optimiser , serait-il possible de trouver un équivalant à cette fonction
'fonction
Private Function insérer_image(ByVal stcr As Integer)
Select Case stcr
Case 1
Set Calender.CellPicture = Picture1.Picture
Case 2
Set Calender.CellPicture = Picture2.Picture
Case 3
Set Calender.CellPicture = Picture3.Picture
Case 4
Set Calender.CellPicture = Picture4.Picture
Case 5
Set Calender.CellPicture = Picture5.Picture
Case 6
Set Calender.CellPicture = Picture6.Picture
Case 7
Set Calender.CellPicture = Picture7.Picture
Case 8
Set Calender.CellPicture = Picture8.Picture
Case 9
Set Calender.CellPicture = Picture9.Picture
Case 10
Set Calender.CellPicture = Picture10.Picture
Case 11
Set Calender.CellPicture = Picture11.Picture
Case 12
Set Calender.CellPicture = Picture12.Picture
Case 13
Set Calender.CellPicture = Picture13.Picture
Case 14
Set Calender.CellPicture = Picture14.Picture
Case 15
Set Calender.CellPicture = Picture15.Picture
Case 16
Set Calender.CellPicture = Picture16.Picture
Case 17
Set Calender.CellPicture = Picture17.Picture
Case 18
Set Calender.CellPicture = Picture18.Picture
Case 19
Set Calender.CellPicture = Picture19.Picture
Case 20
Set Calender.CellPicture = Picture20.Picture
Case 21
Set Calender.CellPicture = Picture21.Picture
Case 22
Set Calender.CellPicture = Picture22.Picture
Case 23
Set Calender.CellPicture = Picture23.Picture
Case 24
Set Calender.CellPicture = Picture24.Picture
Case 25
Set Calender.CellPicture = Picture25.Picture
Case 26
Set Calender.CellPicture = Picture26.Picture
Case 27
Set Calender.CellPicture = Picture27.Picture
Case 28
Set Calender.CellPicture = Picture28.Picture
Case 29
Set Calender.CellPicture = Picture29.Picture
Case 30
Set Calender.CellPicture = Picture30.Picture
Case 31
Set Calender.CellPicture = Picture31.Picture
End Select
End Function

'lors de l'appel de la fonction
With Calender
For j = 1 To 5
For i = 1 To 7
.Row = j
.Col = i
insérer_image (ab)

ab = ab + 1
If ab > jour Then
ab = 1
End If
Next i
Next j
End With



Merci du desolé pour dérangement
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 17:14
Pas de problème,

si tu fais un groupe de contrôle comme je te disais sur mon post précédant (voir explication sur page 1 de ce topic), ta fonction donnerai ça :

Private Function insérer_image(ByVal stcr As Integer)
    Set Calender.CellPicture = Picture(stcr).Picture
End Function

~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
7 janv. 2007 à 17:15
oui tu peux optimiser.

Ton controle Picture1, tu le renomme en Picture. Ensuite tu donne la valeur 1 à sa propriété Index.
Tu fais pareil avec le controle Picture2 que tu renomme en Picture, et tu donne la valeur 2 à l'index, ainsi de suite.

Ensuite ton code devient :

Private Function insérer_image(ByVal stcr As Integer)
        Set Calender.CellPicture = Picture(stcr).Picture
End Function

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
7 janv. 2007 à 17:42
Tu pourrais utiliser un contrôle ImageList et y intégrer tes images, non ?
Tu pourrais alors utiliser l'index ou la clé, je ne me rappelle plus trop...

Si je comprend bien, tu as une Flexgrid et tu veux y placer des images qui sont affichées dans des Picturebox, c'est ça ?
Si oui, est-ce que c'est nécessaire d'afficher toutes ces Picturebox ?

En espérant que je comprenne bien ce qui se passe...

MPi
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 17:43
c fé et ça marche je vous en suis infiniment reconnaissant
vous pourriez m'indiquer la fonction qui retourne la valeur de la colonne de la flex grid sur laquelle on a cliqué ???
0
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
7 janv. 2007 à 17:48
Voici la bonne syntaxe :

MsgBox "Ligne : " & Calender.Row & vbCrLf & _
       "Colonne : " & Calender.Col

~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
7 janv. 2007 à 17:49
msgbox Calender.MouseCol
ou
msgbox Calender.ColSel
MPi
0
oussamavich
Messages postés
19
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
11 janvier 2007

7 janv. 2007 à 19:10
Y'a t'il une fonction pour récuperer le numéro d'index du picturebox ?
0