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 2236 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 7666 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 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
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 40
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 40
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 17 août 2018 23
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 17 août 2018 23
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
Rejoignez-nous