Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 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
956
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…