Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/10/2011, 13h23   #1
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
Par défaut Boucle sur controles et .tag associé

Bonjour !

Je suis un peu bloqué sur une partie de mon code

Contexte :
J'ai un userform avec 70 textbox et 70 checkbox.
Chaque checkbox est associé à 1 textbox grâce au tag.

Résultat souhaité : pour chaque checkbox cochée, je veux récupérer la valeur du textbox associé dans un tableau.

Voilà mon code pour le moment (et qui ne fonctionne pas bien sûr )

Code :
1
2
3
4
5
6
7
i = 1
For j = 1 To 70
       If Controls("CheckBox" & j).Value = True Then
               Tableau(i).infosaisie = userform.Controls("CheckBox" & j).Tag.Text
                i = i + 1
       end if
next j

A la place de .Text, j'ai essayé .Value et même rien du tout mais ca ne fonctionne pas non plus.

Quelqu'un pourrait m'aider svp ?
Merci d'avance.
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h45   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour,

Essais sans le .Text


Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h08   #3
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
Bonjour Jean-Pierre49,

J'ai déjà testé sans le .Text
j'ai déjà aussi testé avec .Value à la place

Rien de tout ca fonctionne. D'autres idées ?
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h14   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
As-tu un message d'érreur

comment est dimensionnée ta variable Tableau()

Essais avec

Code :
1
2
3
4
5
6
7
8
9
Dim Tableau()
Dim i As Byte
For j = 1 To 70
    If UserForm.Controls("CheckBox" & j).Value = True Then
        i = i + 1
        ReDim Preserve Tableau(i)
        Tableau(i) = UserForm.Controls("CheckBox" & j).Tag
    End If
Next j
tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h26   #5
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
Citation:
As-tu un message d'érreur
Quand je mets :
1/ .Text ou .Value : Objet requis
2/ rien : Objet spécifié introuvable

Citation:
comment est dimensionnée ta variable Tableau()
Code :
1
2
3
4
5
6
7
8
9
'je crée un type pour les données dans le tableau 
Type ColonneEtInfoSaisie
        libellécolonne As String
        colonne As Integer
        infosaisie As String
 End Type
 
'je dimensionne le tableau
Global Tableau(69) As ColonneEtInfoSaisie
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h33   #6
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Essais le code que j'ai mis si il marche il devrait nous donner une indication
pour continuer à chercher.

regarde aussi avec

Code :
1
2
Option Explicit
Option Base 1
et


Code :
Global Tableau(70) As ColonneEtInfoSaisie
tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h53   #7
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
Le ReDim ne fonctionne pas parce que mon tableau à une dimension fixe.
Et j'ai besoin que mon tableau commence à partir de 0.
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h55   #8
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
ok, mais

me choque donc

tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h03   #9
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
en fait la variable j ne correspond pas au tableau mais au nom des checkbox.
ex : CheckBox1, CheckBox 2, etc ("Checkbox" & j)
c'est la variable i qui indexe mon tableau.

Ca c'est ma vision du code et je me trompe peut être (sûrement).
qu'est-ce qui te choque ?
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h07   #10
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Tu as raison,

Quand tu as le message d'érreur sur quelle ligne le code est stoppé?
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h25   #11
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
En fait j'ai recréé un fichier (ci-joint) pour ne pas être parasité par le reste de mon code.

ca compile mais la valeur récupérée est le nom de la textbox et non pas sa valeur
Fichiers attachés
Type de fichier : zip Classeur2.zip (16,7 Ko, 3 affichages)
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h29   #12
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
je n'ai pas 2007 ou 2010 ici
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 16h05   #13
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

D'après tes explications, j'aurais plutôt vu un code qui ressemble à ça

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub CommandButton1_Click()
    Dim tableau(1) As String
    Dim i As Integer
    i = 0
    For j = 1 To 2
       If Controls("CheckBox" & j) = True Then
            If Controls("TextBox" & j).Text = "" Then
                tableau(i) = "X"
                i = i + 1
            Else
                tableau(i) = Controls("TextBox" & j).Text
                i = i + 1
            End If
        End If
    Next j
    MsgBox tableau(0), vbOKOnly
    MsgBox tableau(1), vbOKOnly
    Unload UserForm1
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h13   #14
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 5
Points : 5
oui gFZT82, j'ai eu cette réponse aussi sur un autre forum.

en fait je ne sais pas pourquoi je m'obstinais à vouloir utiliser .Tag alors qu'il suffit de nommer les TextBox avec le même numéro que les CheckBox et donc ma boucle fonctionne pour les 2.

Merci à tous pour votre aide et très bon week end !
pleskyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h21.


 
 
 
 
Partenaires

Hébergement Web