Boucle pour Textbox et Combobox

bloomby

XLDnaute Occasionnel
Bonjour à tous,

je suis sur que je mis prend pas de la bonne façon,
parce que cette méthode est vraiment longue :confused:

HTML:
TextBox30 = Sheets("PTF1").Range("B2").Value
TextBox31 = Sheets("PTF1").Range("C2").Value
TextBox32 = Sheets("PTF1").Range("D2").Value
TextBox33 = Sheets("PTF1").Range("E2").Value
TextBox34 = Sheets("PTF1").Range("F2").Value
TextBox35 = Sheets("PTF1").Range("G2").Value
TextBox36 = Sheets("PTF1").Range("H2").Value
TextBox37 = Sheets("PTF1").Range("I2").Value
TextBox38 = Sheets("PTF1").Range("J2").Value
TextBox39 = Sheets("PTF1").Range("K2").Value
TextBox40 = Sheets("PTF1").Range("L2").Value
TextBox41 = Sheets("PTF1").Range("M2").Value
TextBox42 = Sheets("PTF1").Range("N2").Value
TextBox43 = Sheets("PTF1").Range("O2").Value
TextBox44 = Sheets("PTF1").Range("P2").Value
TextBox45 = Sheets("PTF1").Range("Q2").Value
TextBox46 = Sheets("PTF1").Range("R2").Value
TextBox47 = Sheets("PTF1").Range("S2").Value
TextBox48 = Sheets("PTF1").Range("T2").Value
TextBox49 = Sheets("PTF1").Range("U2").Value
TextBox50 = Sheets("PTF1").Range("V2").Value
TextBox51 = Sheets("PTF1").Range("W2").Value
TextBox52 = Sheets("PTF1").Range("X2").Value
TextBox53 = Sheets("PTF1").Range("Y2").Value
TextBox54 = Sheets("PTF1").Range("Z2").Value
TextBox55 = Sheets("PTF1").Range("AA2").Value
TextBox56 = Sheets("PTF1").Range("AB2").Value
TextBox57 = Sheets("PTF1").Range("AC2").Value
TextBox58 = Sheets("PTF1").Range("AD2").Value
TextBox59 = Sheets("PTF1").Range("AE2").Value
TextBox60 = Sheets("PTF1").Range("AF2").Value
TextBox61 = Sheets("PTF1").Range("AG2").Value
TextBox62 = Sheets("PTF1").Range("AH2").Value
TextBox63 = Sheets("PTF1").Range("AI2").Value
'TextBox64 = Sheets("PTF1").Range("AJ2").Value
'TextBox65 = Sheets("PTF1").Range("AK2").Value
'TextBox66 = Sheets("PTF1").Range("AL2").Value
'TextBox67 = Sheets("PTF1").Range("AM2").Value
'TextBox68 = Sheets("PTF1").Range("AN2").Value
'TextBox69 = Sheets("PTF1").Range("AO2").Value

TextBox1030 = Sheets("PTF1").Range("B3").Value
TextBox1031 = Sheets("PTF1").Range("C3").Value
TextBox1032 = Sheets("PTF1").Range("D3").Value
TextBox1033 = Sheets("PTF1").Range("E3").Value
TextBox1034 = Sheets("PTF1").Range("F3").Value
TextBox1035 = Sheets("PTF1").Range("G3").Value
TextBox1036 = Sheets("PTF1").Range("H3").Value
TextBox1037 = Sheets("PTF1").Range("I3").Value
TextBox1038 = Sheets("PTF1").Range("J3").Value
TextBox1039 = Sheets("PTF1").Range("K3").Value
TextBox1040 = Sheets("PTF1").Range("L3").Value
TextBox1041 = Sheets("PTF1").Range("M3").Value
TextBox1042 = Sheets("PTF1").Range("N3").Value
TextBox1043 = Sheets("PTF1").Range("O3").Value
TextBox1044 = Sheets("PTF1").Range("P3").Value
TextBox1045 = Sheets("PTF1").Range("Q3").Value
TextBox1046 = Sheets("PTF1").Range("R3").Value
TextBox1047 = Sheets("PTF1").Range("S3").Value
TextBox1048 = Sheets("PTF1").Range("T3").Value
TextBox1049 = Sheets("PTF1").Range("U3").Value
TextBox1050 = Sheets("PTF1").Range("V3").Value
TextBox1051 = Sheets("PTF1").Range("W3").Value
TextBox1052 = Sheets("PTF1").Range("X3").Value
TextBox1053 = Sheets("PTF1").Range("Y3").Value
TextBox1054 = Sheets("PTF1").Range("Z3").Value
TextBox1055 = Sheets("PTF1").Range("AA3").Value
TextBox1056 = Sheets("PTF1").Range("AB3").Value
TextBox1057 = Sheets("PTF1").Range("AC3").Value
TextBox1058 = Sheets("PTF1").Range("AD3").Value
TextBox1059 = Sheets("PTF1").Range("AE3").Value
TextBox1060 = Sheets("PTF1").Range("AF3").Value
TextBox1061 = Sheets("PTF1").Range("AG3").Value
TextBox1062 = Sheets("PTF1").Range("AH3").Value
TextBox1063 = Sheets("PTF1").Range("AI3").Value
'TextBox1064 = Sheets("PTF1").Range("AJ3").Value
'TextBox1065 = Sheets("PTF1").Range("AK3").Value
'TextBox1066 = Sheets("PTF1").Range("AL3").Value
'TextBox1067 = Sheets("PTF1").Range("AM3").Value
'TextBox1068 = Sheets("PTF1").Range("AN3").Value
'TextBox1069 = Sheets("PTF1").Range("AO3").Value

