VBA Excel - Conversion nom d'objet en string
jp22
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerais savoir si c'est possible de transformer par une conversion quelqu'on que le nom d'un objet en string (dans excel en vba) un peu comme:
Dim Nom As String
Nom = CStr(CheckBox1)
...
Sheets("Feuil1").Nom.Enable = True
L'object ici étant un checkbox, c'est pour pouvoir l'incrémenter dans une boucle while.
Merci.
J'aimerais savoir si c'est possible de transformer par une conversion quelqu'on que le nom d'un objet en string (dans excel en vba) un peu comme:
Dim Nom As String
Nom = CStr(CheckBox1)
...
Sheets("Feuil1").Nom.Enable = True
L'object ici étant un checkbox, c'est pour pouvoir l'incrémenter dans une boucle while.
Merci.
A voir également:
- VBA Excel - Conversion nom d'objet en string
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
bonjour
En prenant l'exemple 3 fourni cela devrait donner :
En prenant l'exemple 3 fourni cela devrait donner :
Public Sub boucle_obj()
Dim o As Integer
For o = 1 To 100 ' à adapter à ton classeur
Sheets("Feuil1").Shapes("CheckBox" & o + 4).Enabled = True
Sheets("Feuil1").Shapes("CheckBox" & o + 4).Value = True
Next o
End Sub
bonjour
Tu as plusieurs façons de la faire et je t'en mets 3 pour exemple :
J'ai supposé que tes contrôles étaient sur la feuille car si tu es dans un formulaire c'est différent.
Tu as plusieurs façons de la faire et je t'en mets 3 pour exemple :
Public Sub boucle_obj()
Dim o As Integer
Dim nom As String
Dim obj As Object
For Each obj In ActiveSheet.Shapes
nom = obj.Name
Next obj
For o = 1 To ActiveSheet.Shapes.Count
nom = ActiveSheet.Shapes(o).Name
Next o
For o = 1 To ActiveSheet.Shapes.Count
On Error Resume Next ' filtre autres controles
nom = ActiveSheet.Shapes("CheckBox" & o).Name
Next o
End Sub
J'ai supposé que tes contrôles étaient sur la feuille car si tu es dans un formulaire c'est différent.
Merci pour ta réponse,
En fais mes contrôles étant des tous des checkbox sont sur une autre feuille et je fonctionne avec Target.Value
If Target.Value = 1 Then
Sheets("Feuil1").CheckBox5.Enabled = True
Sheets("Feuil1").CheckBox5.Value = True
End If
If Target.Value = 2 Then
Sheets("Feuil1").CheckBox6.Enabled = False
Sheets("Feuil1").CheckBox6.Value = False
End If
If Target.Value = 3 Then
Sheets("Feuil1").CheckBox7.Enabled = False
Sheets("Feuil1").CheckBox7.Value = True
End If
etc...
C'est simplement pour savoir si c'est possible d'incrémenter automatiquement dans une boucle le numéro du checkbox au lieu de changer le chiffre a chaque fois.
Merci
En fais mes contrôles étant des tous des checkbox sont sur une autre feuille et je fonctionne avec Target.Value
If Target.Value = 1 Then
Sheets("Feuil1").CheckBox5.Enabled = True
Sheets("Feuil1").CheckBox5.Value = True
End If
If Target.Value = 2 Then
Sheets("Feuil1").CheckBox6.Enabled = False
Sheets("Feuil1").CheckBox6.Value = False
End If
If Target.Value = 3 Then
Sheets("Feuil1").CheckBox7.Enabled = False
Sheets("Feuil1").CheckBox7.Value = True
End If
etc...
C'est simplement pour savoir si c'est possible d'incrémenter automatiquement dans une boucle le numéro du checkbox au lieu de changer le chiffre a chaque fois.
Merci