Bonjour Nicole, Robert, Sebb
Non là ce n'est vraiment pas très gentil car tu fais chercher par des contributeurs des explications sur une démo que je viens à peine de te fournir... Lien supprimé
Non seulement tu fais perdre leur temps à Sebb et Robert qui n'ont probablement pas vu cette démo et tu demandes de décortiquer des portions de codes sans faire référence au fil et à la démo.
Non ce n'est pas comme ceci qu'il faut procéder, si quelqu'un te produit une solution que tu ne comprends pas, il faut rester à plus forte raison dans le même fil, et si vraiment tu ne peux pas alors au moins faire référence à cette solution, car on a déjà des difficulté à répondre à toutes les questions, si en plus on fait des Rébus !!!
Alors en Bref :
Pour 1) :
c'est une boucle, qui va scanner de 1 à 9 tous les Control en Concaténant leur nom TextB & i, (Donc "TextB1", 'TextB2"... Etc) si le nom match, alors le control respecatif sera desabled.
Pour 2) :
"With" et "End With" permet de faire une instance unique à un objet pendant toute une série d'action. Ce qui optimise énormément un code.
Pour 3) :
"Ini" est une macro que j'appelle à plusieurs reprise dans ma démo. Au lieu de ré-écrire la même macro dans chaque évènement je l'appelle, c'est tout. Ce genre de question ne peut avoir de réponse sans voir ou connaître mon fichier.
Pour 4) :
L = WS.Range("A65536").End(xlUp).Row
, signifie que je veux initialiser "L" avec le numéro de la première ligne non-vide rencontrée en partant de la dernière Ligne d'une feuille Excel (65536).
Pour 5) :
tbXSetup Idem que pour 3)
Pour 6) :
D'abord je n'ai jamais rédigé ce code tel quel, le code était celui-ci
Private Sub Ini()
Dim CTRL As Control
Dim Col As String
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSforms.TextBox Then
Col = Right(CTRL.Name, 1)
CTRL.Value = WS.Range(Col & Lig)
End If
Next CTRL
End Sub
Car => CTRL.value= Worksheets("").Range(Col&Lig)
Ne risque pas de fonctionner...
Ensuite il faut voir le contexte entier, Lig (Numéro de Ligne) est une Varible Public initialisée ailleurs... Ensuite Col (Lettre de la Colonne) est initilisé avec la Lettre située en dernier dans le Nom des TextBox (TxbG par exemple), donc çà me permet d'incrémenter des données dans les TextBox assez facilement puisque j'ai le numéro de Ligne et de Colonne...
Pour 7) :
Idem que pour 6) sans voir le contexte personne ne peut te répondre. J'utilise une Boolean qui se nomme "TheLock" et je n'ai certainement pas rédigé :
Dim the lock As Boolean (<<< Je me demande si tu sais qu'on peut Copié/Collé...)
Enfin donc cette Boolean est subordonnée à une Variable Public "Mode"de type Byte qui peut avoir la Valeur de 1 à 3 en fonction des trois bouton cliqués...
Et donc selon le cas (Select Case) de "Mode", "TheLock" est initialisé soit à Vrai soit à Faux, ensuite la Boucle dessous Initialise Toutes les TextBoxs pour leur Propriété respectives "Locked" à Vrai ou Faux...
Voilà cette fois-ci je pense qu'entre les explications partielles qu'ont pu donner nos deux amis et celles-ci tu pourras passer un bon Week-End VBAesque ...
Bon Après Midi
@+Thierry