ComboBox30 = Sheets("PTF1").Range("B4").Value
ComboBox31 = Sheets("PTF1").Range("C4").Value
ComboBox32 = Sheets("PTF1").Range("D4").Value
ComboBox33 = Sheets("PTF1").Range("E4").Value
ComboBox34 = Sheets("PTF1").Range("F4").Value
ComboBox35 = Sheets("PTF1").Range("G4").Value
ComboBox36 = Sheets("PTF1").Range("H4").Value
ComboBox37 = Sheets("PTF1").Range("I4").Value
ComboBox38 = Sheets("PTF1").Range("J4").Value
ComboBox39 = Sheets("PTF1").Range("K4").Value
ComboBox40 = Sheets("PTF1").Range("L4").Value
ComboBox41 = Sheets("PTF1").Range("M4").Value
ComboBox42 = Sheets("PTF1").Range("N4").Value
ComboBox43 = Sheets("PTF1").Range("O4").Value
ComboBox44 = Sheets("PTF1").Range("P4").Value
ComboBox45 = Sheets("PTF1").Range("Q4").Value
ComboBox46 = Sheets("PTF1").Range("R4").Value
ComboBox47 = Sheets("PTF1").Range("S4").Value
ComboBox48 = Sheets("PTF1").Range("T4").Value
ComboBox49 = Sheets("PTF1").Range("U4").Value
ComboBox50 = Sheets("PTF1").Range("V4").Value
ComboBox51 = Sheets("PTF1").Range("W4").Value
ComboBox52 = Sheets("PTF1").Range("X4").Value
ComboBox53 = Sheets("PTF1").Range("Y4").Value
ComboBox54 = Sheets("PTF1").Range("Z4").Value
ComboBox55 = Sheets("PTF1").Range("AA4").Value
ComboBox56 = Sheets("PTF1").Range("AB4").Value
ComboBox57 = Sheets("PTF1").Range("AC4").Value
ComboBox58 = Sheets("PTF1").Range("AD4").Value
ComboBox59 = Sheets("PTF1").Range("AE4").Value
ComboBox60 = Sheets("PTF1").Range("AF4").Value
ComboBox61 = Sheets("PTF1").Range("AG4").Value
ComboBox62 = Sheets("PTF1").Range("AH4").Value
ComboBox63 = Sheets("PTF1").Range("AI4").Value

est-ce que cela serait possible de créer une boucle

Merci
Bloomby
 

alex67800

XLDnaute Impliqué
Re : Boucle pour Textbox et Combobox

Bonjour Bloomby,

Quelque chose comme ceci, à tester (je l'ai fait à l'arrache):

Code:
With Sheets("PTF1")
For i = B To AO
For j = 30 To 69
Me.Controls("Textbox" & j)= .cells(2, i)  
Next i
Next j

For k = B To AO
For l = 30 To 69
Me.Controls("Textbox0" & l)= .cells(3, k)
Next k
Next l

End With


Et ainsi de suite pour tes combobox


Bon week-end!
 

JNP

XLDnaute Barbatruc
Re : Boucle pour Textbox et Combobox

