Lire une cellule avec plusieurs valeurs séparées par ";"

Résolu
Vampirelo Messages postés 10 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 13 janvier 2009 - 5 déc. 2008 à 17:39
piloulac Messages postés 21 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 28 décembre 2008 - 21 déc. 2008 à 00:00
Bonjour à tous,

Je suis en train de créer un formulaire sur Excel et pour des raisons pratiques, j'enregistre plusieurs valeurs de CheckBox dans une seule cellule.

Ex. simplifié :
Range("A1") = CheckBox1.Value & ";" & CheckBox2.Value

Mais je ne sais pas comment réattribuer ces valeurs enregistrées à chaque CheckBox quand je veux consulter mon formulaire avec mes données enregistrées.

J'espère que je suis assez clair

Auriez vous une idée de la manière de lire la cellule ?

3 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
5 déc. 2008 à 18:08
Bonjour Vampirelo

Option Base 0
...
Dim cellules() as String
cellules = Split(Range("A1").Value, ";")
CheckBox1.Value = cellules(0)
CheckBox2.Value = cellules(1)

Amicalement
3
Vampirelo Messages postés 10 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 13 janvier 2009
8 déc. 2008 à 12:15
Ca marche impécable !
Merci beaucoup :)
0
piloulac Messages postés 21 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 28 décembre 2008
21 déc. 2008 à 00:00
Super cette fonction de Orohena


Pour récupérer plusieurs valeurs, séparés par un ";" :



''D'abord, une petite fonction(NbSousChaine) très commode permettant de compter des occurences de caractères dans une chaîne.



Function NbSousChaine(Chaine As String, Ch As String, Optional RC As Integer = 1) As Long
  NbSousChaine= (Len(Chaine) - Len(Replace(Chaine, Ch, "", , , RC))) / Len(Ch)
End Function

''Ensuite une adaptation du code de Orohena :

Sub lireplusieursdatas()
Dim cellules() As String
Dim Sous_Chaine, nb, i
nb = NbSousChaine(Range("A1").Text, ";")
cellules = Split(Range("A1").Value, Chr(59))
For i = 0 To nb
Sous_Chaine = cellules(i)
Next
End Sub
0
Rejoignez-nous