Creer un index pour objet "Image"

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 - 19 nov. 2012 à 13:40
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 nov. 2012 à 18:14
Bonjour ,
Je travaille avec Excel 2010.
Je veux inserer plusieurs images sur une feuille excel
grace à l'objet 'IMAGE'.Cela ne me pose pas de souci.
Par contre, je souhaite nommer tous ces images avec une indexation.C'est à dire par exemple Image(1),Image(2),
Image(3).....Image(20).
Avec Excel 2000, c'etait possible, je crois.
Comment puis je faire maintemant ?

Merci
Dedenet2

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 nov. 2012 à 15:11
Bonjour,
1) En d'autres termes : créer un pseudo groupe de contrôles indexés ? C'est celà ?
2) si oui (et j'attends ta confirmation) : Excel 2000 n'offrait à ma connaissance pas cette possibilité et il fallait donc construire une classe. Sous 2010, la démarche serait exactement la même !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
19 nov. 2012 à 17:34
Bonjour ucfoutu,
Oui, c'est cela.
Si tu peux m'expliquer comment on peut faire,cela m'aiderait beaucoup.
Je pourrais le tester ce soir.

Merci
Dedenet57
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 nov. 2012 à 18:14
Que veux-tu que je t'explique ? C'est un cours complet qu'il te faudrait pour que tu puisses traiter tous les cas de figure !

Ce que je peux faire, c'est un petit exemple que tu devras comprendre et analyser pour faire ensuite ce qui te convient, en fonction de TON appli :
1) Un userform avec ce code
Private Sub UserForm_Activate()
  Dim nb As Integer, obj As Control, i As Integer
  Me.Move 0, 0, 500, 400
  Dim boitetexte As MSForms.Control
  On Error Resume Next
  For i = 0 To 2
    Set boitetexte = Me.Controls("" & i)
    If boitetexte Is Nothing Then
      Set boitetexte = Me.Controls.Add("Forms.TextBox.1", "toto(" & i & ")", True)
      With boitetexte
        .Caption = "Ma textbox" & i
        .Top = 20 * i
        .Left = 100 * i
        .Height = 20
        .Width = 100
      End With
    Else
      MsgBox "existe déjà !"
    End If
    Set boitetexte = Nothing
  Next
  For Each obj In Me.Controls
     If obj.Name Like "toto*" Then
      nb = nb + 1
      ReDim Preserve mestextboxes(1 To nb)
      Set mestextboxes(nb).TextBoxEvents = obj
    End If
  Next obj
  Set obj = Nothing
End Sub

un module standard avec cette seule ligne de code :
Public mestextboxes() As New Classe1

Un module de classe avec ce code :
Option Explicit

Public WithEvents TextBoxEvents As MSForms.TextBox

Private Sub TextBoxEvents_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  Dim index As Integer, qui As String
  qui = UserForm1.ActiveControl.Name
  index = Val(Mid(qui, InStr(qui, "(") + 1))
  Select Case index
    Case 0
      If KeyAscii <> 8 And Not IsNumeric(Chr(KeyAscii)) Then
        KeyAscii = 0
      End If
    Case 1
      If IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then
        KeyAscii = 0
      End If
    Case 2
      KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Select
End Sub

Lance ton userform === >> on y a ajouté 3 textboxes qui répondent à un seul évènement keypress
Elle réagissent différemment selon leur index
Dans la première, tu ne pourras saisir que des numériques, dans seconde : aucun numérique et dans la 3ème tout passera en majuscules
Ce n'est qu'un exemple/démonstration
A toi de comprendre et de faire ce qui te convient, sur ces principes.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous