comprehension de code

sabrina64

XLDnaute Occasionnel
bonjour
j 'ai trouvé un code permettant de creer autant de textbox que de cellules selectionnées sur un efeuille excel et de remplir ces textbox avce les valeurs des cellules...
or je ne comprends pas les dernieres lignes du code.

de plus mes textbox s inscrivent horizontalement les unes à la suite des autres..
T1 T2 T3.....

et j aimerais qu elles s'inscrivent verticalement :
T1
T2
T3
....

pourriez vous m expliquer?
je travaille avec excel 97

Je vous remercie.
voici le code




Code:
Public Sub ctbox()

Dim i As Integer, j As Integer, x As Integer, y As Integer
Dim TxtB As Control
'
y = 1

For Each cell In Selection
Set TxtB = Me.Controls.Add("forms.Textbox.1")
With TxtB
.Left = x * 36
.Top = 10 + ((y - 1) * 20)
.Width = 30
.Height = 15
.Text = cell.Value & "        "
End With


'c'est c derniers lignes que je ne comprend pas
x = x + 1
If x = tsval Then
x = 0
y = y + 1
End If

Set TxtB = Nothing
Next cell

End Sub

dans l attente d une reponse, bonne journee à tous
 

sabrina64

XLDnaute Occasionnel
Re : comprehension de code

merci de vous interesser à ma question
alors je vois l idee avec les x et y mais
le tsval je ne le fixe pas, et il n est pas initialisé.........et il n est pas defini...
alors la j bloque

afin d avoir
T1
T2
T3...

je dois donc jouer avec les x et y?


merci de votre attention
 

Staple1600

XLDnaute Barbatruc
Re : comprehension de code

Re

edit: OK compris , merci Tatiak pour tes explications de ta dernière réponse
et réedition bonjour MyDearFriend! et également merci pour tes explications.

J'ai bien compris l'explication de tatiak

mais je ne vois toujours pas à quoi correspond tsval :confused:

il n'y a pas de

Dim tsval

dans le code de sabrina64

edit: pas rafraichi à temps
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : comprehension de code

Bonjour sabrina64, le Forum,

Dans le code indiqué, tsval (qui ne semble ni déclaré, ni défini dans ton code ?) correspond au nombre de TextBox que tu veux voir affiché par ligne.
Par exemple, si tu ajoutes au début de ta procédure :
Code:
[SIZE=2][COLOR=NAVY]Dim[/COLOR] tsval [COLOR=NAVY]As Byte[/COLOR]
    tsval = 5[/SIZE]
Tu obtiendras des lignes de 5 TextBox alignées.

Par ailleurs, visiblement, ton code est situé dans le module de code de ton Userform et il ne devrait donc pas être utile de le qualifier "Public" mais "Private". De plus, les variables i et j ne semblent pas être utilisées.

Sauf erreur d'interprétation, le code ci-dessous devrait te permettre d'obtenir ce que tu souhaites :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] ctbox()
[COLOR=NAVY]Dim[/COLOR] x [COLOR=NAVY]As Integer[/COLOR], y [COLOR=NAVY]As Integer
Dim[/COLOR] TxtB [COLOR=NAVY]As[/COLOR] Control
[COLOR=GREEN]'[/COLOR]
    y = 1
    
    [COLOR=NAVY]For Each[/COLOR] cell [COLOR=NAVY]In[/COLOR] Selection
        [COLOR=NAVY]Set[/COLOR] TxtB = Me.Controls.Add("forms.Textbox.1")
        [COLOR=NAVY]With[/COLOR] TxtB
            .Left = 10      [COLOR=GREEN]'à adapter[/COLOR]
            .Top = 10 + ((y - 1) * 20)
            .Width = 30
            .Height = 15
            .Text = cell.Value & "        "
        [COLOR=NAVY]End With[/COLOR]
        
        y = y + 1
        
        [COLOR=NAVY]Set[/COLOR] TxtB = [COLOR=NAVY]Nothing
    Next[/COLOR] cell
[COLOR=NAVY]End Sub[/COLOR]
[/SIZE]
Cordialement,

EDITION : bonjour Stapple1600, Tatiak, désolé je n'ai pas eu le temps de vous voir arriver...
 
Dernière édition:

sabrina64

XLDnaute Occasionnel
Re : comprehension de code

merci ca met et bien mes textbox les unes à la suite des autres...
pour le tsval étant un code d internet, la variable a du etres definie ailleurs, j vais donc la definir...

un question bête, le nom des textbox ainsi cree est il textbox1,textbox2,textbox3.....

j aurai une autre petite question

enfait je veux creer

textbox1 checkbox1 textbox1'
textbox2 textbox2'
textbox3 checkbox3 textbox3'
textbox4 textbox4'
.....

est c epossible, je dois donc mettre des controls dans la boucle for?

merci beaucoup
 

pierrejean

XLDnaute Barbatruc
Re : comprehension de code

bonjour Sabrina

voila une adaptation

les lignes que tu ne coprends pas etaient destinées a positionner les textbox en ligne avec retour a la ligne au depassement de la variable tsval (qui devait etre publique puisque on n'en trouve pas trace dans la sub)


edit

salut a tous

avais pas rafraichi
 

Pièces jointes

  • ctbox.xls
    29.5 KB · Affichages: 50
  • ctbox.xls
    29.5 KB · Affichages: 51
  • ctbox.xls
    29.5 KB · Affichages: 52

sabrina64

XLDnaute Occasionnel
Re : comprehension de code

merci pour votre aide

afin d avoir 2 séries de textbox côte à côté , g écris ceci :

Set TxtB = Me.Controls.Add("forms.Textbox.1", "forms.Textbox.2")

dans votre programme la liste des textbox.1 se remplit automatiquement...
une fois remplit j aimerais que les valeurs ne puissent pas être modifiees...
de plus j voudraient que les valeurs de textbox2 soient rentrees par l utilisateur!

pourriez vous m aiguiller.......

bon appetit
 

pierrejean

XLDnaute Barbatruc
Re : comprehension de code

re sabrina

pour ce que tu souhaites , je te propose plutot de mettre des Labels devant les TextBox

par ailleurs pour te renseigner sur les noms des controles ,ils se presentent eux-même (tu trouveras facilement les lignes de code a supprimer apres la 1ere utilisation)

quant a ta formulation

Set TxtB = Me.Controls.Add("forms.Textbox.1", "forms.Textbox.2")

j'ai comme un doute
 

Pièces jointes

  • ctbox.xls
    30.5 KB · Affichages: 53
  • ctbox.xls
    30.5 KB · Affichages: 56
  • ctbox.xls
    30.5 KB · Affichages: 56

sabrina64

XLDnaute Occasionnel
Re : comprehension de code

merci pierre jean
je vais donc utiliser votre suggestion mettre des labels et un text box

or j ai une autre doléance, peut on aussi ajouter un checkbox entre le label et le text box....

merci pout toute l attention qu evous portez à mes requêtes:)
 

sabrina64

XLDnaute Occasionnel
Re : comprehension de code

bonjour tout le monde
j ai un petit soucis je n arrive pas à associer des controls à mes objets crées .

Mon fichier permet donc la creation de label, textbox et checkbox en fonction du nombre de cellule selectionnees.
j'obtiens donc :
Label1 checkbox1 textbox1
Label2 checkbox2 textbox2
.................................

j'aimerais pouvoir y asoosier des controles ( CommandButton2)
exemple si checkbox i cochée alors textbox i . text = ....

or je suis un peu perdue et j n y arrive pas

pourriez vous m aider

Merci
 

Pièces jointes

  • coloration.zip
    26.8 KB · Affichages: 23
  • coloration.zip
    26.8 KB · Affichages: 20
  • coloration.zip
    26.8 KB · Affichages: 21

Discussions similaires

Réponses
29
Affichages
966

Statistiques des forums

Discussions
312 342
Messages
2 087 434
Membres
103 545
dernier inscrit
agent3