XL 2010 declaration variable

yahya belbachir

XLDnaute Occasionnel
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
 

Pièces jointes

  • test.xlsm
    281.8 KB · Affichages: 3
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

yahya belbachir

XLDnaute Occasionnel
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 ?
Bonjour Sylvanu
en ce qui concerne i,j , et valeur comment les déclarer comme variable?
je pense
dim i as integer,j as integer, valeur as string?
 

Discussions similaires

Réponses
29
Affichages
785

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 870
dernier inscrit
Armisa