bonjour
j'ai un userform avec des textbox de(1 à 13) pour s'afficher dans le tableau excel du range("G à S)
et ainsi de suite,alors j'ai fais le code suivant qui ne m'a pas donné une bonne résultat le code:
Dim derligne As Integer, lig As Integer, i As Integer, j As Integer
Private Sub CommandButton1_Click
Dim derligne As Integer, lig As Integer, i As Integer, j As Integer
With Sheets("Client")
derligne = Range("A" & Rows.Count).End(xlUp).Row + 1
lig = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
For j = 1 To 13
For i = 7 To 19 " de ("G") à ("S")
.Cells(derligne, lig & i) = Me.Controls("Textbox" & j).Value
Next i
Next j
end with
end sub
je n'ai pas réussi de trouver le bon résultat
merci
mon fichier çi joint
Bonjour Yahya,
Je n'ai pas tout compris au code. cependant je pense que cette séquence est erronée :
VB:
For j = 1 To 13
For i = 7 To 19
Valeur = Me.Controls("Textbox" & j).Value
.Cells(derligne, lig & i) = Me.Controls("Textbox" & j).Value
Next i
Next j
Vous écrivez 13 fois ( indice i ) la valeur du textbox 1, puis 13 fois dans les mêmes cellules la valeur Textbox 2 .... jusqu'à la TextBox13.
Je pense que vous vouliez faire ceci :
Code:
For j = 1 To 13
Valeur = Me.Controls("Textbox" & j).Value
.Cells(derligne, lig & (j + 6)) = Valeur
Next j
Mettre dans chaque cellule (j+6) la valeur de la Textbox j. Non ?
Ensuite je ne comprends pas ce que signifie "lig". Vous ne voulez pas ranger les infos dans les mêmes colonnes ?
Re,
Je pense que le résultat attendu est celui ci :
VB:
Private Sub CommandButton1_Click()
Dim derligne As Integer
Application.ScreenUpdating = False
With Sheets("Histo")
derligne = Range("A" & Rows.Count).End(xlUp).Row + 1
' Ecriture de G à S soit colonne=7 à colonne=20
For i = 1 To 13
Valeur = Me.Controls("Textbox" & i).Value
.Cells(derligne, i + 6) = Valeur
Next i
End With
Unload UserForm2
End Sub
On prend les 13 TextBox et on les range dans la dernière ligne de la colonne G à la colonne S.
Bonjour Yahya,
Je n'ai pas tout compris au code. cependant je pense que cette séquence est erronée :
VB:
For j = 1 To 13
For i = 7 To 19
Valeur = Me.Controls("Textbox" & j).Value
.Cells(derligne, lig & i) = Me.Controls("Textbox" & j).Value
Next i
Next j
Vous écrivez 13 fois ( indice i ) la valeur du textbox 1, puis 13 fois dans les mêmes cellules la valeur Textbox 2 .... jusqu'à la TextBox13.
Je pense que vous vouliez faire ceci :
Code:
For j = 1 To 13
Valeur = Me.Controls("Textbox" & j).Value
.Cells(derligne, lig & (j + 6)) = Valeur
Next j
Mettre dans chaque cellule (j+6) la valeur de la Textbox j. Non ?
Ensuite je ne comprends pas ce que signifie "lig". Vous ne voulez pas ranger les infos dans les mêmes colonnes ?
une dérniere question s'il vous plaî Monsieur Sylvanu
j'ai donc déclaré les textbox du: 1 à 13 on a fait : me.controls("textbox" & i) c'est super
si par exemple je déclare au lieu de textbox 13 combobox pouvons dire ça?
me.controls("combobox" & i)!!!!