Incorporer une variable dans un texte
Résolu
Julien
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis en train d'essayer de faire un petit programme, mais je bloque sur une des Sub.
Cette sub a pour rôle de sauvegarder les valeurs des différentes CheckBox du programme (pour ne pas qu'elle soit réinitialisée à chaque lancement du fichier.
Merci d'avance,
Julien
Je suis en train d'essayer de faire un petit programme, mais je bloque sur une des Sub.
Cette sub a pour rôle de sauvegarder les valeurs des différentes CheckBox du programme (pour ne pas qu'elle soit réinitialisée à chaque lancement du fichier.
Voici la Private Sub que j'ai écris :
Private Sub CommandButton_sauvegarder_Click()
'la variable "n" est le nombre de CheckBox pour 1 système donné
Dim n As Integer
'la variable "i" permet de sauvegarder les checkBox par itération
Dim i As Integer
'La variable y définie la ligne dans laquelle sera collé la valeur de la CheckBox
Dim y As Integer
'Sauvegarde des checkBoxCEX
'initialisation de n
n = Sheets("Sauvegarde").Range("B8").Value + 1
For i = 1 To n
'Initialisation de y
y = i + 2
Sheets("Sauvegarde").Range("H" & y & "").Value = UserForm_CEX.CheckBoxCEX" & i & ".Value
Next i
End Sub
Malheureusement il semblerai qu'il y ai une erreur de compilation dans cette ligne de code :
Sheets("Sauvegarde").Range("H" & y & "").Value = UserForm_CEX.CheckBoxCEX" & i & ".Value
EDIT : Ajout des balises de code
Savez vous où se trouve mon erreur?Merci d'avance,
Julien
A voir également:
- Incorporer une variable dans un texte
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
- Insérer une image dans word sans bouger le texte - Guide
1 réponse
Bonjour,
Tu as des quotes inutiles et une en trop
A remplacer par :
Par contre... pas certain que ceci fonctionne :
A mon avis il faut que tu regarde comment utiliser l'objet "controls"
Par exemple, pour boucler sur des chekbox (des OPTION BUTTON) il faut utilser un code comme celui-ci
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-B
..
Tu as des quotes inutiles et une en trop
Sheets("Sauvegarde").Range("H" & y & "").Value = UserForm_CEX.CheckBoxCEX" & i & ".Value
A remplacer par :
Sheets("Sauvegarde").Range("H" & y ).Value = UserForm_CEX.CheckBoxCEX & i & .Value
Par contre... pas certain que ceci fonctionne :
UserForm_CEX.CheckBoxCEX & i
A mon avis il faut que tu regarde comment utiliser l'objet "controls"
Par exemple, pour boucler sur des chekbox (des OPTION BUTTON) il faut utilser un code comme celui-ci
Dim Ctrl As Control
'Boucle sur tous les contrôles
For Each Ctrl In Me.Controls
'Vérifie qu'il s'agit d'un OptionButton
If TypeOf Ctrl Is MSForms.OptionButton Then
'Véfifie si l'OptionButton fait partie d'un groupe nommé "GR1"
If Ctrl.GroupName = "GR1" Then
'Affiche le Caption de l'optionButton qui a la valeur True
If Ctrl.Value = True Then
MsgBox Ctrl.Caption
'Sort de la boucle (Il ne peut y a voir qu'une
'réponse à True)
Exit For
End If
End If
End If
Next
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-B
..
J'ai en effet réussi à faire ce que je souhaitais avec l'objet "Controls".
ça m’évite de devoir aller chercher nominativement les CheckBox.
Pour info, le Code ressemble à ça :
Private Sub CommandButton_sauvegarder_Click()
Dim Ctrl As Control
'La variable y définie la ligne dans laquelle sera collé le nom et la valeur de la CheckBox
Dim y As Integer
'la valeur x permet d'extraire la nom de la chexkBox
Dim x As String
'La valeur z permet d'extraire la valeur de la checkbox
Dim z As String
y = 2
'Boucle sur tous les contrôles du UserFormCEX
For Each Ctrl In UserForm_CEX.Controls
'Vérifie qu'il s'agit d'un OptionButton
If TypeOf Ctrl Is MSForms.CheckBox Then
'Sauvegarde les données des CheckBoxCEX
x = Ctrl.Caption
Sheets("Sauvegarde").Range("M" & y).Value = x
z = Ctrl.Value
Sheets("Sauvegarde").Range("n" & y).Value = z
y = y + 1
End If
Next
End Sub
PS: A l'avenir, merci d'utiliser les Balises de code pour poster ton code sur le forum;
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.