Bonjour le forum :),
Quelque chose comme ceci, à tester (je l'ai fait à l'arrache):
Code:
With Sheets("PTF1")
For i = B To AO
A mon avis, ça reconnaitra pas B To AO (qui vont être considérées comme variables de valeur nulle. A remplacer par 2 To 41.
Bonne journée :cool:
 

pierrejean

XLDnaute Barbatruc
Re : Boucle pour Textbox et Combobox

bonjour a tous

Pour les 1er textbox (en supposant qu'ils soient sur un Userform nommé Userform1)
teste ceci
Code:
For n = 30 To 63
  Userform1.Controls("TextBox" & n) = Sheets("PTF1").Cells(2, n - 28).Value
Next n
 

pierrejean

XLDnaute Barbatruc
Re : Boucle pour Textbox et Combobox

Re

pour le total:

Code:
For n = 30 To 63
userform1.Controls("ComboBox" & n) = Sheets("PTF1").Cells(4, n - 1028).Value
Userform1.Controls("TextBox" & n) = Sheets("PTF1").Cells(2, n - 28).Value
next n
For n = 1030 To 1063
 userform1.Controls("TextBox" & n) = Sheets("PTF1").Cells(3, n - 1028).Value
Next n
 

pierrejean

XLDnaute Barbatruc
Re : Boucle pour Textbox et Combobox

Re

Je ne comprend pas !!
Avec ce code la textbox30 est bien la 1ere servie
Si par contre tu veux qu'elle soit servie avant les combobox inverse simplement les 2 lignes de la 1ere boucle

on pourrait d'ailleurs globaliser ainsi

Code:
For n = 30 To 63
Userform1.Controls("TextBox" & n) = Sheets("PTF1").Cells(2, n - 28).Value
userform1.Controls("ComboBox" & n) = Sheets("PTF1").Cells(4, n - 1028).Value
userform1.Controls("TextBox" & 1000 + n) = Sheets("PTF1").Cells(3, n - 1028).Value
next n
 

PMO2

XLDnaute Accro
Re : Boucle pour Textbox et Combobox

Bonjour,

Essayez le code suivant

Code:
Sub boucleTextBoxComboBox_pmo()
Dim S As Worksheet
Dim C As Control
Dim R As Range
Dim i&
Dim T()
Set S = Sheets("PTF1")
Set R = S.Range("b2:ai4")
ReDim T(30 To 63, 1 To 3)
T = Application.WorksheetFunction.Transpose(R)

For Each C In UserForm1.Controls  'adapter le nom du UserForm
  For i& = 30 To 63
    If TypeName(C) = "TextBox" Then
      If C.Name = "TextBox" & CStr(i&) Then
        C.Value = T(i& - 29, 1)
      End If
      If C.Name = "TextBox" & CStr(1000 + i&) Then
        C.Value = T(i& - 29, 2)
      End If
    ElseIf TypeName(C) = "ComboBox" Then
      If C.Name = "ComboBox" & CStr(i&) Then
        C.Value = T(i& - 29, 3)
      End If
    End If
  Next i&
Next C

UserForm1.Show 'adapter le nom du UserForm
End Sub

Cordialement.

PMO
Patrick Morange
 

PMO2

XLDnaute Accro
Re : Boucle pour Textbox et Combobox

Bonjour vbacrumble,

C'est uniquement mon habitude de programmation qui m'indique, qu'elle que soit la ligne de code (très éloignée des déclarations), le type de la variable au premier coup d'oeil.

Cordialement.

PMO
Patrick Morange
 

vbacrumble

XLDnaute Accro
Re : Boucle pour Textbox et Combobox

Re

Merci de ton éclaircissement.

Et c'est aussi ton habitude de préférer:
Dim S As Worksheet
Dim C As Control
Dim R As Range
Dim i&
Dim T()

à

Dim S as Worksheet, C As Control, R As Range, i&, T()
 

pierrejean

XLDnaute Barbatruc
Re : Boucle pour Textbox et Combobox

Re

@ bloomby

Il n'y a pas de quoi !
A ton service

@PMO2

Je ne vois pas la necessité de tester tous les Controls de l'Userform (et ils paraissent nombreux)

@ tous
En ce qui me concerne ,je profite de la liberté offerte par Excel de choisir la declaration de variable implicite pour les fichiers qui ne necessitent pas une analyse de grande ampleur
Je sais parfaitement que les variables non explicitement declarées le sont en Variant par Excel ,ce qui ne se traduit generalement par aucune perte d'efficacité